Μετάβαση στο περιεχόμενο

SEO & Αναζήτηση

Η αναζήτηση προέρχεται από το Fumadocs. Το Onedocs προσθέτει βοηθητικές συναρτήσεις για τον χάρτη ιστοτόπου, τα αρχεία robots.txt και llms.txt, όλα ρυθμισμένα ως διαδρομές App Router του Next.js. Για μεταδεδομένα σελίδων και εικόνες Open Graph, δείτε τα onedocs/metadata και onedocs/og στην Αναφορά API.

Το Onedocs χρησιμοποιεί την ενσωματωμένη αναζήτηση Orama από το Fumadocs. Δημιουργήστε μια διαδρομή API:

TypeScript
import { source } from "@/lib/source";
import { createFromSource } from "fumadocs-core/search/server";

export const { GET } = createFromSource(source);

Το παράθυρο αναζήτησης που προσθέτει το RootProvider αναζητά στο /api/search από προεπιλογή, επομένως δεν χρειάζεται άλλη ρύθμιση.

Χάρτης ιστοτόπου

Δημιουργήστε χάρτη ιστοτόπου στο /sitemap.xml:

TypeScript
import { generateSitemap } from "onedocs/seo";
import meta from "../../content/docs/meta.json";

const baseUrl = "https://yourdomain.com";

export default function sitemap() {
  return generateSitemap({
    baseUrl,
    pages: meta.pages ?? [],
  });
}

Το generateSitemap καταγράφει τη ρίζα του ιστοτόπου και έπειτα ένα URL για κάθε καταχώριση στο pages κάτω από το /docs. Οι καταχωρίσεις που αρχίζουν με --- (διαχωριστικά πλευρικής γραμμής) παραλείπονται, ενώ το index αντιστοιχεί στο ίδιο το /docs. Διαβάζει τις καταχωρίσεις όπως δίνονται, επομένως οι σελίδες σε υποφακέλους χρειάζονται δικές τους καταχωρίσεις, για παράδειγμα "guides/setup".

Robots.txt

Δημιουργήστε ένα robots.txt στο /robots.txt:

TypeScript
import { generateRobots } from "onedocs/seo";

const baseUrl = "https://yourdomain.com";

export default function robots() {
  return generateRobots({ baseUrl });
}

Αυτό δημιουργεί:

Κώδικας
User-Agent: *
Allow: /

Host: https://yourdomain.com
Sitemap: https://yourdomain.com/sitemap.xml

LLMs.txt

Το LLMs.txt βοηθά τους βοηθούς τεχνητής νοημοσύνης να κατανοήσουν την τεκμηρίωσή σας. Το Onedocs μπορεί να δημιουργήσει τόσο συνοπτικές όσο και πλήρεις εκδόσεις περιεχομένου.

Συνοπτική έκδοση

Δημιουργήστε /llms.txt με τίτλους και περιγραφές σελίδων:

TypeScript
import { createLLMsSource, generateLLMsText } from "onedocs/llms";
import { source } from "@/lib/source";
import config from "../../../onedocs.config";

export async function GET() {
  const llmsSource = createLLMsSource(source);
  const text = await generateLLMsText(llmsSource, {
    title: config.title,
    description: config.description,
  });

  return new Response(text, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

Το αρχείο ξεκινά με τον τίτλο και την περιγραφή, παραθέτει κάθε σελίδα ως - Title: URL με την περιγραφή της και τελειώνει με παραπομπή στο /llms-full.txt. Και οι δύο συναρτήσεις λαμβάνουν την τυλιγμένη πηγή από το createLLMsSource, όχι την ίδια την πηγή Fumadocs, και επιστρέφουν ένα promise.

Έκδοση πλήρους περιεχομένου

Δημιουργήστε /llms-full.txt με πλήρη τεκμηρίωση:

TypeScript
import { createLLMsSource, generateLLMsFullText } from "onedocs/llms";
import { source } from "@/lib/source";

export async function GET() {
  const llmsSource = createLLMsSource(source);
  const text = await generateLLMsFullText(llmsSource);

  return new Response(text, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

Κάθε σελίδα γράφεται ως τίτλος, URL, περιγραφή και επεξεργασμένο Markdown, με --- ανάμεσα στις σελίδες.

Το κείμενο της σελίδας προέρχεται από το επεξεργασμένο Markdown του Fumadocs MDX, το οποίο είναι απενεργοποιημένο από προεπιλογή. Χωρίς αυτό, το llms-full.txt περιέχει μόνο τίτλους, URL και περιγραφές (#3). Ενεργοποιήστε το στο source.config.ts:

TypeScript
import { defineDocs } from "fumadocs-mdx/config";

export const docs = defineDocs({
  dir: "content/docs",
  docs: {
    postprocess: {
      includeProcessedMarkdown: true,
    },
  },
});

Επιλογές διαμόρφωσης

Επιλογές sitemap

TypeScript
generateSitemap({
  baseUrl: "https://yourdomain.com",
  pages: ["index", "getting-started", "configuration"],
  docsPath: "/docs", // Default: "/docs"
});

Επιλογές robots

TypeScript
generateRobots({
  baseUrl: "https://yourdomain.com",
  sitemapPath: "/sitemap.xml", // Default: "/sitemap.xml"
});

Τι προσφέρει

Αφού ρυθμίσετε αυτές τις διαδρομές:

URL Τι κάνει
/api/search?query=... Τελικό σημείο αναζήτησης API
/sitemap.xml XML sitemap για τις μηχανές αναζήτησης
/robots.txt Αρχείο robots με αναφορά στο sitemap
/llms.txt Σύνοψη για βοηθούς τεχνητής νοημοσύνης
/llms-full.txt Πλήρης τεκμηρίωση για βοηθούς τεχνητής νοημοσύνης