Add Lunet documentation site, package guides, and docs publishing#469
Merged
wieslawsoltes merged 4 commits intomasterfrom Mar 10, 2026
Merged
Add Lunet documentation site, package guides, and docs publishing#469wieslawsoltes merged 4 commits intomasterfrom
wieslawsoltes merged 4 commits intomasterfrom
Conversation
This was referenced Mar 23, 2026
This was referenced Apr 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary: Add Lunet documentation site, package guides, and docs publishing
Overview
This PR adds a Lunet-based documentation site for
Svg.Skia, following the same general approach used byAvalonia.Controls.TreeDataGrid, but tailored to the package structure, rendering model, and developer workflows in this repository.The change covers:
SkiaSharp.*typesWhat changed
1. Added Lunet docs tooling and local workflows
The repository now includes the local tools and helper scripts needed to build, validate, and serve the docs site consistently across development environments.
Added:
.config/dotnet-tools.jsonbuild-docs.shbuild-docs.ps1check-docs.shcheck-docs.ps1serve-docs.shserve-docs.ps1These scripts standardize the common workflows for:
2. Added documentation publishing to CI
The PR introduces a dedicated GitHub Actions workflow:
.github/workflows/docs.ymlThis workflow publishes the Lunet-generated site so documentation updates can be deployed automatically as part of the repository’s CI/CD process.
3. Added the Lunet site structure and configuration
The
site/directory now contains a complete Lunet documentation site customized forSvg.Skia.Key additions include:
site/config.scribansite/menu.ymlsite/readme.mdsite/.lunet/...theme/layout/include overridessite/articles/...authored documentation contentsite/images/...supporting site assetsThe site content is adapted to this project rather than copied verbatim from TreeDataGrid. The home page, navigation, article structure, and package guidance reflect the actual shape of the
Svg.Skiaecosystem:4. Added package-specific documentation coverage
Each shippable NuGet library now has dedicated article coverage under:
site/articles/packages/Package articles were added for:
Svg.SkiaSvg.ModelSvg.CustomShimSkiaSharpSvg.Controls.Skia.AvaloniaSvg.Controls.AvaloniaSkia.Controls.AvaloniaSvg.Codegen.SkiaSvg.SourceGenerator.SkiaThese guides provide package-specific entry points so users can choose the correct package and understand:
5. Improved the landing page to use real project assets
The main landing page was refined to better represent a rendering library instead of showing generic or misleading imagery.
The final homepage showcase now uses two actual repository SVG samples:
site/images/hero-tiger.svgsite/images/hero-camera.svgThe landing page copy and styling were also adjusted so the page emphasizes:
SKPictureoutputVectorDrawableimport support6. Fixed raw HTML rendering issues on the homepage
The homepage originally had raw HTML blocks rendered as visible text because of Markdown/HTML block parsing behavior. The content was corrected so the hero actions and pill row render as intended in the generated site rather than appearing inside a code block.
7. Linked unresolved
SkiaSharp.*API references to Microsoft LearnThe Lunet config now maps
SkiaSharpexternal API symbols to the official .NET API documentation on Microsoft Learn.This change removes unresolved external xref warnings for
SkiaSharp.*symbols and gives generated API pages working outbound links for dependent SkiaSharp types.Implementation notes
.gitignoreThis PR includes a small
.gitignoreadjustment to allow authored docs under:site/articles/packages/This was necessary because the repository already contained a broader ignore rule matching
**/packages/*, which would otherwise have excluded the new documentation articles from version control.API docs integration
The Lunet site is configured to generate API documentation for the relevant assemblies and integrate it with the authored conceptual docs. This gives the repo both:
Validation
The documentation pipeline was validated locally with:
./build-docs.shAdditional repository validation that was run during the broader work:
dotnet format --no-restoredotnet build Svg.Skia.slnx -c Releasedotnet test Svg.Skia.slnx -c ReleaseResult:
SkiaSharp.*external xref warnings were resolved via Microsoft Learn mappingResult
After this PR,
Svg.Skiahas a maintainable docs site with:This brings the repository closer to a full product-quality documentation workflow rather than a minimal API-only or README-only setup.