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

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  
  •  
  •  

Packages

 
 
 

Contributors