fsdocs-tool 23.0.0-alpha.9

This is a prerelease version of fsdocs-tool.
dotnet tool install --global fsdocs-tool --version 23.0.0-alpha.9
                    
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 fsdocs-tool --version 23.0.0-alpha.9
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=fsdocs-tool&version=23.0.0-alpha.9&prerelease
                    
nuke :add-package fsdocs-tool --version 23.0.0-alpha.9
                    

fsdocs and FSharp.Formatting Build and Test NuGet

FSharp.Formatting is a set of libraries and tools for processing F# script files and markdown, and for generating API documentation from XML doc comments. The primary tool is fsdocs.

Full documentation: https://fsprojects.github.io/FSharp.Formatting/

The fsdocs tool

fsdocs builds a static documentation site from the markdown files and F# scripts in your docs folder, plus API reference pages for the projects in your solution.

dotnet tool install fsdocs-tool
dotnet fsdocs build
dotnet fsdocs watch
  • init creates a docs folder with a default index.md.
  • build processes the docs folder and writes the site to output.
  • watch builds the site, serves it locally and rebuilds on every change.
  • convert converts individual markdown and script files.

Run dotnet fsdocs <command> --help to see the options of a command, or read the command line guide.

The libraries

The same functionality is available as NuGet packages for use from your own code:

  • FSharp.Formatting bundles the markdown parser, F# code formatter, literate programming support and API doc generator.
  • FSharp.Formatting.Literate only contains the literate programming support and its dependencies.

See Markdown parser, F# code formatting and literate programming for examples.

Contributing

See CONTRIBUTING.md for how to build the repository and run the tool locally.

Maintainer(s)

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
23.0.0-alpha.9 77 11/6/2026
23.0.0-alpha.8 2,832 9/18/2026
23.0.0-alpha.7 601 9/15/2026
23.0.0-alpha.6 116 9/15/2026
23.0.0-alpha.5 88 9/15/2026
23.0.0-alpha.4 400 9/13/2026
23.0.0-alpha.3 83 9/13/2026
23.0.0-alpha.2 178 9/10/2026
23.0.0-alpha.1 435 9/8/2026
22.2.0 17,165 8/31/2026
22.1.0 32,046 5/27/2026
22.0.1 1,198 5/9/2026
22.0.0 4,137 4/4/2026
22.0.0-alpha.3 1,307 4/2/2026
22.0.0-alpha.2 1,100 3/13/2026
22.0.0-alpha.1 113 3/5/2026
21.0.0 22,436 11/12/2025
21.0.0-beta-005 3,207 4/23/2025
21.0.0-beta-004 1,875 11/20/2024
21.0.0-beta-003 675 8/16/2024
Loading failed

### Changed

- Avoid recomputing `List.length` on the shrinking remainder for every scanned character when splitting a Markdown pipe-table row into cells (`pipeTableFindSplits` in `MarkdownTableParser.fs`). The scan now tracks the number of consumed characters incrementally, turning an O(n²) split into an O(n) one for rows with many delimiters, with no behavior change.
- Avoided a per-character `Seq.windowed`/`String()` allocation in `StartsWithNTimesTrimIgnoreStartWhitespace`, the active pattern used to count repeated fence characters (`` ` `` / `~`) when parsing code fences and headers. The count is now computed with `String.CompareOrdinal` over string offsets, with no intermediate substring allocations. Behavior is unchanged.

### Fixed

- A `<see langword="..."/>` in a doc comment rendered as nothing, so `Returns <see langword="true"/> when …` read "Returns  when …". The API docs show the keyword as inline code, the same as `<c>true</c>`, and a tool tip on a code snippet keeps the word. [#1371](https://github.com/fsprojects/FSharp.Formatting/pull/1371)