Treci la conținut

SEO și căutare

Căutarea este oferită de Fumadocs. Onedocs adaugă utilitare pentru sitemap, fișierele robots.txt și llms.txt, toate configurate ca rute App Router Next.js. Pentru metadatele paginii și imaginile Open Graph, consultați onedocs/metadata și onedocs/og din API referință.

Onedocs folosește căutarea Orama încorporată din Fumadocs. Creați o rută API:

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

export const { GET } = createFromSource(source);

Dialogul de căutare adăugat de RootProvider interoghează implicit /api/search, deci nu este necesară nicio altă configurare.

Sitemap

Generați un sitemap la /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 listează rădăcina site-ului, apoi câte un URL pentru fiecare intrare din pages din /docs. Intrările care încep cu --- (separatorii barei laterale) sunt omise, iar index se mapează la /docs însuși. Intrările sunt preluate așa cum sunt furnizate, așadar paginile din subdosare trebuie să aibă propriile intrări, de exemplu "guides/setup".

Robots.txt

Generați un robots.txt la /robots.txt:

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

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

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

Aceasta creează:

Cod
User-Agent: *
Allow: /

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

LLMs.txt

LLMs.txt ajută asistenții AI să înțeleagă documentația. Onedocs poate genera atât versiuni rezumative, cât și versiuni cu conținut complet.

Versiunea rezumativă

Creați /llms.txt cu titlurile și descrierile paginilor:

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" },
  });
}

Fișierul începe cu titlul și descrierea, listează fiecare pagină ca - Title: URL împreună cu descrierea sa și se încheie cu o trimitere la /llms-full.txt. Ambele funcții preiau sursa încapsulată din createLLMsSource, nu sursa Fumadocs însăși, și returnează o promisiune.

Versiunea cu conținut complet

Creați /llms-full.txt cu documentația completă:

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" },
  });
}

Fiecare pagină este scrisă cu titlul, URL, descrierea și Markdown procesat, cu --- între pagini.

Textul paginii provine din Fumadocs MDX, din Markdown procesat, care este dezactivat implicit. Fără acesta, llms-full.txt conține doar titluri, URL-uri și descrieri (#3). Activați-l în source.config.ts:

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

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

Opțiuni de configurare

Opțiuni pentru sitemap

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

Opțiuni pentru robots

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

Ce primiți

După configurarea acestor rute:

URL Ce face
/api/search?query=... Punct final API de căutare
/sitemap.xml Sitemap XML pentru motoarele de căutare
/robots.txt Fișier Robots cu referință la sitemap
/llms.txt Rezumat pentru asistenții AI
/llms-full.txt Documentație completă pentru asistenții AI