fsdocs-tool
23.0.0-alpha.6
See the version list below for details.
dotnet tool install --global fsdocs-tool --version 23.0.0-alpha.6
dotnet new tool-manifest
dotnet tool install --local fsdocs-tool --version 23.0.0-alpha.6
#tool dotnet:?package=fsdocs-tool&version=23.0.0-alpha.6&prerelease
nuke :add-package fsdocs-tool --version 23.0.0-alpha.6
fsdocs and FSharp.Formatting

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
initcreates adocsfolder with a defaultindex.md.buildprocesses thedocsfolder and writes the site tooutput.watchbuilds the site, serves it locally and rebuilds on every change.convertconverts 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 | 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.
| Version | Downloads | Last Updated |
|---|---|---|
| 23.0.0-alpha.7 | 78 | 9/15/2026 |
| 23.0.0-alpha.6 | 61 | 9/15/2026 |
| 23.0.0-alpha.5 | 34 | 9/15/2026 |
| 23.0.0-alpha.4 | 309 | 9/13/2026 |
| 23.0.0-alpha.3 | 47 | 9/13/2026 |
| 23.0.0-alpha.2 | 115 | 9/10/2026 |
| 23.0.0-alpha.1 | 341 | 9/8/2026 |
| 22.2.0 | 2,487 | 8/31/2026 |
| 22.1.0 | 19,333 | 5/27/2026 |
| 22.0.1 | 995 | 5/9/2026 |
| 22.0.0 | 2,893 | 4/4/2026 |
| 22.0.0-alpha.3 | 1,195 | 4/2/2026 |
| 22.0.0-alpha.2 | 1,057 | 3/13/2026 |
| 22.0.0-alpha.1 | 93 | 3/5/2026 |
| 21.0.0 | 20,760 | 11/12/2025 |
| 21.0.0-beta-005 | 3,186 | 4/23/2025 |
| 21.0.0-beta-004 | 1,857 | 11/20/2024 |
| 21.0.0-beta-003 | 654 | 8/16/2024 |
| 21.0.0-beta-002 | 9,030 | 6/19/2024 |
| 21.0.0-beta-001 | 1,942 | 6/6/2024 |
### Fixed
- The Markdown output marks the namespace of the page in the menu. The menu of the page was overwritten by the site-wide one, which marks nothing, the way the HTML output was until 23.0.0-alpha.5. [#1330](https://github.com/fsprojects/FSharp.Formatting/pull/1330)
- API docs keep the comment of a member whose signature has a type abbreviation of a function type in the range of a function type, such as `(string -> IsPathIgnored) * (unit -> int)` with `type IsPathIgnored = string -> bool`. Reading the member threw `ArgumentOutOfRangeException` and the comment was dropped. The abbreviation is now shown under its own name, as it is everywhere else. [#1327](https://github.com/fsprojects/FSharp.Formatting/issues/1327)
### Changed
- The API Reference section of the menu lists the namespaces on every page of the site. The content pages got a single "All Namespaces" link instead, and only a collection named `FSharp.Core` got the list there, which made the menu of a content page a different menu from the one of an API page. No entry is marked active while the reader is on a content page. [#1330](https://github.com/fsprojects/FSharp.Formatting/pull/1330)
- The header of that section reads "API Reference" on the API pages as well, where 23.0.0-alpha.5 made it "Namespaces". A menu template sees the same `{{fsdocs-menu-header-content}}` and `{{fsdocs-menu-header-id}}` (`api_reference`) on every page of the site now. The built-in menu keeps the header as the link to the index of all namespaces. [#1330](https://github.com/fsprojects/FSharp.Formatting/pull/1330)