Configure navigation and branding

Edit .livedocs/config.json to configure the generated site.

{
  "siteName": "Example Library",
  "repoUrl": "https://github.com/example/library",
  "logoText": "EX",
  "logoPath": "content/logo.svg",
  "logoDarkPath": "content/logo-dark.svg",
  "showSiteName": true,
  "stylesheet": "content/site.css",
  "themes": ["light", "dark"],
  "navigation": [
    { "label": "Guides", "href": "index.html" },
    { "label": "API", "href": "api.html" },
    { "label": "Source", "href": "https://github.com/example/library" }
  ]
}

Add local assets

Place logos, stylesheets, images, and downloads under docs/.

Use site-root-relative paths in configuration. FsLiveDocs copies these files into current output and captures them in release capsules.

Use generated site paths for internal links and absolute HTTPS URLs for external links.

FsLiveDocs adjusts internal navigation for nested guide and history pages.

Split one site into documentation sets

Use docsSets when one shared site needs distinct guide trees or API audiences. Each set keeps its own title, route, sidebar, API surface, and F# verification prelude while sharing branding, themes, search, cross-references, releases, and the version switcher.

{
  "siteName": "Example Platform",
  "docsSets": [
    {
      "id": "public",
      "title": "Public SDK",
      "source": "docs",
      "path": "",
      "projects": ["src/Example.Sdk/Example.Sdk.fsproj"],
      "default": true,
      "sidebar": true,
      "api": true,
      "fSharpPrelude": "open Example.Sdk"
    },
    {
      "id": "operations",
      "title": "Operations handbook",
      "source": "docs/operations",
      "path": "operations",
      "projects": ["src/Example.Operations/Example.Operations.fsproj"],
      "default": false,
      "sidebar": false,
      "api": false,
      "fSharpPrelude": "open Example.Operations"
    }
  ]
}

Exactly one set must have default: true; it renders at /. Other sets default their path to their id and render at /<path>/. Their API index, when enabled, is at /<path>/api/. id is a stable lower-case slug: do not change it merely to rename a set.

source and every project path are repository-relative. Source roots may overlap. In the example, files below docs/operations/ belong only to operations, because the most-specific source root owns a file. Generated output paths must still be unique.

The set's projects determine both its default checking context and the API entities it exposes. A page's project: front matter must name one of those projects. fSharpPrelude overrides the top-level prelude for that set. Set sidebar or api to false to omit that surface entirely.

Links are validated against all sets, so a guide can link to another set. API xrefs use the one global symbol model and resolve to the set that exposes the target. Search remains site-wide and records the set id/title as result metadata.

Omit docsSets to keep the original docs/, /api.html, and single-sidebar layout unchanged. All commands remain site-wide: audit, test, generate-tests, build, watch, and capture process the union of configured set projects and pages.

Configure themes

FsLiveDocs renders with Tailwind CSS and DaisyUI. Set themes to the DaisyUI theme names that readers can choose:

{
  "themes": ["light", "dark", "cupcake", "business"]
}

The first theme is the default. Override it for one build with --theme:

dotnet livedocs build --theme business

See the DaisyUI theme list to preview the built-in themes.

Add your own styling

Set stylesheet to a CSS file under docs/:

{
  "stylesheet": "content/site.css"
}

Use that file for typography, spacing, brand colors, or component overrides. FsLiveDocs copies it into the site and stores it in release capsules.

DaisyUI themes use CSS variables under a data-theme selector. You can define a custom theme in the stylesheet:

[data-theme="example"] {
  color-scheme: light;
  --p: 0.55 0.19 255;
  --s: 0.7 0.14 170;
  --a: 0.72 0.16 70;
  --n: 0.25 0.03 255;
  --b1: 0.98 0.01 255;
}

Add "example" to themes to expose it in the picker. Use the DaisyUI theme generator to choose values, and see DaisyUI theme CSS for the complete variable set.

FsLiveDocs markup uses DaisyUI component classes and Tailwind utility classes. Prefer theme variables and a small scoped stylesheet over replacing generated markup.

Set repoUrl to a GitHub repository URL. API members with source locations link to the corresponding file and line on the main branch.