crucible.cli
1.1.63
dotnet tool install --global crucible.cli --version 1.1.63
dotnet new tool-manifest
dotnet tool install --local crucible.cli --version 1.1.63
#tool dotnet:?package=crucible.cli&version=1.1.63
nuke :add-package crucible.cli --version 1.1.63
Crucible
Static documentation generator that transforms Markdown into HTML through an XML intermediate representation and XSLT 4.0 transformation.
Packages
| Package | Description | Install |
|---|---|---|
| Crucible.Cli | Command-line tool | dotnet tool install -g Crucible.Cli |
| Crucible.Extensions | Extension library (Mermaid diagrams, plugin API) | Library — reference in your project |
Quick start
# Install the CLI
dotnet tool install -g Crucible.Cli
# Create a new docs project
crucible init
# Build the site
crucible build
Features
- Markdown in, HTML out — write docs in Markdown with YAML frontmatter
- XSLT-powered — transforms via the PhoenixmlDb XSLT 4.0 engine
- Client-side search — Lunr.js with pre-built index
- Dark mode — automatic with manual toggle
- SEO — Open Graph, canonical links, sitemap.xml
- Extensible — plugin model for custom Markdown processing
- LLMs.txt — auto-generated site overview for AI consumption
Documentation
Full documentation at phoenixml.dev
License
Apache 2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
### Fixed
- **Generated pages added between build stages were missing from site search.**
`ParseStage` builds `search-index.json`; `TransformStage` only copied it. A
`--stage TransformOnly` run against a directory the caller had added documents
to after `--stage ParseOnly` — the documented extension point for generated
content — therefore shipped a search index that omitted them, silently and
with no warning.
phoenixml.dev hit this: its build parses Markdown, generates 137 API reference
pages into the intermediate directory, then transforms. The site had 249 pages
and a 112-document search index, so its entire generated API reference was
unsearchable.
`TransformStage` now rebuilds the index when any intermediate XML document is
newer than it. A `Full` build is unaffected — parse writes the index last, so
nothing is newer and the existing index is copied as before.
### Packaging
- **The package now carries release notes.** `PackageReleaseNotes` was never set,
so every `crucible.cli` version through 1.1.62 shipped with an empty
`<releaseNotes>` — nuget.org showed nothing about what changed. CI now extracts
this file's section for the version being published (`scripts/release-notes.sh`)
and the pack reads it in.
Fails closed on the publish path: no matching section, or an empty one, aborts
the pack rather than releasing without notes. Pull-request builds pack without
notes, since a PR's commit count is not the version it will land as.