DemaConsulting.ApiMark.Tool 0.4.8

Prefix Reserved
dotnet tool install --global DemaConsulting.ApiMark.Tool --version 0.4.8
                    
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 DemaConsulting.ApiMark.Tool --version 0.4.8
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=DemaConsulting.ApiMark.Tool&version=0.4.8
                    
nuke :add-package DemaConsulting.ApiMark.Tool --version 0.4.8
                    

ApiMark

GitHub forks GitHub stars GitHub contributors License Build Quality Gate Security NuGet

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.md via --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 .csproj and .vcxproj builds
  • 🖥️ CLI Tool - apimark dotnet 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 ClangPath MSBuild property or --clang-path CLI option can point to a specific installation.
  • macOS: Xcode Command Line Tools (xcode-select --install) — clang is included.
  • Linux: Install via the system package manager (e.g. apt install clang or dnf 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

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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
0.4.8 87 6/24/2026
0.4.7 104 6/19/2026
0.4.6 103 6/18/2026
0.4.5 97 6/18/2026
0.4.4 100 6/18/2026
0.4.3 87 6/17/2026
0.4.2 166 6/16/2026
0.4.1 101 6/15/2026
0.4.0 100 6/15/2026
0.3.2 118 6/9/2026
0.3.1 97 6/9/2026
0.3.0 100 6/9/2026
0.2.0 112 6/8/2026
0.1.3 104 6/1/2026
0.1.2 101 6/1/2026
0.1.1 103 6/1/2026
0.1.0 100 6/1/2026