crucible.cli
1.4.0
dotnet tool install --global crucible.cli --version 1.4.0
dotnet new tool-manifest
dotnet tool install --local crucible.cli --version 1.4.0
#tool dotnet:?package=crucible.cli&version=1.4.0
nuke :add-package crucible.cli --version 1.4.0
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.
**Takes `PhoenixmlDb.Xslt` from 2.2.0 to 2.4.0** (with XQuery 2.4.0). No Crucible source changed;
the engine did. That keeps phoenixml.dev rendered by the same engine its API reference documents.
### Verified
**The rendered site is byte-identical** in both pipeline stages, against the same docs source
(`phoenixml-docs` @ `700910a`):
| stage | files differing |
|---|---|
| `ParseOnly`: Markdown to intermediate XML | 0 of 118 |
| `TransformOnly`: XML to HTML | 0 of 116 |
The two arms were confirmed to differ before that result was trusted, since an A/B that runs one
engine twice gives the same clean diff. From each build's `deps.json`:
```
control: PhoenixmlDb.Xslt/2.2.0 PhoenixmlDb.XQuery/2.2.0 (crucible 1.3.0)
new: PhoenixmlDb.Xslt/2.4.0 PhoenixmlDb.XQuery/2.4.0 (this build)
```
That's expected, not suspicious. 2.4.0's behaviour changes are in streaming, `fn:transform`,
`fn:namespace-uri`'s type and `distinct-values`, and neither Crucible's stylesheets nor the site's
use any of them (grepped).