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.
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.
<DefaultDocumentationConfigurationFile>...</DefaultDocumentationConfigurationFile>
, default value is DefaultDocumentation.json
in the project folder-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.
<DefaultDocumentationLogLevel>...</DefaultDocumentationLogLevel>
-h ...
--LogLevel ...
"LogLevel": "..."
The minimum level of the log you wish to be displayed to help resolve errors, Info
by default. Available values are:
Trace
: Trace log levelDebug
: Debug log levelInfo
: Info log levelWarn
: Warn log levelError
: Error log levelFatal
: Fatal log levelOff
: no log-a ...
--AssemblyFilePath ...
"AssemblyFilePath": "..."
The path to the assembly file you wish to create documentation for.
-d ...
--DocumentationFilePath ...
"DocumentationFilePath": "..."
The path to the xml documentation file, if not specified DefaultDocumentation will assume it is in the same folder as the assembly.
-p ...
--ProjectDirectoryPath ...
"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.
<DefaultDocumentationFolder>...</DefaultDocumentationFolder>
-o ...
--OutputDirectoryPath ...
"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.
<DefaultDocumentationAssemblyPageName>...</DefaultDocumentationAssemblyPageName>
-n ...
--AssemblyPageName ...
"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.
<DefaultDocumentationGeneratedAccessModifiers>...,...</DefaultDocumentationGeneratedAccessModifiers>
-s ...,...
--GeneratedAccessModifiers ...,...
"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.<DefaultDocumentationIncludeUndocumentedItems>...</DefaultDocumentationIncludeUndocumentedItems>
-u
--IncludeUndocumentedItems
"IncludeUndocumentedItems": "..."
If true
items with no documentation will also be included in the generated documentation. false
by default.
<DefaultDocumentationGeneratedPages>...,...</DefaultDocumentationGeneratedPages>
-g ...,...
--GeneratedPages ...,...
"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 to Classes, Delegates, Enums, Structs, Interfaces
Constructors
: 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 to Constructors, Events, Fields, Methods, Operators, Properties, ExplicitInterfaceImplementations
< sOutputFile>...</DefaultDocumentationLinksOutputFile>
-l ...
--LinksOutputFilePath ...
"LinksOutputFilePath": "..."
Where to generate the links file, see Extern links for more information, empty by default and does not generate the links file.
<DefaultDocumentationLinksBaseUrl>...</DefaultDocumentationLinksBaseUrl>
-b ...
--LinksBaseUrl ...
"LinksBaseUrl": "..."
The base url to use for the links file, see Extern links for more information.
<DefaultDocumentationExternLinksFiles>...|...</DefaultDocumentationExternLinksFiles>
-e ...|...
--ExternLinksFilePaths ...|...
"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
.
<DefaultDocumentationPlugins>...|...</DefaultDocumentationPlugins>
--Plugins ...|...
"Plugins": [ "...", "..." ]
The list of plugin files to load to create the documentation. See Plugins for more information.
<DefaultDocumentationDocItemGenerators>...|...</DefaultDocumentationDocItemGenerators>
--DocItemGenerators ...|...
"DocItemGenerators": [ "...", "..." ]
Name
or Type Assembly
of the IDocItemGenerator
implementations to use to generate the DocItem
of the documentation.
The default implementations provided are:
Exclude
or DefaultDocumentation.Markdown.DocItemGenerators.ExcludeGenerator DefaultDocumentation.Markdown
remove DocItem
from the documentation generation based on MarkdownConfiguration.Exclude.Overloads
or DefaultDocumentation.Markdown.DocItemGenerators.OverloadsGenerator DefaultDocumentation.Markdown
adds pages to group constructor and method overloads the same way microsoft documentation do it.
The default value is Exclude|Overloads
.<DefaultDocumentationUrlFactories>...|...</DefaultDocumentationUrlFactories>
--UrlFactories ...|...
"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:
DocItem
or DefaultDocumentation.Markdown.UrlFactories.DocItemFactory DefaultDocumentation.Markdown
returns an url for known DocItem
.DotnetApi
or DefaultDocumentation.Markdown.UrlFactories.DotnetApiFactory DefaultDocumentation.Markdown
returns an url formated from the id to its possible dotnet api documentation.
The default value is DocItem|DotnetApi
.<DefaultDocumentationElements>...|...</DefaultDocumentationElements>
--Elements ...|...
"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.Markdown
handle the rendering of <c>
elementDefaultDocumentation.Markdown.Elements.CodeElement DefaultDocumentation.Markdown
handle the rendering of <code>
element. Attributes handled are:
language
attribute used to declare the languge of the codesource
attribute used to reference code from a specific fileregion
attribute used to reference a specific #region
from the sourceDefaultDocumentation.Markdown.Elements.ListElement DefaultDocumentation.Markdown
handle the rendering of <list>
elementDefaultDocumentation.Markdown.Elements.NoteElement DefaultDocumentation.Markdown
handle the rendering of <note>
elementDefaultDocumentation.Markdown.Elements.ParaElement DefaultDocumentation.Markdown
handle the rendering of <para>
element. Attributes handled are:
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementDefaultDocumentation.Markdown.Elements.ParamRefElement DefaultDocumentation.Markdown
handle the rendering of <paramref>
elementDefaultDocumentation.Markdown.Elements.SeeElement DefaultDocumentation.Markdown
handle the rendering of <see>
. Attributes handled are:
cref
attributehref
attributelangword
attributeDefaultDocumentation.Markdown.Elements.TypeParamRefElement DefaultDocumentation.Markdown
handle the rendering of <typeparamref>
elementThose 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:
AssemblyDocItem
NamespaceDocItem
ClassDocItem
StructDocItem
InterfaceDocItem
EnumDocItem
DelegateDocItem
ConstructorDocItem
EnumFieldDocItem
EventDocItem
ExplicitInterfaceImplementationDocItem
FieldDocItem
MethodDocItem
OperatorDocItem
PropertyDocItem
TypeParameterDocItem
ParameterDocItem
<DefaultDocumentationFileNameFactory>...</DefaultDocumentationFileNameFactory>
--FileNameFactory ...
"FileNameFactory": "..."
Name
or Type Assembly
of the IFileNameFactory
implementation to use to generate the name of pages. Available implementations are:
FullName
or DefaultDocumentation.Markdown.FileNameFactories.FullNameFactory DefaultDocumentation.Markdown
uses the fully qualified name of each memberName
or DefaultDocumentation.Markdown.FileNameFactories.NameFactory DefaultDocumentation.Markdown
removes the namespace (collisions can happen if there is multiple types with the same name in different namespaces)Md5
or DefaultDocumentation.Markdown.FileNameFactories.Md5Factory DefaultDocumentation.Markdown
uses a Md5 of the full name of each member to produce shorter name, collisions can happenNameAndMd5Mix
or DefaultDocumentation.Markdown.FileNameFactories.NameAndMd5MixFactory DefaultDocumentation.Markdown
removes the namespace and use a Md5 for parametersDirectoryName
or DefaultDocumentation.Markdown.FileNameFactories.DirectoryNameFactory DefaultDocumentation.Markdown
use a directory hierarchy
The default value is FullName
. All those implementations WILL delete any .md
file EXCEPT a file named readme.md
.<DefaultDocumentationSections>...|...</DefaultDocumentationSections>
--Sections ...|...
"Sections": [ "...", "..." ]
Name
or Type Assembly
of the ISection
implementations to use in order for the generation of the documentation. The available implentations are:
Header
or DefaultDocumentation.Markdown.Sections.HeaderSection DefaultDocumentation.Markdown
to write links to parents and top pagesFooter
or DefaultDocumentation.Markdown.Sections.FooterSection DefaultDocumentation.Markdown
to write a reference to this projectTypeParameters
or DefaultDocumentation.Markdown.Sections.TypeParametersSection DefaultDocumentation.Markdown
to write the TypeParameterDocItem
children links or inlined documentationParameters
or DefaultDocumentation.Markdown.Sections.ParametersSection DefaultDocumentation.Markdown
to write the ParameterDocItem
children links or inlined documentationEnumFields
or DefaultDocumentation.Markdown.Sections.EnumFieldsSection DefaultDocumentation.Markdown
to write the EnumFieldDocItem
children links or inlined documentationConstructors
or DefaultDocumentation.Markdown.Sections.ConstructorsSection DefaultDocumentation.Markdown
to write the ConstructorDocItem
children links or inlined documentationFields
or DefaultDocumentation.Markdown.Sections.FieldsSection DefaultDocumentation.Markdown
to write the FieldDocItem
children links or inlined documentationProperties
or DefaultDocumentation.Markdown.Sections.PropertiesSection DefaultDocumentation.Markdown
to write the PropertyDocItem
children links or inlined documentationMethods
or DefaultDocumentation.Markdown.Sections.MethodsSection DefaultDocumentation.Markdown
to write the MethodDocItem
children links or inlined documentationEvents
or DefaultDocumentation.Markdown.Sections.EventsSection DefaultDocumentation.Markdown
to write the EventDocItem
children links or inlined documentationOperators
or DefaultDocumentation.Markdown.Sections.OperatorsSection DefaultDocumentation.Markdown
to write the OperatorDocItem
children links or inlined documentationExplicitInterfaceImplementations
or DefaultDocumentation.Markdown.Sections.ExplicitInterfaceImplementationsSection DefaultDocumentation.Markdown
to write the ExplicitInterfaceImplementationDocItem
children links or inlined documentationClasses
or DefaultDocumentation.Markdown.Sections.ClassesSection DefaultDocumentation.Markdown
to write the ClassDocItem
children links or inlined documentationStructs
or DefaultDocumentation.Markdown.Sections.StructsSection DefaultDocumentation.Markdown
to write the StructDocItem
children links or inlined documentationInterfaces
or DefaultDocumentation.Markdown.Sections.InterfacesSection DefaultDocumentation.Markdown
to write the InterfaceDocItem
children links or inlined documentationEnums
or DefaultDocumentation.Markdown.Sections.EnumsSection DefaultDocumentation.Markdown
to write the EnumDocItem
children links or inlined documentationDelegates
or DefaultDocumentation.Markdown.Sections.DelegatesSection DefaultDocumentation.Markdown
to write the DelegateDocItem
children links or inlined documentationNamespaces
or DefaultDocumentation.Markdown.Sections.NamespacesSection DefaultDocumentation.Markdown
to write the NamespaceDocItem
children links or inlined documentationDefinition
or DefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.Markdown
to write the code definitionDerived
or DefaultDocumentation.Markdown.Sections.DerivedSection DefaultDocumentation.Markdown
to write links to derived typesEventType
or DefaultDocumentation.Markdown.Sections.EventTypeSection DefaultDocumentation.Markdown
to write the event type for EventDocItem
FieldValue
or DefaultDocumentation.Markdown.Sections.FieldValueSection DefaultDocumentation.Markdown
to write the field value for FieldDocItem
Implement
or DefaultDocumentation.Markdown.Sections.ImplementSection DefaultDocumentation.Markdown
to write links to implementationsInheritance
or DefaultDocumentation.Markdown.Sections.InheritanceSection DefaultDocumentation.Markdown
to write links to the inherited typesTableOfContents
or DefaultDocumentation.Markdown.Sections.TableOfContentsSection DefaultDocumentation.Markdown
to write a table of content links to all children, see TableOfContentsModes settingTitle
or DefaultDocumentation.Markdown.Sections.TitleSection DefaultDocumentation.Markdown
to write the title and link target of a DocItem
Definition
or DefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.Markdown
to write the code definitionDefault
or DefaultDocumentation.Markdown.Sections.DefaultSection DefaultDocumentation.Markdown
is a grouping of those ISection
implementations in this order:
DefaultDocumentation.Markdown.Sections.TitleSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.SummarySection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.DefinitionSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.TypeParametersSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ParametersSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.EnumFieldsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.InheritanceSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.DerivedSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ImplementSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.EventTypeSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.FieldValueSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ValueSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ReturnsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ExceptionSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ExampleSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.RemarksSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.SeeAlsoSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.NamespacesSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ClassesSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.StructsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.InterfacesSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.EnumsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.DelegatesSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ConstructorsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.FieldsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.PropertiesSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.MethodsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.EventsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.OperatorsSection DefaultDocumentation.Markdown
DefaultDocumentation.Markdown.Sections.ExplicitInterfaceImplementationsSection DefaultDocumentation.Markdown
example
or DefaultDocumentation.Markdown.Sections.ExampleSection DefaultDocumentation.Markdown
to write the <example>
element
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementexception
or DefaultDocumentation.Markdown.Sections.ExceptionSection DefaultDocumentation.Markdown
to write the <exception>
elements
cref
attributeignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementremarks
or DefaultDocumentation.Markdown.Sections.RemarksSection DefaultDocumentation.Markdown
to write the <remarks>
element
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementreturns
or DefaultDocumentation.Markdown.Sections.ReturnsSection DefaultDocumentation.Markdown
to write the <returns>
element
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementseealso
or DefaultDocumentation.Markdown.Sections.SeeAlsoSection DefaultDocumentation.Markdown
to write the <seealso>
elements
cref
attributehref
attributesummary
or DefaultDocumentation.Markdown.Sections.SummarySection DefaultDocumentation.Markdown
to write the <summary>
element
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementvalue
or DefaultDocumentation.Markdown.Sections.ValueSection DefaultDocumentation.Markdown
to write the <value>
element
ignorelinebreak
attribute used to change the default setting of IgnoreLineBreak for the content of this elementThe 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.
"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 typeDefault value is Namespace
.
This setting can be overriden by specific DocItem
types.
"Markdown.RemoveFileExtensionFromUrl": "..."
true
to remove the extension .md
from links in the generated documentation, some wikies don't like those. false
by default.
"Markdown.InvalidCharReplacement": "..."
Provides the value to use to replace invalid char for file names, _
by default.
"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.
"Markdown.TableOfContentsModes": "...,..."
States how the table of contents should be rendered. Available values are:
Grouped
: each DocItem
kind should be grouped in their own sectionIncludeKind
: display the kind of each DocItem
explicitelyIncludeSummary
: the <summary>
element of the DocItem
should be displayedIncludeNewLine
: their should be a newline between the DocItem
name and its <summary>
if displayedIncludeSummaryWithNewLine
: same as IncludeSummary,IncludeNewLine
This setting can be overriden by specific DocItem
types.
"Markdown.UrlFormat": ""
State the format that will be used to display urls.
Three arguments will be passed to the format:
The default value is [{0}]({1} '{2}')
.
"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
.
"Markdown.UseFullUrl": bool
States if the url written should be absolute if a LinksBaseUrl is provided.
The default value is false
.
DefaultDocumentation is only made possible thanks to those awesome projects:
CI, tests and code quality rely on those awesome projects: