Kokoonpano
Sivustonlaajuiset asetukset määritetään projektin juurihakemiston tiedostossa onedocs.config.ts. Välität viedyn olion kohteisiin DocsLayout, HomePage ja createMetadata, jotka lukevat sen. Sisällön sijainti määritetään tiedostossa source.config.ts, ei täällä (katso Getting Started).
Perusasetukset
import { defineConfig } from "onedocs/config";
export default defineConfig({
title: "My Project",
description: "Documentation for My Project",
});
Tämä riittää alkuun. Kaikki muu on valinnaista.
Täysi esimerkki
Ominaisuuskuvakkeet ovat React-elementtejä, joten niitä käyttävän asetustiedoston on oltava .tsx-tiedosto:
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" }],
},
});
Asetukset
title (pakollinen)
Sivustosi nimi. Navigointipalkissa näkyy tämä nimi, jos logo-arvoa ei ole asetettu. createMetadata käyttää sitä oletussivun otsikkona ja %s | Title-mallissa, ja etusivulla se näkyy pääotsikkona ja alatunnisteen tekijänoikeusrivillä.
title: "My Project"
description
Lyhyt kuvaus. createMetadata käyttää sitä metakuvauksena, ja etusivulla se näytetään pääotsikon alla, jos homepage.hero.description-arvoa ei ole asetettu.
description: "Documentation for My Project"
logo
Korvaa navigointipalkissa otsikon. Käytä yhtä polkua tai vaaleaa ja tummaa versiota. Kuvan korkeus on 24 px, ja sen vaihtoehtoinen teksti on title.
// Single logo
logo: "/logo.svg"
// Light/dark mode
logo: {
light: "/logo-light.svg",
dark: "/logo-dark.svg"
}
icon
Tiedostossa createMetadata määritettävä sivustokuvake. Vaaleat ja tummat versiot näytetään prefers-color-scheme-mediakyselyillä.
icon: "/icon.png"
// Light/dark mode
icon: {
light: "/icon-light.png",
dark: "/icon-dark.png"
}
nav
Navigointipalkin asetukset, joita käyttävät 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
Pääosio ja ominaisuusruudukko, jotka HomePage renderöi.
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 renderöidään sellaisenaan, joten välitä sille elementti, kuten lucide-react-kuvake. Merkkijono, kuten "rocket", näytetään tekstinä.
Kaksi muuta pääosion asetusta korvaavat oletuspääosion osia:
hero.leftkorvaa otsikon, kuvauksen, asennuslohkon ja painikkeen omalla sisällölläsi. Se ottaa vastaan React-solmun tai funktion, joka palauttaa sellaisen.hero.righttäyttää pääosion oikean puoliskon. Se piilotetaanlg-rajakohdan alapuolella.
footer
Linkit ja somekuvakkeet kohteen HomePage alatunnisteessa tekijänoikeusrivin vieressä. Molemmat avautuvat uuteen välilehteen.
// import { GitHubIcon } from "onedocs";
footer: {
links: [{ label: "Privacy", href: "/privacy" }],
socials: [
{ label: "GitHub", href: "https://github.com/username/repo", icon: <GitHubIcon /> },
],
}
Kunkin some-linkin saavutettava nimi on label.
Asetukset, joilla ei vielä ole vaikutusta
OnedocsConfig myös määrittää tyypit kohteille docs, theme ja i18n, ja defineConfig asettaa kohteiden docs.dir ja theme.darkMode oletusarvot. Mikään Onedocs-koodi ei kuitenkaan lue niitä (#2). Niiden asettaminen ei muuta mitään:
docs.dir: sisältökansio ondir, jonka välität kohteessadefineDocstiedostollesource.config.ts.theme.primaryColorjatheme.darkMode: värit tulevat Fumadocs UI-teemasta, jonka CSS-esiasetus tuo käyttöön. Vaaleat ja tummat tilat tulevat kohteen Fumadocs UIRootProvider-asetuksista.i18n: kohteessa Onedocs ei ole monikielisyystukea.
TypeScript
defineConfig-apuri tarjoaa täyden automaattisen täydennyksen:
import { defineConfig, type OnedocsConfig } from "onedocs/config";
const config: OnedocsConfig = {
title: "My Project",
};
export default defineConfig(config);
defineConfig palauttaa välittämäsi olion sekä edellä kuvatut käyttämättömät docs- ja theme-oletusarvot.