This repository now uses Lunet for the documentation site, following the same docs-first structure used in the TreeDataGrid project.
site/config.scriban: Lunet configuration, bundle setup, and API docs generationsite/menu.yml: top-level navigationsite/readme.md: landing pagesite/articles/**: authored documentationsite/articles/**/menu.yml: section sidebarssite/images/**: docs assetssite/.lunet/css/template-main.css: precompiled template stylesheet used for the Sass workaroundsite/.lunet/css/site-overrides.css: Svg.Skia-specific branding and layout overridessite/.lunet/includes/_builtins/bundle.sbn-html: bundle include override that works with page-level bundle front mattersite/.lunet/layouts/_default.api-dotnet*.sbn-md: API page layout overridesAPI docs are generated by Lunet api.dotnet from the library projects listed in API Coverage Index. That set now includes the Svg.Editor.* packages in addition to the runtime, Avalonia, and generator-facing assemblies.
Current settings:
Release configurationTargetFramework: netstandard2.0/apihttps://api-docs.avaloniaui.net/docsThe editor packages add public API references to Avalonia.Controls.DataGrid and Avalonia.Controls.ColorPicker, so those assemblies also need external xref entries in site/config.scriban.
When a new public package lands in src/:
site/articles/packages/.api.dotnet.projects in site/config.scriban../build-docs.sh.Lunet 1.0.10 on macOS 15 has a Dart Sass platform detection issue. To avoid that:
bundle: "lite"template-main.css is checked in as a precompiled template stylesheetsite-overrides.css is loaded after it for repository-specific changesTo refresh template-main.css after a template update:
npx --yes sass --no-source-map --style=expanded \
--load-path site/.lunet/build/cache/.lunet/resources/npm/bootstrap/5.3.8/scss \
--load-path site/.lunet/build/cache/.lunet/resources/npm/bootstrap-icons/1.13.1/font \
site/.lunet/build/cache/.lunet/extends/github/lunet-io/templates/main/dist/.lunet/css/main.scss \
site/.lunet/css/template-main.css
From repository root:
./build-docs.sh
./check-docs.sh
./serve-docs.sh
PowerShell:
./build-docs.ps1
./check-docs.ps1
./serve-docs.ps1
All commands operate in site/ and publish to site/.lunet/build/www.
.github/workflows/docs.yml restores the local Lunet tool, builds the site, and deploys site/.lunet/build/www to GitHub Pages on pushes to main or master.