Přejít k obsahu

SEO a vyhledávání

Vyhledávání zajišťuje Fumadocs. Onedocs přidává pomocné funkce pro mapu webu, soubory robots.txt a llms.txt, které jsou nastavené jako trasy App Routeru Next.js. Informace o metadatech stránek a obrázcích Open Graph najdete v částech onedocs/metadata a onedocs/og v referenční příručce API.

Onedocs používá vestavěné vyhledávání Orama z Fumadocs. Vytvořte trasu API:

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

export const { GET } = createFromSource(source);

Dialogové okno vyhledávání přidané pomocí RootProvider ve výchozím nastavení vyhledává v /api/search, takže není potřeba žádné další nastavení.

Mapa webu

Vytvořte mapu webu na adrese /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 uvádí nejprve kořen webu a poté jednu položku URL pro každý záznam v pages v rámci /docs. Záznamy začínající na --- (oddělovače postranního panelu) se přeskočí a index odkazuje samo na sebe jako na /docs. Záznamy se čtou přesně v zadaném pořadí, takže stránky v podsložkách potřebují vlastní záznamy, například "guides/setup".

Robots.txt

Vytvořte robots.txt na adrese /robots.txt:

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

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

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

Tím se vytvoří:

Kód
User-Agent: *
Allow: /

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

LLMs.txt

LLMs.txt pomáhá asistentům AI porozumět vaší dokumentaci. Onedocs dokáže vytvořit souhrnnou verzi i verzi s úplným obsahem.

Souhrnná verze

Vytvořte /llms.txt s názvy a popisy stránek:

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

Soubor začíná názvem a popisem, uvádí všechny stránky jako - Title: URL s jejich popisem a končí odkazem na /llms-full.txt. Obě funkce přijímají obalený zdroj z createLLMsSource, nikoli samotný zdroj Fumadocs, a vracejí promise.

Verze s úplným obsahem

Vytvořte /llms-full.txt s úplnou dokumentací:

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

Každá stránka je zapsána jako její název, URL, popis a zpracované Markdown; jednotlivé stránky odděluje ---.

Text stránky pochází ze zpracovaného Markdown MDX v Fumadocs, které je ve výchozím stavu vypnuté. Bez něj obsahuje llms-full.txt pouze názvy, adresy URL a popisy (#3). Zapněte jej v source.config.ts:

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

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

Možnosti konfigurace

Možnosti mapy webu

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

Možnosti Robots

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

Co získáte

Po nastavení těchto tras:

URL Funkce
/api/search?query=... Koncový bod vyhledávání API
/sitemap.xml Mapa webu XML pro vyhledávače
/robots.txt Soubor Robots s odkazem na mapu webu
/llms.txt Souhrn pro asistenty AI
/llms-full.txt Úplná dokumentace pro asistenty AI