Skip to content

Latest commit

 

History

History
125 lines (94 loc) · 6.2 KB

README.md

File metadata and controls

125 lines (94 loc) · 6.2 KB

LithoSharp

build NuGet

English | 日本語

A type-safe static site and documentation generator for .NET with C#, Markdown, MDX, React and incremental builds. Build documentation alongside your .NET code, validate content and links during generation, and deploy ordinary static files.

The current release is 2.0.0. The installation examples below use this version. For an existing site, follow the upgrade guide.

Features

  • Typed C# content collections, routes and references, with strict schema validation and optional Roslyn source generators and build diagnostics.
  • Markdown and optional MDX 3 with React, build-time HTML, page hydration and selective hydration with explicit islands.
  • Docs, Blog and independent pages, multiple Docs collections, versions, locales, sidebars and local search.
  • Dependency graphs, persistent caches, invalidation reasons and artifact ownership for inspectable incremental builds.
  • Staged output transactions and rollback before publication, with route and ownership validation.
  • Structured link, anchor, canonical, redirect and SEO diagnostics.
  • XML .NET API documentation, OpenAPI 3 JSON, exact xrefs and checked examples.
  • .NET testing APIs for sites, routes, artifacts, DOM, components and layouts.
  • Fingerprinted assets, responsive images and explicit extension points for C# rendering and trusted MDX plugins.

Quick Start

With the .NET 10 SDK installed:

dotnet new install LithoSharp.ProjectTemplates::2.0.0
dotnet tool install LithoSharp.Tool --version 2.0.0 --tool-path .tools
.tools/lithosharp new docs MyDocs -o MyDocs
.tools/lithosharp build MyDocs -c Release
.tools/lithosharp serve MyDocs -c Release

On Windows the executable is .tools/lithosharp.exe. Edit MyDocs/content and configure DocsSiteFactory.cs. Deploy MyDocs/dist to a static HTTP host. For isolated installation, Markdown authoring, MDX and an interactive component, follow the complete Quick Start.

Existing applications can use dotnet add package LithoSharp --version 2.0.0 and call the library directly; a CLI host is not required.

Sample sites

Generated from the included factories. Both built-in templates support light/dark switching, responsive menus and keyboard navigation. Set SiteThemeOptions.EnableThemeSwitching = false to disable switching; see theme configuration.

Docs — light Blog — dark
Docs sample with sidebar, article and table of contents Blog sample with featured article and navigation

Examples

Goal Start here
Markdown Docs, typed content and images Docs sample
Blog, feed and search Blog sample
MDX, React islands and offline navigation MDX sample
Versioning, i18n, Blog/Pages and API docs MDX guide and sample map

Requirements

.NET 10 is required. The minimum supported SDK is 10.0.300. The CLI development server also uses the ASP.NET Core shared framework provided with the SDK. Markdown-only sites do not need Node.js or React. MDX requires Node.js 24.13.0 and explicit worker restore; the lockfile pins MDX 3.1.1, React 19.2.4 and esbuild 0.28.2. Production output needs only a static HTTP host.

VS Code extension

Install LithoSharp for VS Code for Markdown/MDX diagnostics, heading navigation, build commands and site preview. See the extension guide.

Documentation

Upgrade to 2.0.0

Update the LithoSharp packages, CLI and templates you use together to 2.0.0. Follow the 2.0 upgrade guide, including the breaking Testing API change from Document to Snapshot. Rebuild your site and check content warnings, links and custom CSS. MDX remains optional; see the supported Markdown syntax.

Notes for migrations between older releases are preserved in the upgrade history.

Known limitations

MDX and C# site code execute as trusted build code. HTML safety is not a code sandbox. Large MDX rebuilds can still bundle many interactive entries; arbitrary Docusaurus plugins, trimming and Native AOT are unsupported. Read Known limitations before choosing an execution environment.

Performance

In the static-page fixture measured with 0.3.0, selective hydration reduced JS from 449,585 to 15,817 bytes and hydration roots from one to zero. This does not represent all island or fallback pages. The 10,000-page MDX corpus took 274.30 s cold and 105.13 s for a no-op. A 100/1,000-page competitor comparison is summarized alongside the Markdown results remeasured with the 1.0.0 candidate. See conditions, limits and reproduction.

Contribute and license

See CONTRIBUTING for build and verification commands. MIT licensed; see LICENSE and third-party notices.