DotNetDocs.Sdk 1.0.0-preview.10

This is a prerelease version of DotNetDocs.Sdk.
<Sdk Name="DotNetDocs.Sdk" Version="1.0.0-preview.10" />
                    
For projects that support Sdk, copy this XML node into the project file to reference the package.

CloudNimble.DotNetDocs.Sdk

MSBuild SDK for documentation projects (.docsproj) - provides a clean way to include documentation in .NET solutions.

Features

  • 🚀 Zero Configuration - Works out of the box for common documentation types
  • 📁 Clean Folders - No bin/obj folders cluttering your documentation directories
  • 🔍 Auto-Detection - Automatically detects documentation type (Mintlify, DocFX, MkDocs, Jekyll, Hugo)
  • 📝 Smart Includes - Automatically includes relevant files based on documentation type
  • 🛠️ Integration - Optional build targets for linting, preview, and deployment
  • 🎯 Visual Studio - Full IntelliSense and editing support in Visual Studio

Quick Start

1. Create a .docsproj file

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  
</Project>

2. Add to solution

For .slnx files:

<Project Path="docs/MyProject.Docs.docsproj" Type="{9A19103F-16F7-4668-BE54-9A1E7A4F7556}" projectTypeName="SharedProject" />

For .sln files:

Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyProject.Docs", "docs\MyProject.Docs.docsproj", "{GUID}"
EndProject

Documentation Type Detection

The SDK automatically detects your documentation type based on configuration files:

Type Detection File Auto-Included Files
Mintlify docs.json *.mdx, *.md, api-reference/**, conceptual/**, overrides/**, logo/**
DocFX docfx.json *.md, *.yml, articles/**, api/**, templates/**
MkDocs mkdocs.yml docs/**/*.md, requirements.txt, overrides/**
Jekyll _config.yml *.md, *.html, _posts/**, _layouts/**, _includes/**
Hugo hugo.toml content/**, layouts/**, static/**, themes/**
Generic fallback *.md, *.rst, docs/**, common formats

Configuration Options

Basic Options

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  <PropertyGroup>
    
    <KeepLocalOutput>true</KeepLocalOutput>
    
    
    <DocumentationType>Mintlify</DocumentationType>
    
    
    <GenerateMintlifyDocs>true</GenerateMintlifyDocs>
    <LintMarkdown>true</LintMarkdown>
    <ShowDocumentationStats>true</ShowDocumentationStats>
  </PropertyGroup>
</Project>

Advanced Options

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  <PropertyGroup>
    
    <PreviewDocumentation>true</PreviewDocumentation>
    <DeployDocumentation>true</DeployDocumentation>
    
    
    <ValidateLinks>true</ValidateLinks>
    <GeneratePdf>true</GeneratePdf>
  </PropertyGroup>
</Project>

Separate Documentation Location

If your .docsproj file is in a different location than your documentation files (e.g., project in src/ but docs in docs/), use the DocumentationRoot property:

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  <PropertyGroup>
    
    <DocumentationRoot>$(MSBuildThisFileDirectory)..\..\docs\</DocumentationRoot>
    
    
    <GenerateMintlifyDocs>true</GenerateMintlifyDocs>
    <ShowDocumentationStats>true</ShowDocumentationStats>
  </PropertyGroup>
</Project>

This is particularly useful when you want to:

  • Keep your .docsproj file with other project files in the src/ folder
  • Have all documentation content in a separate docs/ folder at the repository root
  • Maintain a clean separation between code and documentation

Available Build Targets

Target Description
DocumentationHelp Show available options and current configuration
DocumentationStats Display statistics about your documentation
GenerateMintlifyDocs Generate Mintlify documentation (requires EasyAF.Tools)
LintMarkdown Lint markdown files for issues
PreviewDocumentation Start local preview server
ValidateLinks Check for broken links
GeneratePdf Generate PDF output
DeployDocumentation Deploy to hosting platform

EasyAF.Tools Integration

The SDK automatically checks for and attempts to install CloudNimble.EasyAF.Tools when using Mintlify features. If automatic installation fails, you'll see instructions to visit this GitHub issue and leave a reaction emoji to get access to the tools.

Usage Examples

# Show help and current configuration
dotnet build -t:DocumentationHelp

# Show documentation statistics  
dotnet build -t:DocumentationStats

# Generate Mintlify docs manually
dotnet build -t:GenerateMintlifyDocs

# Start preview server
dotnet build -t:PreviewDocumentation

Integration Examples

Mintlify Project

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  <PropertyGroup>
    
    <GenerateMintlifyDocs>true</GenerateMintlifyDocs>
    
    
    <LintMarkdown>true</LintMarkdown>
    <ShowDocumentationStats>true</ShowDocumentationStats>
  </PropertyGroup>
</Project>

Multi-Format Project

<Project Sdk="DotNetDocs.Sdk/1.0.0">
  <PropertyGroup>
    
    <DocumentationType>Generic</DocumentationType>
    
    
    <KeepLocalOutput>true</KeepLocalOutput>
  </PropertyGroup>
  
  
  <ItemGroup>
    <None Include="custom-docs/**/*.rst" />
    <None Include="api-specs/**/*.yaml" />
  </ItemGroup>
</Project>

CI/CD Integration

# GitHub Actions example
- name: Build Documentation
  run: dotnet build docs/MyProject.Docs.docsproj -p:DeployDocumentation=true

Benefits Over Manual Configuration

Feature Manual Setup CloudNimble.DotNetDocs.Sdk
Configuration 20+ lines of MSBuild 2 lines
File Includes Manual specification Automatic by type
Output Cleanup Custom Directory.Build.props Built-in
Type Detection None Automatic
Build Integration Custom targets Ready-to-use targets
Maintenance High Zero

Requirements

  • .NET SDK 6.0 or later
  • MSBuild 16.0 or later
  • Visual Studio 2019 or later (for full IDE support)

Contributing

This SDK is part of the CloudNimble EasyAF framework. Contributions welcome!

License

MIT License - see LICENSE for details.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • net10.0

    • 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
1.0.0-preview.10 66 9/5/2025
1.0.0-preview.9 112 9/5/2025
1.0.0-preview.8 120 9/3/2025
1.0.0-preview.7 127 9/1/2025
1.0.0-preview.6 116 9/1/2025
1.0.0-preview.5 133 8/30/2025
1.0.0-preview.4 158 8/29/2025
1.0.0-preview.3 161 8/29/2025
1.0.0-preview.2 162 8/28/2025
1.0.0-preview.1 165 8/27/2025