DemaConsulting.ApiMark.MSBuild
0.4.8
Prefix Reserved
dotnet add package DemaConsulting.ApiMark.MSBuild --version 0.4.8
NuGet\Install-Package DemaConsulting.ApiMark.MSBuild -Version 0.4.8
<PackageReference Include="DemaConsulting.ApiMark.MSBuild" Version="0.4.8" />
<PackageVersion Include="DemaConsulting.ApiMark.MSBuild" Version="0.4.8" />
<PackageReference Include="DemaConsulting.ApiMark.MSBuild" />
paket add DemaConsulting.ApiMark.MSBuild --version 0.4.8
#r "nuget: DemaConsulting.ApiMark.MSBuild, 0.4.8"
#:package DemaConsulting.ApiMark.MSBuild@0.4.8
#addin nuget:?package=DemaConsulting.ApiMark.MSBuild&version=0.4.8
#tool nuget:?package=DemaConsulting.ApiMark.MSBuild&version=0.4.8
ApiMark
Overview
ApiMark generates compact, AI-friendly API reference documentation in Markdown from source code and associated metadata (XML doc comments, header files, docstrings, etc.). The output is designed for gradual disclosure: an AI can read a lightweight index, drill into a namespace summary, and then read a full type page — consuming only as much context as the task requires.
Features
- 📄 Compact Markdown Output - AI-friendly API reference from source code
- 🔍 Gradual Disclosure - Index → namespace → type → member detail
- 🗂️ Multiple Output Formats - Gradual-disclosure (file-per-type) or single
api.mdvia--format - 💡 Example Code Blocks -
<example><code>(C#) and@code/@endcode(Doxygen) blocks rendered in output - 🔷 C#/.NET Support - Mono.Cecil + XML documentation comments
- ➕ C++ Support -
clang -ast-dump=json+ Doxygen-style comments - 🔶 VHDL Support - Entities, packages, and subprograms from ANTLR4 vhdl2008 grammar +
--!doc comments - 🔧 MSBuild Integration - Auto-documents
.csprojand.vcxprojbuilds - 🖥️ CLI Tool -
apimarkdotnet tool covering all languages - 🤖 AI-Optimized - Minimal noise, explicit navigation links
- 🌐 Multi-Platform - Windows, Linux, and macOS on .NET 8, 9, and 10
- ✅ Self-Validation - Built-in qualification tests for regulated environments
Platform Support
| Platform | .NET | C++ | VHDL |
|---|---|---|---|
| Windows | ✅ | ✅ | ✅ |
| Linux | ✅ | ✅ | ✅ |
| macOS | ✅ | ✅ | ✅ |
Prerequisites
C++ Support
C++ documentation generation requires clang to be installed and available:
- Windows: Install LLVM or the "C++ Clang tools for Windows"
component via the Visual Studio Installer. The
ClangPathMSBuild property or--clang-pathCLI option can point to a specific installation. - macOS: Xcode Command Line Tools (
xcode-select --install) —clangis included. - Linux: Install via the system package manager (e.g.
apt install clangordnf install clang).
VHDL Support
VHDL documentation generation has no additional prerequisites. Parsing is done in-process using the ANTLR4 vhdl2008 grammar — no external tools required.
.NET support has no additional prerequisites beyond the .NET SDK.
Installation
CLI Tool
dotnet tool install --global DemaConsulting.ApiMark.Tool
MSBuild Integration
C# projects — add the NuGet package to your .csproj:
<ItemGroup>
<PackageReference Include="DemaConsulting.ApiMark.MSBuild" Version="x.y.z" />
</ItemGroup>
Enable XML documentation generation so ApiMark can read doc comments:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
C++ projects — add the NuGet package to your .vcxproj:
<ItemGroup>
<PackageReference Include="DemaConsulting.ApiMark.MSBuild" Version="x.y.z" />
</ItemGroup>
ApiMark discovers include paths from AdditionalIncludeDirectories automatically
for projects with a conventional layout. For projects with unusual include
structures, generated headers, or complex NuGet arrangements, use the CLI directly
for full control over what gets passed to clang.
Usage
CLI Usage
# Generate API documentation from a .NET assembly
apimark dotnet --assembly MyProject.dll --xml-doc MyProject.xml --output docs/api
# Generate a single-file API reference
apimark dotnet --assembly MyProject.dll --xml-doc MyProject.xml --output docs/api --format single-file
# Generate API documentation from C++ public headers (document all headers under include/)
apimark cpp --includes include/ --output docs/api
# Generate a single-file C++ API reference
apimark cpp --includes include/ --output docs/api --format single-file
# Document only specific headers using --api-headers patterns (gitignore-style, ordered)
apimark cpp \
--includes include/ \
--api-headers "include/**" \
--api-headers "!include/detail/**" \
--api-headers "include/detail/public_api.h" \
--output docs/api
# Generate API documentation from all .vhd files in the src directory
apimark vhdl --source "src/**/*.vhd" --output docs/api
# Generate with exclusions (gitignore-style)
apimark vhdl --source "src/**/*.vhd" --source "!src/tb/**/*.vhd" --output docs/api
Run apimark --help for all options. Run apimark dotnet --help, apimark cpp --help, or apimark vhdl --help for language-specific options.
MSBuild Usage
Documentation is generated automatically after every build. Output goes to
$(MSBuildProjectDirectory)\api by default. Configure with MSBuild properties:
<PropertyGroup>
<ApiMarkOutputDir>$(MSBuildProjectDirectory)\docs\api</ApiMarkOutputDir>
<ApiMarkVisibility>PublicAndProtected</ApiMarkVisibility>
<ApiMarkPackDocs>true</ApiMarkPackDocs>
<DisableApiMark>true</DisableApiMark>
</PropertyGroup>
See the User Guide for the full list of properties including C++-specific options.
Building
pwsh ./build.ps1
User Guide
The ApiMark User Guide is available on the ApiMark releases page.
Contributing
See CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License — see LICENSE.
Support
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.8 | 82 | 6/24/2026 |
| 0.4.7 | 218 | 6/19/2026 |
| 0.4.6 | 225 | 6/18/2026 |
| 0.4.5 | 100 | 6/18/2026 |
| 0.4.4 | 101 | 6/18/2026 |
| 0.4.3 | 101 | 6/17/2026 |
| 0.4.2 | 395 | 6/16/2026 |
| 0.4.1 | 99 | 6/15/2026 |
| 0.4.0 | 132 | 6/15/2026 |
| 0.3.2 | 96 | 6/9/2026 |
| 0.3.1 | 86 | 6/9/2026 |
| 0.3.0 | 132 | 6/9/2026 |
| 0.2.0 | 141 | 6/8/2026 |
| 0.1.3 | 213 | 6/1/2026 |
| 0.1.2 | 101 | 6/1/2026 |
| 0.1.1 | 104 | 6/1/2026 |
| 0.1.0 | 112 | 6/1/2026 |