fsdocs-tool
23.0.0-alpha.4
dotnet tool install --global fsdocs-tool --version 23.0.0-alpha.4
dotnet new tool-manifest
dotnet tool install --local fsdocs-tool --version 23.0.0-alpha.4
#tool dotnet:?package=fsdocs-tool&version=23.0.0-alpha.4&prerelease
nuke :add-package fsdocs-tool --version 23.0.0-alpha.4
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.4 | 57 | 9/13/2026 |
| 23.0.0-alpha.3 | 31 | 9/13/2026 |
| 23.0.0-alpha.2 | 82 | 9/10/2026 |
| 23.0.0-alpha.1 | 329 | 9/8/2026 |
| 22.2.0 | 2,033 | 8/31/2026 |
| 22.1.0 | 18,933 | 5/27/2026 |
| 22.0.1 | 986 | 5/9/2026 |
| 22.0.0 | 2,870 | 4/4/2026 |
| 22.0.0-alpha.3 | 1,184 | 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,648 | 11/12/2025 |
| 21.0.0-beta-005 | 3,185 | 4/23/2025 |
| 21.0.0-beta-004 | 1,857 | 11/20/2024 |
| 21.0.0-beta-003 | 653 | 8/16/2024 |
| 21.0.0-beta-002 | 9,018 | 6/19/2024 |
| 21.0.0-beta-001 | 1,942 | 6/6/2024 |
| 20.0.1 | 52,490 | 5/31/2024 |
| 20.0.0 | 9,178 | 2/14/2024 |
| 20.0.0-beta-002 | 1,488 | 2/8/2024 |
### Added
- The "On this page" menu of the default template marks the section the reader is in: the entry of the last heading scrolled past the top of the content gets a coloured left border, and a heading focused with the `j` / `k` hotkeys marks its entry as well. Pure CSS, through scroll-driven animations (`view-timeline-name`, `timeline-scope`, `animation-timeline`); browsers without them show the menu as before. The generator numbers the headings and menu entries (`data-fsdocs-heading`) and emits the wiring in a `<style>` next to the menu. The colour and the reading line are the `--page-menu-active-border-color` and `--page-menu-reading-line` variables. When the menu has its own scroll bar, `j` / `k` also scroll the entry of the focused heading into view and put its anchor in the URL (without a history entry). [#1322](https://github.com/fsprojects/FSharp.Formatting/pull/1322)
- `fsdocs watch` shows a progress bar along the bottom of the window while it waits for the next page, which can take a while when a big script is rendered for the first time. Dev server only, it comes with the live reload script. [#1322](https://github.com/fsprojects/FSharp.Formatting/pull/1322)
### Fixed
- `fsdocs watch` renders the API Reference section of the menu with the current `_menu_template.html` and `_menu-item_template.html` after an edit; it kept the templates as they were when the watch started, until an assembly changed. [#1323](https://github.com/fsprojects/FSharp.Formatting/issues/1323)
- The "All Namespaces" entry of the API Reference menu no longer carries the `active` class on every documentation page when menu templates are used. A page without an entry of its own, such as the docs index, showed it as the current page, and the `h` hotkey entered the menu there.