EarlyDocs
EarlyDocs generates Markdown documentation for your .Net library.
Install the EarlyDocs NuGet package to insert EarlyDocs into your build process. It will run after your project build is complete. Errors in EarlyDocs will not affect your build.
Summary:
- Loads documentation from your Project.dll and Project.XML files.
- Generates one Markdown documentation page for each Type in your project.
- Generates one global Table of Contents per project and one detailed Table of Contents per namespace.
- All Markdown files are inter-linked.
- Everything is saved to one "documentation" directory.
Installing and Using EarlyDocs
EarlyDocs is build on top of
- WithoutHaste.DataFiles.DotNet which handles all the loading of information from the dll and xml files into an object model.
- WithoutHaste.DataFiles.Markdown for building the Markdown files.
This library is under active development. Report bugs and request features on Github, or to wohaste@gmail.com.
Supported XML Tags
Supports all standard Microsoft XML tags. See examples in How to Use XML Comments in .Net.
inheritdoc Custom Tag
Supports custom tag <inheritdoc />
as a top-level tag.
The entire comments of the member/type with <inheritdoc />
on it will be replaced with the entire comments of the member/type it inherits from.
Supported inheritance:
- Classes inheriting from classes
- Classes and interfaces inheriting from interfaces
- Members inheriting from explicit interfaces
Example:
TypeB will have the same documentation as TypeA.
TypeB.MethodA will have the same documentation as TypeA.MethodA.
/// <summary>
/// Summary of TypeA
/// </summary>
public class TypeA
{
/// <summary>
/// Summary of MethodA
/// </summary>
public virtual void MethodA() { }
}
/// <inheritdoc />
public class TypeB : TypeA
{
/// <inheritdoc />
public override void MethodA() { }
}
duplicate Custom Tag
Supports custom tag <duplicate cref="" />
as a top-level tag.
The entire comments of the member/type with <duplicate cref="" />
on it will be replaced with the entire comments of the member/type being referenced.
Example:
All three overloaded methods will have the same documentation.
public class TypeA
{
/// <summary>
/// Summary of MethodA
/// </summary>
public void MethodA(int a) { }
/// <duplicate cref="MethodA(int)" />
public void MethodA(float a) { }
/// <duplicate cref="MethodA(int)" />
public void MethodA(double a) { }
}
How to cref almost anything in your code.
Documentation
For programmers on this project:
Design
Examples
Projects with EarlyDocs-generated documentation.
The EarlyDocs test project includes examples of almost everything: EarlyDocs test project documentation
License
Donate
Become a patron of this and other Without Haste open source projects.