SEO & Αναζήτηση
Η αναζήτηση προέρχεται από το Fumadocs. Το Onedocs προσθέτει βοηθητικές συναρτήσεις για τον χάρτη ιστοτόπου, τα αρχεία robots.txt και llms.txt, όλα ρυθμισμένα ως διαδρομές App Router του Next.js. Για μεταδεδομένα σελίδων και εικόνες Open Graph, δείτε τα onedocs/metadata και onedocs/og στην Αναφορά API.
Αναζήτηση
Το Onedocs χρησιμοποιεί την ενσωματωμένη αναζήτηση Orama από το Fumadocs. Δημιουργήστε μια διαδρομή API:
import { source } from "@/lib/source";
import { createFromSource } from "fumadocs-core/search/server";
export const { GET } = createFromSource(source);
Το παράθυρο αναζήτησης που προσθέτει το RootProvider αναζητά στο /api/search από προεπιλογή, επομένως δεν χρειάζεται άλλη ρύθμιση.
Χάρτης ιστοτόπου
Δημιουργήστε χάρτη ιστοτόπου στο /sitemap.xml:
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:
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 με τίτλους και περιγραφές σελίδων:
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 με πλήρη τεκμηρίωση:
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:
import { defineDocs } from "fumadocs-mdx/config";
export const docs = defineDocs({
dir: "content/docs",
docs: {
postprocess: {
includeProcessedMarkdown: true,
},
},
});
Επιλογές διαμόρφωσης
Επιλογές sitemap
generateSitemap({
baseUrl: "https://yourdomain.com",
pages: ["index", "getting-started", "configuration"],
docsPath: "/docs", // Default: "/docs"
});
Επιλογές robots
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 |
Πλήρης τεκμηρίωση για βοηθούς τεχνητής νοημοσύνης |