Skip to main content

Crate docs_core

Crate docs_core 

Source
Expand description

docs-core — the Rust docs pipeline core (ADR-0004 §2.5).

Consolidates what Tachyon (16 crates), docs-pipeline, and the eight starlight-* plugins do in three languages: CommonMark+GFM to static HTML, plus astro-island-compatible island emission so the estate’s existing SolidJS bundles hydrate inside a Rust-rendered shell — the one seam the ecosystem has no answer for (Leptos/Dioxus islands are Rust/WASM-only).

let html = docs_core::render(
    "# Chisel\n\nSome *prose*.\n\n```island nav-search client=visible\n{\"count\": 3}\n```\n",
    "/_assets",
)
.unwrap();
assert!(html.contains("<h1>Chisel</h1>"));
assert!(html.contains("component-url=\"/_assets/islands/nav-search.js\""));

§Scope (M1, honest)

In: headings, paragraphs, emphasis/strong/strike, inline + fenced code, links, images, lists (incl. task lists), blockquotes, rules, and island fences. Out (Wave 2, per the ecosystem survey): search indexing (Pagefind), versioning, i18n, math (latex2mathml), diagrams (D2), HTML sanitization for untrusted content (ammonia), and the dev server.

§Layer

L2 — domain. One external dependency (pulldown-cmark); no UI, no web framework — the output is static HTML plus island custom elements.

Structs§

Island
A parsed ```island fence: the island’s component name, hydration hint, and raw JSON props from the fence body.

Enums§

Client
How an island wants to hydrate.
DocsError
Why a document could not be rendered.

Constants§

VERSION
The crate’s version, for callers that report it.

Functions§

render
Render Markdown to HTML. Islands in ```island fences become astro-island-compatible custom elements (base prefixes component URLs).