Konfigureerimine
Saidiülesed seaded asuvad projekti juurkaustas failis onedocs.config.ts. Anna eksporditud objekt edasi DocsLayout-ile, HomePage-ile ja createMetadata-ile, mis seda loevad. Sisu asukoht määratakse failis source.config.ts, mitte siin (vt Alustamine).
Põhiseadistus
import { defineConfig } from "onedocs/config";
export default defineConfig({
title: "My Project",
description: "Documentation for My Project",
});
See on miinimum. Kõik muu on valikuline.
Täielik näide
Funktsiooniikoonid on React-elemendid, seega peab neid kasutav konfiguratsioon olema .tsx fail:
import { defineConfig } from "onedocs/config";
import { Rocket, Zap } from "lucide-react";
export default defineConfig({
title: "My Project",
description: "Documentation for My Project",
// Logo (string or light/dark variants)
logo: "/logo.svg",
// logo: { light: "/logo-light.svg", dark: "/logo-dark.svg" },
// Favicon (string or light/dark variants), used by createMetadata
icon: "/icon.png",
// Navigation bar
nav: {
links: [
{ label: "Blog", href: "/blog" },
{ label: "Changelog", href: "/changelog" },
],
github: "username/repo",
},
// Homepage
homepage: {
hero: {
title: "My Project",
description: "Documentation that ships with the code",
cta: { label: "Get Started", href: "/docs" },
},
features: [
{
title: "Fast",
description: "Static pages built by Next.js",
icon: <Zap className="size-5 text-fd-primary" />,
},
{
title: "Simple",
description: "Write markdown, get docs",
icon: <Rocket className="size-5 text-fd-primary" />,
},
],
},
// Homepage footer
footer: {
links: [{ label: "License", href: "https://github.com/username/repo/blob/main/LICENSE" }],
},
});
Suvandid
title (nõutav)
Sinu saidi nimi. Navigeerimisribal kuvatakse see siis, kui logo pole määratud; createMetadata kasutab seda vaikelehe pealkirjana ja mallis %s | Title; avalehel kasutatakse seda avapealkirjana ja jaluse autoriõiguse tekstis.
title: "My Project"
description
Lühikirjeldus. createMetadata kasutab seda meta-kirjeldusena ning avalehel kuvatakse see avapealkirja all, kui homepage.hero.description pole määratud.
description: "Documentation for My Project"
logo
Asendab navigeerimisribal pealkirja. Kasuta üht teed või heleda ja tumeda kujunduse variante; pilt on 24 px kõrge ning selle alt-tekst on title.
// Single logo
logo: "/logo.svg"
// Light/dark mode
logo: {
light: "/logo-light.svg",
dark: "/logo-dark.svg"
}
icon
createMetadata kaudu määratud lemmik. Heleda ja tumeda kujunduse variandid kuvatakse prefers-color-scheme meediapäringutega.
icon: "/icon.png"
// Light/dark mode
icon: {
light: "/icon-light.png",
dark: "/icon-dark.png"
}
nav
Navigeerimisriba seadistus, mida kasutavad DocsLayout ja HomePage.
nav: {
// Extra links in the navbar
links: [
{ label: "Blog", href: "/blog" },
{ label: "API", href: "/api" },
],
// GitHub repo as "owner/name" (adds an icon link to https://github.com/owner/name)
github: "username/repo",
}
homepage
Avavaade ja funktsioonide ruudustik, mille renderdab HomePage.
homepage: {
hero: {
title: "My Project", // Defaults to config.title
description: "Description", // Defaults to config.description
cta: {
label: "Get Started", // Default: "Get Started"
href: "/docs", // Default: "/docs"
},
},
features: [
{
title: "Feature 1",
description: "Description of feature 1",
icon: <Rocket className="size-5" />, // Optional React element
},
],
}
icon renderdatakse muutmata kujul, seega anna edasi element, näiteks lucide-react ikoon. String nagu "rocket" kuvatakse tekstina.
Veel kaks avavaate valikut asendavad vaikeavavaate osi:
hero.leftasendab pealkirja, kirjelduse, paigaldusploki ja nupu sinu enda sisuga. See võtab React sõlme või funktsiooni, mis tagastab sellise sõlme.hero.righttäidab avavaate parema poole. See peidetakse allalgmurdepunkti.
jalus
Lingid ja suhtlusvõrgustike ikoonid jaotise HomePage jaluses, autoriõiguse rea kõrval. Mõlemad avanevad uuel vahekaardil.
// import { GitHubIcon } from "onedocs";
footer: {
links: [{ label: "Privacy", href: "/privacy" }],
socials: [
{ label: "GitHub", href: "https://github.com/username/repo", icon: <GitHubIcon /> },
],
}
Iga suhtlusvõrgustiku lingi ligipääsetav nimi on label.
Valikud, mis veel mõju ei avalda
OnedocsConfig määrab ka tüübiks docs, theme ja i18n ning defineConfig lisab vaikimisi väärtused docs.dir ja theme.darkMode, kuid ükski Onedocs kood neid ei loe (#2). Nende määramine ei muuda midagi:
docs.dir: sisukaust onsource.config.tsfailis funktsiooniledefineDocsantuddir.theme.primaryColorjatheme.darkMode: värvid pärinevad kujundusest Fumadocs UI, mille impordib eelseadistus CSS; heledad ja tumedad režiimid pärinevad jaotise Fumadocs UI valikustRootProvider.i18n: Onedocs ei toeta mitut keelt.
TypeScript
Abifunktsioon defineConfig pakub täielikku automaattäitmist:
import { defineConfig, type OnedocsConfig } from "onedocs/config";
const config: OnedocsConfig = {
title: "My Project",
};
export default defineConfig(config);
defineConfig tagastab edasi antud objekti koos eespool kirjeldatud kasutamata vaikeväärtustega docs ja theme.