Skip to content
/ mddocs Public

A tool to generate documentation as Markdown files

License

Notifications You must be signed in to change notification settings

ap0llo/mddocs

Repository files navigation

MdDocs

Overview

Build Status Renovate Conventional Commits

Package NuGet.org MyGet
Grynwald.MdDocs NuGet MyGet
Grynwald.MdDocs.MSBuild NuGet MyGet

MdDocs is a tool to generate documentation in the form of Markdown documents. It currently supports:

  • Generating API reference from a .NET assembly and the corresponding XML documentation file
  • Generating command line help for projects that use the CommandLineParser package for parsing

For an example of what the output looks like, have a look at the demoprojects directory.

Documentation

For documentation on installation and usage, please refer to the corresponding sub-pages:

Building from source

ℹ This repository uses git submodules. Use git clone --recursive to check out submodules as well.

Building MdDocs from source requires the .NET 7 SDK (at lease version 7.0.101 as specified in global.json) and uses Cake for the build.

To run tests, the .NET 6 SDK and a installation of Visual Studio 2022 is requried as well. (this only applies to the MdDocs.MSBuild.IntegrationTest project, all other test project should be executable with only the .NET 7 SDK).

To execute the default task, run

.\build.ps1

This will build the project, run all tests and pack the NuGet package.

Issues

If you run into any issues or if you are missing a feature, feel free to open an issue.

I'm also using issues as a backlog of things that come into my mind or things I plan to implement, so don't be surprised if many issues were created by me without anyone else being involved in the discussion.

Acknowledgments

MdDocs was made possible through a number of libraries (aside from .NET Core and .NET Standard). Thanks to all the people contribution to these projects:

Versioning and Branching

The version of the library is automatically derived from git and the information in version.json using Nerdbank.GitVersioning:

  • The master branch always contains the latest version. Packages produced from master are always marked as pre-release versions (using the -pre suffix).
  • Stable versions are built from release branches. Build from release branches will have no -pre suffix
  • Builds from any other branch will have both the -pre prerelease tag and the git commit hash included in the version string

To create a new release branch use the nbgv tool:

dotnet tool install --global nbgv
nbgv prepare-release