As the name imply, this project lets you easily produce a markdown documentation from the generated assembly and its xml documentation produced by visual studio from comments.
- Requirement
- Usage
- Overview
- Configuration
- DocItem Configuration
- Markdown Configuration
- Samples
- Dependencies
- for the msbuild task: any runtime supporting netstandard2.0
- for the dotnet tool: netcore3.1, net5.0 or net6.0
DefaultDocumentation is available in two flavour, an msbuild task automatically integrated in a post build target when referencing the nuget package, using msbuild properties to configure it and a dotnet tool console.
Simply reference the DefaultDocumentation package in the projet you want to generate documentation for (don't worry it's only a development dependencies, no dlls will be added to your project). If the property <DocumentationFile> or <GenerateDocumentationFile> are set, the markdown pages will be produced automatically after a successfull build, that's it!
You can disable the documentation generation by setting the <DisableDefaultDocumentation> to true in your csproj.
...
<Project Sdk="Microsoft.NET.Sdk">
...
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
...
<ItemGroup>
<PackageReference Include="DefaultDocumentation" Version="0.8.0" PrivateAssets="all"/>
</ItemGroup>
...
</Project>DefaultDocumentation is also available as a dotnet tool if you need to control when to produce the documentation. The tool command is simply defaultdocumentation.
To install the tool simply use this command:
dotnet tool install DefaultDocumentation.Console -g
List of supported balises and attributes taken from here with some additions.
List of supported members taken from here
It is possible to exclude a type/member from the generated documentation by adding a <exclude/> element to its xml documentation.
The <inheritdoc> element is supported to reused existing documentations if available.
Note that this is a full import of the inherited documentation, any additional xml documentation will be ignored.
It is possible to declare xml documentation for your assembly by adding a special class named AssemblyDoc in a namespace with the name of the assembly.
namespace YourAssemblyName
{
/// <summary>
/// your assembly documentation, used on the assembly page
/// </summary>
internal static class AssemblyDoc { } // internal so it is not visible outside the assembly
}It is possible to declare xml documentation for a namespace by adding a special class named NamespaceDoc in the desired namespace.
namespace YourNamespace
{
/// <summary>
/// your namespace documentation
/// </summary>
internal static class NamespaceDoc { } // internal so it is not visible outside the assembly
}When using cref attributes, you may refer items from other assemblies which DefaultDocumentation has no knowledge of their documentation location. By default, it will use the provided UrlFactories that may produce incorrect links.
To remedy this, DefaultDocumentation use files for explicit links with the following simple format:
http://extern/assembly/documentation/base/url/
T:ExternAssembly.ExternType|extern_type.html|ExternType
M:ExternAssembly.ExternType.ExternMethod|extern_type_extern_method.html|ExternType
The first element is the base url that will be put before each following documentation page.
After that, you can have as many items with the following format: entity id|base url relative link to the documentation page|display name to use (optional).
You can change the base url in the same file for the following items.
http://extern/assembly/documentation/base/url/
T:ExternAssembly.ExternType|extern_type.html|ExternType
M:ExternAssembly.ExternType.ExternMethod|extern_type_extern_method.html|ExternType
http://extern/other/assembly/documentation/base/url/
T:OtherExternAssembly.ExternType|extern_type.html|ExternType
DefaultDocumentation can generate this file automatically for your assembly as it generates its documentation so can you easilly reference your own assembly documentation in other project, see LinksOutputFilePath and LinksBaseUrl settings.
Links files have no defined extension.
DefaultDocumentation is completely extensible in the form of plugin. The api serves as a base for contracts you can use to add features to your own documentation generation.
See the api reference for the list of interfaces for which you can provide your own implementations.
See Plugins setting for how to use a plugin and the samples for examples of implementations.
Here is all the available settings to help you build your documentation as you wish.
- csproj property:
<DefaultDocumentationConfigurationFile>...</DefaultDocumentationConfigurationFile>, default value isDefaultDocumentation.jsonin the project folder - tool argument:
-j ...--ConfigurationFilePath ...
The path to a json configuration file. If values are also provided by csproj property (msbuild task usage) or argument (tool usage) they will override what is inside the configuration file.
Note that using a configuration file allow you to provide specific settings per DocItem type. See DocItem Configuration for more informations.
All relative path specified in the configuration file are relative to the actual configuration file path.
- csproj property:
<DefaultDocumentationLogLevel>...</DefaultDocumentationLogLevel> - tool argument:
-h ...--LogLevel ... - configuration file:
"LogLevel": "..."
The minimum level of the log you wish to be displayed to help resolve errors, Information by default. Available values are:
Trace: Trace log levelDebug: Debug log levelInformation: Info log levelWarning: Warn log levelError: Error log levelCritical: Critical log levelNone: no log
- csproj property: this setting is set automatically for you by the msbuild task
- tool argument:
-a ...--AssemblyFilePath ... - configuration file:
"AssemblyFilePath": "..."
The path to the assembly file you wish to create documentation for.
- csproj property: this setting is set automatically for you by the msbuild task
- tool argument:
-d ...--DocumentationFilePath ... - configuration file:
"DocumentationFilePath": "..."
The path to the xml documentation file, if not specified DefaultDocumentation will assume it is in the same folder as the assembly.
- csproj property: this setting is set automatically for you by the msbuild task
- tool argument:
-p ...--ProjectDirectoryPath ... - configuration file:
"ProjectDirectoryPath": "..."
the path to the project source folder. This is only used if you reference a file using a source attribute in a <code> element.
- csproj property:
<DefaultDocumentationFolder>...</DefaultDocumentationFolder> - tool argument:
-o ...--OutputDirectoryPath ... - configuration file:
"OutputDirectoryPath": "..."
The path to the output folder where the documentation will be generated. If not specified, the pages will be generated in the same folder as the xml documentation file.
- csproj property:
<DefaultDocumentationAssemblyPageName>...</DefaultDocumentationAssemblyPageName> - tool argument:
-n ...--AssemblyPageName ... - configuration file:
"AssemblyPageName": "..."
The name of the page for the assembly documentation.
Note that this page will not be generated if you do not provide a name for this setting and there is only one namespace in your project and there is no xml documentation for the assembly (see Assembly documentation).
If you did not provide a name but the page still need to be generated, the default name index will be used.
- csproj property:
<DefaultDocumentationGeneratedAccessModifiers>...,...</DefaultDocumentationGeneratedAccessModifiers> - tool argument:
-s ...,...--GeneratedAccessModifiers ...,... - configuration file:
"GeneratedAccessModifiers": "...,..."
State elements with which access modifier should be generated. All by default, available values are:
Public: generates documentation for 'public' access modifierPrivate: generates documentation for 'private' access modifierProtected: generates documentation for 'protected' access modifierInternal: generates documentation for 'internal' access modifierProtectedInternal: generates documentation for 'protected internal' access modifierPrivateProtected: generates documentation for 'private protected' access modifierApi: generates documentation for 'public', 'protected' and 'protected internal' access modifier.
- csproj property:
<DefaultDocumentationIncludeUndocumentedItems>...</DefaultDocumentationIncludeUndocumentedItems> - tool argument:
-u--IncludeUndocumentedItems - configuration file:
"IncludeUndocumentedItems": "..."
If true items with no documentation will also be included in the generated documentation. false by default.
- csproj property:
<DefaultDocumentationGeneratedPages>...,...</DefaultDocumentationGeneratedPages> - tool argument:
-g ...,...--GeneratedPages ...,... - configuration file:
"GeneratedPages": "...,..."
States which item should have their own pages, if not their documentation will be inlined in their parent's one, Namespaces,Types,Members by default. Available values are:
Assembly: the assembly should have its own page, see AssemblyPageName for case when the assembly will have its page generated regardless of this flag being presentNamespaces: namespaces should have their own pagesClasses: classes should have their own pagesDelegates: delegates should have their own pagesEnums: enums should have their own pagesStructs: structs should have their own pagesInterfaces: interfaces should have their own pagesTypes: equivalent toClasses, Delegates, Enums, Structs, InterfacesConstructors: constructors should have their own pagesEvents: events should have their own pagesFields: fields should have their own pagesMethods: methods should have their own pagesOperators: operators should have their own pagesProperties: properties should have their own pagesExplicitInterfaceImplementations: property and method explicit interface implementations should have their own pagesMembers: equivalent toConstructors, Events, Fields, Methods, Operators, Properties, ExplicitInterfaceImplementations
- csproj property:
< sOutputFile>...</DefaultDocumentationLinksOutputFile> - tool argument:
-l ...--LinksOutputFilePath ... - configuration file:
"LinksOutputFilePath": "..."
Where to generate the links file, see Extern links for more information, empty by default and does not generate the links file.
- csproj property:
<DefaultDocumentationLinksBaseUrl>...</DefaultDocumentationLinksBaseUrl> - tool argument:
-b ...--LinksBaseUrl ... - configuration file:
"LinksBaseUrl": "..."
The base url to use for the links file, see Extern links for more information.
- csproj property:
<DefaultDocumentationExternLinksFiles>...|...</DefaultDocumentationExternLinksFiles> - tool argument:
-e ...|...--ExternLinksFilePaths ...|... - configuration file:
"ExternLinksFilePaths": [ "...", "..." ]
The list of links files to use when generating the documentation, see Extern links for more information.
You can use pattern, ex: .\myfolder\*.txt.
- csproj property:
<DefaultDocumentationPlugins>...|...</DefaultDocumentationPlugins> - tool argument:
--Plugins ...|... - configuration file:
"Plugins": [ "...", "..." ]
The list of plugin files to load to create the documentation. See Plugins for more information.
- csproj property:
<DefaultDocumentationDocItemGenerators>...|...</DefaultDocumentationDocItemGenerators> - tool argument:
--DocItemGenerators ...|... - configuration file:
"DocItemGenerators": [ "...", "..." ]
Name or Type Assembly of the IDocItemGenerator implementations to use to generate the DocItem of the documentation.
The default implementations provided are:
ExcludeorDefaultDocumentation.Markdown.DocItemGenerators.ExcludeGenerator DefaultDocumentation.MarkdownremoveDocItemfrom the documentation generation based on MarkdownConfiguration.Exclude.OverloadsorDefaultDocumentation.Markdown.DocItemGenerators.OverloadsGenerator DefaultDocumentation.Markdownadds pages to group constructor and method overloads the same way microsoft documentation do it. The default value isExclude|Overloads.
- csproj property:
<DefaultDocumentationUrlFactories>...|...</DefaultDocumentationUrlFactories> - tool argument:
--UrlFactories ...|... - configuration file:
"UrlFactories": [ "...", "..." ]
Name or Type Assembly of the IUrlFactory implementations to use to create documentation url. The element id is passed to each successive implementations and the first non null returned url is used.
The default implementations provided are:
DocItemorDefaultDocumentation.Markdown.UrlFactories.DocItemFactory DefaultDocumentation.Markdownreturns an url for knownDocItem.DotnetApiorDefaultDocumentation.Markdown.UrlFactories.DotnetApiFactory DefaultDocumentation.Markdownreturns an url formated from the id to its possible dotnet api documentation. The default value isDocItem|DotnetApi.
- csproj property:
<DefaultDocumentationElements>...|...</DefaultDocumentationElements> - tool argument:
--Elements ...|... - configuration file:
"Elements": [ "...", "..." ]
Type Assembly of the explicit IElement implementations to use to create the documentation.
By default all implementations are used but if multiple ones have the same name, the one from the latest plugin loaded is used. In case you may want to use a plugin that contains an IElement implementation but still use one from an other plugin, you can force its usage by stating its Type Assembly explicitely.
The default implementations provided are:
DefaultDocumentation.Markdown.Elements.CElement DefaultDocumentation.Markdownhandle the rendering of<c>elementDefaultDocumentation.Markdown.Elements.CodeElement DefaultDocumentation.Markdownhandle the rendering of<code>element. Attributes handled are:languageattribute used to declare the languge of the codesourceattribute used to reference code from a specific fileregionattribute used to reference a specific#regionfrom the source
DefaultDocumentation.Markdown.Elements.ListElement DefaultDocumentation.Markdownhandle the rendering of<list>elementDefaultDocumentation.Markdown.Elements.NoteElement DefaultDocumentation.Markdownhandle the rendering of<note>elementDefaultDocumentation.Markdown.Elements.ParaElement DefaultDocumentation.Markdownhandle the rendering of<para>element. Attributes handled are:ignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
DefaultDocumentation.Markdown.Elements.ParamRefElement DefaultDocumentation.Markdownhandle the rendering of<paramref>elementDefaultDocumentation.Markdown.Elements.SeeElement DefaultDocumentation.Markdownhandle the rendering of<see>. Attributes handled are:crefattributehrefattributelangwordattribute
DefaultDocumentation.Markdown.Elements.TypeParamRefElement DefaultDocumentation.Markdownhandle the rendering of<typeparamref>element
Those next settings can be overrided for each DocItem type when using a configuration file, allowing you to have different settings for each type. If no specific setting is defined for a given type, the root setting will be used.
{
"Sections": [
"Header",
"Default",
]
"NamespaceDocItem": {
"Sections": [
"Title",
"summary",
"TableOfContents"
]
}
}
The different DocItem types are:
AssemblyDocItemNamespaceDocItemClassDocItemStructDocItemInterfaceDocItemEnumDocItemDelegateDocItemConstructorDocItemEnumFieldDocItemEventDocItemExplicitInterfaceImplementationDocItemFieldDocItemMethodDocItemOperatorDocItemPropertyDocItemTypeParameterDocItemParameterDocItem
- csproj property:
<DefaultDocumentationFileNameFactory>...</DefaultDocumentationFileNameFactory> - tool argument:
--FileNameFactory ... - configuration file:
"FileNameFactory": "..."
Name or Type Assembly of the IFileNameFactory implementation to use to generate the name of pages. Available implementations are:
FullNameorDefaultDocumentation.Markdown.FileNameFactories.FullNameFactory DefaultDocumentation.Markdownuses the fully qualified name of each memberNameorDefaultDocumentation.Markdown.FileNameFactories.NameFactory DefaultDocumentation.Markdownremoves the namespace (collisions can happen if there is multiple types with the same name in different namespaces)Md5orDefaultDocumentation.Markdown.FileNameFactories.Md5Factory DefaultDocumentation.Markdownuses a Md5 of the full name of each member to produce shorter name, collisions can happenNameAndMd5MixorDefaultDocumentation.Markdown.FileNameFactories.NameAndMd5MixFactory DefaultDocumentation.Markdownremoves the namespace and use a Md5 for parametersDirectoryNameorDefaultDocumentation.Markdown.FileNameFactories.DirectoryNameFactory DefaultDocumentation.Markdownuse a directory hierarchy
The default value is FullName. All those implementations WILL delete any .md file EXCEPT a file named readme.md.
- csproj property:
<DefaultDocumentationSections>...|...</DefaultDocumentationSections> - tool argument:
--Sections ...|... - configuration file:
"Sections": [ "...", "..." ]
Name or Type Assembly of the ISection implementations to use in order for the generation of the documentation. The available implentations are:
HeaderorDefaultDocumentation.Markdown.Sections.HeaderSection DefaultDocumentation.Markdownto write links to parents and top pagesFooterorDefaultDocumentation.Markdown.Sections.FooterSection DefaultDocumentation.Markdownto write a reference to this projectTypeParametersorDefaultDocumentation.Markdown.Sections.TypeParametersSection DefaultDocumentation.Markdownto write theTypeParameterDocItemchildren links or inlined documentationParametersorDefaultDocumentation.Markdown.Sections.ParametersSection DefaultDocumentation.Markdownto write theParameterDocItemchildren links or inlined documentationEnumFieldsorDefaultDocumentation.Markdown.Sections.EnumFieldsSection DefaultDocumentation.Markdownto write theEnumFieldDocItemchildren links or inlined documentationConstructorsorDefaultDocumentation.Markdown.Sections.ConstructorsSection DefaultDocumentation.Markdownto write theConstructorDocItemchildren links or inlined documentationFieldsorDefaultDocumentation.Markdown.Sections.FieldsSection DefaultDocumentation.Markdownto write theFieldDocItemchildren links or inlined documentationPropertiesorDefaultDocumentation.Markdown.Sections.PropertiesSection DefaultDocumentation.Markdownto write thePropertyDocItemchildren links or inlined documentationMethodsorDefaultDocumentation.Markdown.Sections.MethodsSection DefaultDocumentation.Markdownto write theMethodDocItemchildren links or inlined documentationEventsorDefaultDocumentation.Markdown.Sections.EventsSection DefaultDocumentation.Markdownto write theEventDocItemchildren links or inlined documentationOperatorsorDefaultDocumentation.Markdown.Sections.OperatorsSection DefaultDocumentation.Markdownto write theOperatorDocItemchildren links or inlined documentationExplicitInterfaceImplementationsorDefaultDocumentation.Markdown.Sections.ExplicitInterfaceImplementationsSection DefaultDocumentation.Markdownto write theExplicitInterfaceImplementationDocItemchildren links or inlined documentationClassesorDefaultDocumentation.Markdown.Sections.ClassesSection DefaultDocumentation.Markdownto write theClassDocItemchildren links or inlined documentationStructsorDefaultDocumentation.Markdown.Sections.StructsSection DefaultDocumentation.Markdownto write theStructDocItemchildren links or inlined documentationInterfacesorDefaultDocumentation.Markdown.Sections.InterfacesSection DefaultDocumentation.Markdownto write theInterfaceDocItemchildren links or inlined documentationEnumsorDefaultDocumentation.Markdown.Sections.EnumsSection DefaultDocumentation.Markdownto write theEnumDocItemchildren links or inlined documentationDelegatesorDefaultDocumentation.Markdown.Sections.DelegatesSection DefaultDocumentation.Markdownto write theDelegateDocItemchildren links or inlined documentationNamespacesorDefaultDocumentation.Markdown.Sections.NamespacesSection DefaultDocumentation.Markdownto write theNamespaceDocItemchildren links or inlined documentationDefinitionorDefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.Markdownto write the code definitionDerivedorDefaultDocumentation.Markdown.Sections.DerivedSection DefaultDocumentation.Markdownto write links to derived typesEventTypeorDefaultDocumentation.Markdown.Sections.EventTypeSection DefaultDocumentation.Markdownto write the event type forEventDocItemFieldValueorDefaultDocumentation.Markdown.Sections.FieldValueSection DefaultDocumentation.Markdownto write the field value forFieldDocItemImplementorDefaultDocumentation.Markdown.Sections.ImplementSection DefaultDocumentation.Markdownto write links to implementationsInheritanceorDefaultDocumentation.Markdown.Sections.InheritanceSection DefaultDocumentation.Markdownto write links to the inherited typesTableOfContentsorDefaultDocumentation.Markdown.Sections.TableOfContentsSection DefaultDocumentation.Markdownto write a table of content links to all children, see TableOfContentsModes settingTitleorDefaultDocumentation.Markdown.Sections.TitleSection DefaultDocumentation.Markdownto write the title and link target of aDocItemDefinitionorDefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.Markdownto write the code definitionDefaultorDefaultDocumentation.Markdown.Sections.DefaultSection DefaultDocumentation.Markdownis a grouping of thoseISectionimplementations in this order:DefaultDocumentation.Markdown.Sections.TitleSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.SummarySection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.TypeParametersSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ParametersSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.EnumFieldsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.InheritanceSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.DerivedSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ImplementSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.EventTypeSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.FieldValueSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ValueSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ReturnsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ExceptionSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ExampleSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.RemarksSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.SeeAlsoSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.NamespacesSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ClassesSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.StructsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.InterfacesSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.EnumsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.DelegatesSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ConstructorsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.FieldsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.PropertiesSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.MethodsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.EventsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.OperatorsSection DefaultDocumentation.MarkdownDefaultDocumentation.Markdown.Sections.ExplicitInterfaceImplementationsSection DefaultDocumentation.Markdown
exampleorDefaultDocumentation.Markdown.Sections.ExampleSection DefaultDocumentation.Markdownto write the<example>elementignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
exceptionorDefaultDocumentation.Markdown.Sections.ExceptionSection DefaultDocumentation.Markdownto write the<exception>elementscrefattributeignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
remarksorDefaultDocumentation.Markdown.Sections.RemarksSection DefaultDocumentation.Markdownto write the<remarks>elementignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
returnsorDefaultDocumentation.Markdown.Sections.ReturnsSection DefaultDocumentation.Markdownto write the<returns>elementignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
seealsoorDefaultDocumentation.Markdown.Sections.SeeAlsoSection DefaultDocumentation.Markdownto write the<seealso>elementscrefattributehrefattribute
summaryorDefaultDocumentation.Markdown.Sections.SummarySection DefaultDocumentation.Markdownto write the<summary>elementignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
valueorDefaultDocumentation.Markdown.Sections.ValueSection DefaultDocumentation.Markdownto write the<value>elementignorelinebreakattribute used to change the default setting of IgnoreLineBreak for the content of this element
The default value is Header|Default.
The default implementations to generate markdown documentation also comes with its own specific settings. Those can only be set in the configuration file and may or may not be overridable by specific DocItem types.
- configuration file:
"Markdown.NestedTypeVisibilities": "...,..."
States where nested types should be visible. Available values are:
Namespace: nested types will be displayed in their parent namespaceDeclaringType: nested types will be displayed in their parent type
Default value is Namespace.
This setting can be overriden by specific DocItem types.
- configuration file:
"Markdown.RemoveFileExtensionFromUrl": "..."
true to remove the extension .md from links in the generated documentation, some wikies don't like those. false by default.
- configuration file:
"Markdown.InvalidCharToTrimRegex": "..."
Provides the regex used to trim chars for file names, [\=\ ] by default.
- configuration file:
"Markdown.InvalidCharToReplaceRegex": "..."
Provides the regex used to replace invalid char for file names, [\\\<\>:\*\?] by default.
- configuration file:
"Markdown.InvalidCharReplacement": "..."
Provides the value to use to replace invalid char for file names, _ by default.
- configuration file:
"Markdown.HandleLineBreak": "..."
true if line break in the documentation should be transformed as markdown line break (two space at the end of a line) or not, false by default.
This setting can be overriden by specific DocItem types.
- configuration file:
"Markdown.TableOfContentsModes": "...,..."
States how the table of contents should be rendered. Available values are:
Grouped: eachDocItemkind should be grouped in their own sectionIncludeKind: display the kind of eachDocItemexplicitelyIncludeSummary: the<summary>element of theDocItemshould be displayedIncludeNewLine: their should be a newline between theDocItemname and its<summary>if displayedIncludeSummaryWithNewLine: same asIncludeSummary,IncludeNewLine
This setting can be overriden by specific DocItem types.
- configuration file:
"Markdown.UrlFormat": ""
State the format that will be used to display urls.
Three arguments will be passed to the format:
- the displayed text
- the url
- the tooltip to display when overing the link. If null the url will be used
The default value is [{0}]({1} '{2}').
- configuration file:
"Markdown.Exclude": [ "", ... ]
Contains a collection of regex used by the DefaultDocumentation.Markdown.DocItemGenerators.ExcludeGenerator DefaultDocumentation.Markdown DocItemGenerator,
any DocItem whose id will match one of them will be excluded from the documentation generation.
The default value is null.
- configuration file:
"Markdown.UseFullUrl": bool
States if the url written should be absolute if a LinksBaseUrl is provided.
The default value is false.
- configuration file:
"Markdown.MarkdownSanitizationRegex": ""
DefaultDocumentation is conservative in the handling of the base xml documentation and expect everything to be xml. To protected the generated markdown from unintended interpretation, every markdown special characters are escaped. If you feel this protection overzelous, you can change this behaviour by providing your own regex that will be used to escape every captured groups.
The default value is
[\\\`\*_\{\}\[\]\<\>\(\)\#\+\-\.\!\|]
DefaultDocumentation is only made possible thanks to those awesome projects:
CI, tests and code quality rely on those awesome projects: