EarlyDocs

EarlyDocs generates Markdown documentation for your .Net library. Install the 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. See full documentation on Github (https://github.com/WithoutHaste/EarlyDocs).


Keywords
documentation, .net, c#, markdown, md, open-source
License
MIT
Install
Install-Package EarlyDocs -Version 2.0.0-alpha2

Documentation

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

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.

WithoutHaste.Drawing.Colors

WithoutHaste.Drawing.Shapes

WithoutHaste.Windows.GUI

The EarlyDocs test project includes examples of almost everything: EarlyDocs test project documentation

License

MIT License

Donate

Become a patron of this and other Without Haste open source projects.

Version Notes

Uses Semantic Versioning 2.0.0.

Initial Release - v1.0.0