This repository uses Lunet for authored documentation and generated .NET API reference.
site/config.scriban: Lunet config, project metadata, base path, and api.dotnet setupsite/menu.yml: top-level navigationsite/readme.md: landing pagesite/articles/**: authored documentation pagessite/articles/**/menu.yml: section sidebarssite/images/**: site assetssite/.lunet/css/template-main.css: precompiled template stylesheet (runtime Sass workaround)site/.lunet/css/site-overrides.css: project-specific stylingsite/.lunet/includes/_builtins/bundle.sbn-html: bundle override used by the custom lite bundlesite/.lunet/layouts/**: API layout overridesThe API reference is generated from the shipped projects under src/ via with api.dotnet in config.scriban.
Current API settings:
TargetFramework: net8.0/apiNativeWebViewexternal_apis mappings for Avalonia assemblies to https://api-docs.avaloniaui.net/docsLunet 1.0.10 on macOS 15 has a Dart Sass platform detection issue.
To keep the full template visual quality:
bundle: "lite" via with attributes/_builtins/bundle.sbn-html override resolves bundle links safelytemplate-main.css is precompiled and committed, then loaded by the lite bundleThe production site is published under /NativeWebView, so config.scriban must keep site_project_basepath aligned with the GitHub repository name.
From repository root:
./build-docs.sh
./check-docs.sh
./serve-docs.sh
build-docs.sh/build-docs.ps1 clean stale Lunet output and cached NativeWebView*.api.json artifacts before rebuilding, so API/docs output always comes from the current source tree instead of prior build residue.
check-docs.sh/check-docs.ps1 build the site and then verify:
.md links or /readme routesapi/index.md pathNativeWebView API page keeps its external Avalonia type links/NativeWebView-prefixed asset pathsserve-docs.sh and serve-docs.ps1 print the local URL, auto-select the next free port when DOCS_PORT is already in use, and start from a clean docs output directory before entering watch mode.
PowerShell:
./build-docs.ps1
./check-docs.ps1
./serve-docs.ps1
GitHub Actions use check-docs.sh both for PR validation and for the publish workflow, so broken docs links/routes fail before deployment.
All commands run Lunet in site/ and output to site/.lunet/build/www.