docfx — это инструмент с открытым исходным кодом, предназначенный для генерации документации (в том числе справочной API-документации) для проектов на платформе .NET. Он позволяет извлекать комментарии из исходного кода, а также использовать Markdown-файлы (концептуальную документацию, статьи, руководства) для формирования статического сайта документации. docfx объединяет конфигурацию, шаблоны и исходные данные для генерации HTML-страниц, PDF и других форматов.
Проект clr-docfx (ранее поддерживаемый Microsoft) в последние годы был передан под управление .NET Foundation и действует как сообщественный проект. Хотя официальная поддержка в рамках некоторых продуктов Microsoft была сокращена, инструмент продолжает развиваться за счёт вкладов сообщества. docfx используется в том числе для генерации локальной и зарубежной документации, концептуальных разделов, справочных данных по API, REST-интерфейсов и прочих компонентов, требующих объединения текстов и программных интерфейсов.
Основное назначение docfx — упростить поддержку документации в проектах .NET, автоматически собрать справочную часть из исходного кода, синхронизировать её с комментариями, а также дать возможность оформлять дополнительную (концептуальную) документацию, управлять навигацией, темами и шаблонами. С помощью конфигурационных файлов можно задать, какие сборки или исходники обрабатывать, где помещать результат, как форматировать выход и как интегрировать разные виды документов вместе.
- Генерация API-справки из кода — извлечение комментариев (например, в формате XML или из исходников), отражения сборок (.dll/.exe) или проектов, и преобразование их в структурированные страницы документации.
- Поддержка Markdown и концептуальных файлов — использование Markdown-файлов (в том числе расширений, таких как Docfx Flavored Markdown), файлов с руководствами, учебными материалами, которые могут быть связаны с API-справкой.
- Шаблоны и настройка оформления — возможность выбирать или создавать собственные шаблоны, задавать темы, формы навигации, структуру интерфейса, вид страниц, внешний вид сайта.
- Кроссплатформенность — работа на разных операционных системах, включая Windows, Linux и macOS; возможность интеграции в разные среды сборки.
- Командная утилита и конфигурация — множество команд (например, metadata, build, serve, init, pdf), конфигурационный файл (обычно docfx.json), управление процессом генерации через конфигурацию.
- Поддержка разнородных источников — помимо исходного кода .NET, возможность включать REST-интерфейсы (например, через описания API), файлов спецификаций, смешанных источников документации.
- Выход в разные целевые форматы — статический веб-сайт HTML, PDF-документы и метаданные (YAML/JSON), пригодные для кросс-ссылок, навигации и интеграции.