crucible.cli 1.5.0

dotnet tool install --global crucible.cli --version 1.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local crucible.cli --version 1.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=crucible.cli&version=1.5.0
                    
nuke :add-package crucible.cli --version 1.5.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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.5.0 121 10/7/2026
1.4.0 112 9/28/2026
1.3.0 116 9/27/2026
1.2.0 117 9/18/2026
1.1.76 131 9/2/2026
1.1.73 139 8/4/2026
1.1.63 142 7/31/2026
1.1.62 131 7/29/2026
1.1.47 168 4/29/2026
1.1.46 123 4/29/2026
1.1.45 123 4/29/2026
1.0.0 182 3/20/2026

**Social link previews, a site icon, an analytics advisory, and `PhoenixmlDb.Xslt` 2.6.0.**

### New

- **Link-preview cards.** Optional `crucible.yaml` settings:

 ```yaml
 social:
   image: img/icon-256.png      # relative to base-url, or an absolute URL
   card: summary                # summary (square icon, default) or summary_large_image (1200x630)
   image-alt: Product name
   twitter-site: "@handle"
 favicon: favicon.png
 ```

 Both themes now emit `og:site_name`, `twitter:card`, `twitter:title` and `twitter:description`
 on every page, and `og:image` / `twitter:image` (+ alt), `twitter:site` and a `rel="icon"` link
 when configured. Without `social:` a page gets a text-only `summary` card, where it previously
 had no card at all. `og:title` now carries the site title as `<title>` does, so a shared home
 page no longer previews as just "Home".
- **No analytics is now a visible advisory.** A build that produces pages with no `analytics.ga4`
 prints `warning: No analytics configured …`. It is a new kind of result
 (`BuildResult.Advisories`) that `--strict` never escalates, because leaving analytics out is a
 legitimate choice. phoenixml.dev lost its GA tag silently when analytics went opt-in in 1.2.0.

### Engine

Takes `PhoenixmlDb.Xslt` from 2.4.0 to 2.6.0 (XQuery 2.6.0, Core 2.1.0).

### Verified

phoenixml.dev (286 pages) built three ways from the same source:

| comparison | result |
|---|---|
| this release on Xslt 2.4.0 vs on 2.6.0, `ParseOnly` intermediate XML | 0 of 288 files differ |
| the same, HTML with inter-tag whitespace normalised | 0 of 286 differ |
| the same, text inside every code block | 0 pages differ |
| 1.4.0 vs this release, HTML | only the new `<head>` tags, plus indentation |

The raw HTML differs on every page in indentation only: 2.6.0's serializer indents consistently,
where 2.4.0 drifted further right on each line. That includes the whitespace a `<pre>` carries
after its `</code>`, which renders the same. No content, link or code sample changed.