Skip to content

reactiveui/website

Repository files navigation

ReactiveUI Website

Build website

Source for the ReactiveUI website. Pages are rendered by NuStreamDocs β€” a .NET-native static-site generator that reads markdown + a NuGet manifest and emits a Material 3-themed site, including the API reference (extracted from the published packages via Roslyn + ICSharpCode.Decompiler).

The build is a single .NET 10 program (build/Program.cs) wired up with System.CommandLine. The .NET 10 SDK is the only prerequisite.

Quick start

./build.sh build              # full build β†’ site/
./build.sh build --strict     # CI-style: fail on broken links / unresolved refs
./build.sh serve              # watch + serve at http://127.0.0.1:8000
./build.sh serve --port 9000  # serve on a different port
./build.sh clean              # wipe .api-cache/, build/_intermediate/, site/

build.ps1 (PowerShell) and build.cmd (Windows shim) are equivalent. With no verb, ./build.sh defaults to build.

Layout

website/
β”œβ”€β”€ build/
β”‚   β”œβ”€β”€ Program.cs              System.CommandLine entry point + DocBuilder wiring
β”‚   β”œβ”€β”€ WebsiteLogging.cs       source-generated ILogger messages
β”‚   β”œβ”€β”€ TerseConsoleFormatter.cs minimal log formatter
β”‚   └── _build.csproj           PackageReference set against NuStreamDocs
β”œβ”€β”€ docs/                       all source content
β”‚   β”œβ”€β”€ index.md                landing page
β”‚   β”œβ”€β”€ documentation/          handbook + getting-started + guidelines
β”‚   β”œβ”€β”€ articles/               curated articles
β”‚   β”œβ”€β”€ Announcements/          chronological announcements
β”‚   β”œβ”€β”€ contribute/             contributor guide
β”‚   β”œβ”€β”€ stylesheets/            brand palette + hero CSS
β”‚   └── images/, vs/            assets + Visual Studio screenshots
β”œβ”€β”€ nuget-packages.json         API-reference package list (consumed by NuStreamDocs)
β”œβ”€β”€ Directory.Packages.props    central NuStreamDocs version pin (one var)
β”œβ”€β”€ .api-cache/                 GENERATED β€” fetched NuGet assemblies + lib/refs trees
β”œβ”€β”€ build/_intermediate/        GENERATED β€” extracted API markdown / yml / metadata
└── site/                       GENERATED β€” rendered output (deployed to Netlify)

The three GENERATED paths are gitignored. clean wipes them.

Bumping NuStreamDocs

One line in Directory.Packages.props:

<NuStreamDocsVersion>1.3.0</NuStreamDocsVersion>

Every NuStreamDocs.* PackageVersion in the file references that property, so the version moves in lockstep across every plugin.

Local-iteration against an unpublished NuStreamDocs

build/_build.csproj contains a commented-out <ProjectReference> block that points at a sibling glennawatson/NuSourceDocs checkout. Uncomment that block (and comment out the <PackageReference> block above it) to build against live source instead of the published NuGet packages β€” useful when iterating on the renderer at the same time as the site.

Contributing

  1. Fork and clone the repo.
  2. Create a branch.
  3. ./build.sh serve β€” open http://127.0.0.1:8000 and iterate on the docs.
  4. PRs against main build under CI (actions/setup-dotnet@v5) and deploy to Netlify on merge.

For the renderer + API extraction internals see NuSourceDocs.

About

ReactiveUI documentation and guidelines website. PR's welcome! πŸ’–

Topics

Resources

License

Stars

36 stars

Watchers

12 watching

Forks

Releases

No releases published

Sponsor this project

  •  
  •  
  •  

Packages

 
 
 

Contributors