Package | NuGet.org | MyGet |
---|---|---|
Grynwald.MdDocs |
||
Grynwald.MdDocs.MSBuild |
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.
For documentation on installation and usage, please refer to the corresponding sub-pages:
ℹ 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.
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.
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:
- Parts of this program are based on code from the NuDoq project,
licensed under the Apache License 2.0.
See
XmlDocsReader.cs
for details - Mono.Cecil
- CommandLineParser
- Nerdbank.GitVersioning
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Configuration
- Microsoft.DotNet.Analyzers.Compatibility
- xUnit
- Xunit.Combinatorial
- Moq
- ApprovalTests
- Microsoft.CodeAnalysis.CSharp
- Coverlet
- SourceLink
- NuGet
- Newtonsoft.Json
- Cake
- Cake.BuildSystems.Module
- Verify
- nugetizer
- MSBuildStructuredLog
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