Skip to content

Migrate Documentation Site to Lunet#1

Merged
wieslawsoltes merged 4 commits intomainfrom
docs/lunet-site
Mar 10, 2026
Merged

Migrate Documentation Site to Lunet#1
wieslawsoltes merged 4 commits intomainfrom
docs/lunet-site

Conversation

@wieslawsoltes
Copy link
Owner

PR Summary: Migrate Documentation Site to Lunet

Overview

This PR replaces the previous DocFX-oriented documentation publishing flow with a Lunet-based site modeled after the TreeDataGrid documentation structure, but tailored to NativeMessageBox.

The result is:

  • a dedicated site/ documentation source tree
  • a branded Lunet homepage and article hierarchy
  • generated .NET API documentation integrated into the same site
  • local helper scripts for build/check/serve workflows
  • CI validation plus GitHub Pages publishing for the Lunet site

Why

The repository already had useful Markdown content, but the public docs pipeline was still centered on DocFX. TreeDataGrid uses a more structured Lunet setup with:

  • clearer navigation
  • a better landing page
  • integrated API pages
  • simpler local build/publish commands

This PR brings the same documentation model here so the docs infrastructure is consistent across repositories.

Main Changes

1. Lunet site scaffold

Added a full site/ tree with:

  • site/config.scriban for site metadata, bundle setup, and api.dotnet
  • site/menu.yml for top-level navigation
  • site/readme.md as a custom homepage
  • site/articles/** with sectioned docs:
    • Getting Started
    • Concepts
    • Guides
    • Platforms
    • Advanced
    • Reference
  • site/.lunet/css/* for shared template CSS and project-specific overrides
  • site/.lunet/layouts/* for improved API rendering
  • site/.lunet/includes/_builtins/bundle.sbn-html to support the custom lite bundle reliably
  • site/images/logo.svg for project branding

2. Tailored NativeMessageBox content

The site content is not copied mechanically from TreeDataGrid. It is rewritten around this repository’s actual concerns:

  • managed API usage with NativeMessageBoxClient
  • C ABI usage through native_message_box.h
  • platform capability differences across desktop/mobile/browser
  • build and packaging scripts already present in this repo
  • diagnostics, runtime probing, and host configuration
  • release/reference material and a docs-pipeline explanation

3. Local docs tooling

Added root-level scripts:

  • build-docs.sh
  • build-docs.ps1
  • check-docs.sh
  • serve-docs.sh
  • serve-docs.ps1

These are now location-independent and work even when invoked outside the repo root.

For compatibility, docs/build-docs.sh now delegates to the new root Lunet build script.

4. Tooling and ignore updates

  • Replaced the local tool manifest entry from docfx to lunet
  • Added ignore rules for Lunet build output

5. CI / publishing

Updated workflows so that:

  • ci.yml validates the Lunet docs build
  • docs.yml builds the Lunet site and deploys site/.lunet/build/www to GitHub Pages
  • workflow documentation in .github/workflows/README.md reflects the current setup

6. README updates

Updated the main README.md documentation section so contributors know:

  • how to build the Lunet site locally
  • how to serve it in watch mode
  • where the published docs live
  • where the generated API output ends up

Commit Breakdown

  1. docs: add Lunet docs tooling scripts
  2. docs: add NativeMessageBox Lunet site content
  3. ci: validate and publish Lunet docs site

Key Files to Review

Docs infrastructure

  • .config/dotnet-tools.json
  • build-docs.sh
  • build-docs.ps1
  • check-docs.sh
  • serve-docs.sh
  • serve-docs.ps1
  • docs/build-docs.sh

Site configuration and UX

  • site/config.scriban
  • site/readme.md
  • site/menu.yml
  • site/.lunet/css/site-overrides.css
  • site/images/logo.svg

Content structure

  • site/articles/getting-started/*
  • site/articles/concepts/*
  • site/articles/guides/*
  • site/articles/platforms/*
  • site/articles/advanced/*
  • site/articles/reference/*

CI / publishing

  • .github/workflows/ci.yml
  • .github/workflows/docs.yml
  • .github/workflows/README.md
  • README.md

Validation Performed

Executed successfully:

  • ./build-docs.sh
  • ./check-docs.sh
  • /Users/wieslawsoltes/GitHub/NativeMessageBox/build-docs.sh from /tmp

Also verified:

  • the Lunet homepage renders
  • the generated API section is populated
  • xref links resolve in the built site

Notes / Residuals

  • The legacy docs/docfx material is still present in the repo, but it is no longer the active publishing path.
  • Lunet’s cache can contend if two local docs builds target the same repo at the same time; normal single-build use is fine.

@wieslawsoltes wieslawsoltes merged commit faf0057 into main Mar 10, 2026
14 checks passed
@wieslawsoltes wieslawsoltes deleted the docs/lunet-site branch March 10, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant