Skip to content

Releases: ap0llo/mddocs

v0.6.39

26 Feb 10:48
Compare
Choose a tag to compare

New Features

Bug Fixes

Breaking Changes

Details

.NET CLI tool: Allow mddocs to run on newer versions of .NET by default

Enable .NET runtime setting to allow running mddocs on newer versions of .NET if none of the supported runtimes are available.

This means - while currently, the mddocs CLI tool supports .NET 6 and .NET 7, it will use the .NET 8 or newer runtime when no version of .NET 6 or .NET 7 is installed.

MSBuild Integration: Run MdDocs outside MSBuild process

Breaking Change: The Grynwald.MdDocs.MSBuild package now requires the .NET 6 (or later) runtime to be installed, even when running in "Full Version" MSBuild or Visual Studio

In the MSBuild integration, replace the MdDocs MSBuild tasks that run MdDocs inside the MSBuild process with targets that run the MdDocs CLI in a separate process.

This way, MdDocs needs to only run on .NET 6 / .NET 7 and no longer has to consider compatibility with .NET Framework.
Also, this should resolve any dependency conflicts between MdDocs and MSBuild.

The MSBuild integration continues to work in both the "Core" (.NET SDK) and "Desktop" (Visual Studio) versions of MSBuild as long as a compatible .NET runtime is installed.

Remove framework assembly references from Grynwald.MdDocs.MSBuild NuGet package

Remove redundant framework assembly references since the Grynwald.MdDocs.MSBuild package is a build tools package which does not require references to .NET Framework assemblies to be added to consuming projects.

Retain blank lines from <code> blocks in the Markdown output

Update dependency Grynwald.MarkdownGenerator to version 3.0.106 which includes a fix for serialization of Markdown code blocks (all blank lines from code blocks used to be removed from the output).

v0.5.180

24 Dec 11:06
Compare
Choose a tag to compare

New Features

Bug Fixes

Breaking Changes

Details

API Reference: Add multi-assembly support

  • Breaking Change: The mddocs:apireference:assemblyPath setting was renamed to mddocs:apireference:assemblyPaths and its type was changed from a string to an array of strings
  • Breaking Change: The '--assembly' command line parameter of the apireference command has been renamed to '--assemblies'

Add support for rendering API reference documentation for multiple assemblies.
When multiple assemblies are specified, documentation is generated for all types from all assemblies.
The file layout of the output is unchanged and is based on a symbol's name and namespace.

Specifying multiple input assemblies is supported in the MdDocs command line tool but not in the MdDocs MSBuild task which continues to generate documentation for the current project's output assembly.

Command Line Help: Order parameters in the "Usage" section

In a command's "Usage" section, order the parameters.
Positional parameters are ordered by their position, followed by named parameters (required parameters first, then ordered by name) and switch parameters (ordered by name)

Add .NET 6 support

Add support for running MdDocs on .NET 6

Add .NET 7 Support

Add support for running the MdDocs .NET CLI tool on .NET 7 and add test to ensure MdDocs.MSBuild works on the .NET 7 SDK

Remove support for older versions of .NET and Visual Studio

  • Breaking Change: The MdDocs CLI tool now requires at least .NET 6
  • Breaking Change: The MdDocs.MSBuild package is now requires at least the .NET 6 SDK (when running on MSBuild Core) or Visual Studio 2022 (when running on "Desktop MSBuild")

In the MdDocs CLI tool, remove support for .NET Core 3.1 and .NET 5 which have both reached their end-of-life.

For the MdDocs MSBuild package, remove support for running on the .NET Core 3.1 and .NET 5 SDKs (in the case of MSBuild Core) and versions of Visual Studio older than Visual Studio 2022 (in the case of "Desktop MSBuild")

Command Line Help: Disable syntax-highlighting for a command's "Usage" CommandUsageSection

Add Markdown info string "txt" to usage sections to prevent (wrong) syntax highlighting from being applied to it.

Make sorting in output consistent across different frameworks

.NET 5 changed the default sorting behavior for strings causing the output of MdDocs to be different when running on net5.0 vs. running on earlier .NET Core versions or .NET Framework.

Make sorting consistent by explicitly using "Ordinal" comparisons for all sort operations.

API Reference: Fix rendering of default values of value type and decimal parameters

Fixes rendering of value type and decimal parameters in method default values

Thanks @madelson

v0.4.179

29 Aug 17:56
Compare
Choose a tag to compare

Make sorting in output consistent across different frameworks

.NET 5 changed the default sorting behavior for strings causing the output of MdDocs to be different when running on net5.0 vs. running on earlier .NET Core versions or .NET Framework.

Make sorting consistent by explicitly using "Ordinal" comparisons for all sort operations.

  • See-Also: https://docs.microsoft.com/en-us/dotnet/standard/base-types/string-comparison-net-5-plus
  • Commit: 0914192

v0.4.178

04 Sep 22:15
41b712b
Compare
Choose a tag to compare

Fix FileNotFoundException in MSBuild tasks

Fix FileNotFoundException caused by assembly resolution errors in the MSBuild task.

Adds integration tests to verify MdDocs MSBuild tasks can run in the build for both the .NET Core SDK (2.1 and 3.1) and full/.NET Framework MSBuild.

v0.4.163

02 Sep 19:43
Compare
Choose a tag to compare

Known Issues

New Features

Bug Fixes

Breaking Changes

Details

Update dependencies to the latest versions

Update dependencies to their respective latest stable version

Add configuration file support

Breaking Change: The MSBuild integration no longer defines a default value for the output path. To set the output path, specify it either in the configuration file or set the MSBuild property ApiReferenceDocumentationOutputPath respectively CommandLineDocumentationOutputPath.

Add support for specifying settings in a configuration file that can be used by both the MdDocs CLI as well as the MdDocs MSBuild targets.

The configuration system integrates both the (optional) configuration file and commandline parameters (MdDocs CLI) / MSBuild Properties (MdDocs MSBuild targets).

Include notice in output files to indicate files are auto-generated

Add a comment at the beginning of each generated markdown document to indicate the file was auto-generated by a tool.

Add setting to disable the comment to configuration.

API Reference: Include assembly version in generated API Reference documentation

By default, include the assembly version in the generated API reference documentation on pages for types and type members. Additionally, the documentation for type members will now also include the namespace and assembly name of the declaring type.

The inclusion of the assembly version can be disabled in the configuration file or using the '--no-version' command line switch of the 'apireference' command (analogous to the 'commandlinehelp' command).

Command Line Help: Add accepted values for commandline parameters of type bool?

When a commandline parameter property is of type bool?, automatically determine accepted values to be "true" and "false"

Add JSON Schema for the configuration file.

Add a JSON Schema for the configuration file to provide auto-completion support when editing the file in editors that support JSON Schema (e.g. Visual Studio Code).

Add support for templates

  • Breaking Change: The command line parameters 'markdown-preset' and 'no-version' have been removed. Use corresponding settings in configuration file instead.
  • Breaking Change: The MSBuild property 'MdDocsMarkdownPreset' is no longer supported. Use corresponding setting in configuration file instead.

Implement support for having different output templates. By default, the output produced will be the same as previous versions, because the existing implementation is included as the default template.

Because some options (like "Markdown Preset") are specific to the template being used, these settings have been moved to the default template's configuration section in the configuration file.
Additionally, the corresponding commandline parameters (of the .NET CLI tool version of MdDocs) and MSBuild properties (for the MSBuild-integrated version) have been removed because it would lead to confusion if some settings for one of the templates would be exposed as "top-level" parameter.

Command Line Help: Fix incompatibility with CommandLineParser 2.8.0

CommandLineParser 2.8 introduced an additional constructor parameter for VerbAttribute which cause loading command line help to fail. Adjust loading of commands to accommodate for that change.
The fix is backwards compatible and should also work with earlier versions of the CommandLineParser library.

API Reference: Use correct casing for boolean literals in generated C# definitions

In generated definitions that contain bool literals, emit the literals as "true" and "false" instead of "True" and "False".

Command Line Help: Fix loading of commands and parameters when the option class is a nested type

Load types recursively to discover all types annotated with [Verb] and/or [Option] attributes instead of just loading top-level types.

v0.3.84

20 Jan 18:23
Compare
Choose a tag to compare

Changes:

  • f73a053 fix(commandlinehelp): Ignore hidden commands [ #20 ]
  • 4da63a5 feat(commandlinehelp): Improve handling of boolean parameters [ #7 ]
  • cf1350e feat: Update MarkdownGenerator library to version 2.4.30
  • 1adaa66 feat: Add support for params method parameters
  • 77ca032 fix(apireference): Hide non-public attributes [ #16 ]
  • 9514504 build: Enable nullable reference types
  • 3ec4580 build: Retarget projects to .NET Core 3.1
  • 7444151 build: Use .NET Core 3.1 SDK
  • 82fe64d docs: Cleanup README by moving "Installation" and "Usage" to separate documents [Skip CI]
  • 965c709 feat(apireference): Add support for nested types [ #6 ]
  • 96e8ba8 fix(apireference): Improve handling of flags enum ins CSharpDefinitionFormatter
  • 642a5e6 feat(apireference): Show parameter attributes in method definition
  • 80b9b6a feat(apireference): Show default parameters in method definition
  • a170450 feat(apireference): Add support for 'in' parameters
  • 8246b41 feat(apireference): Add support for ref and out parameters [ #5 ]
  • fcc06cb fix: Always use UTF-8 encoding for saving documents
  • 6512381 fix: Fix execution of MSBuild-integrated docs generation

v0.2.47

20 Jan 18:12
Compare
Choose a tag to compare

Changes:

  • 043bb43 fix(commandlinehelp): Ignore hidden commands [ #20 ]

v0.2.46

07 Oct 18:44
Compare
Choose a tag to compare

Package available on NuGet.org

Changes:

  • 8ab81c3 fix: Always use UTF-8 encoding for saving documents

v0.2.45

06 Oct 19:50
Compare
Choose a tag to compare

Package available on NuGet.org

Changes:

  • ed9303a Fix execution of MSBuild-integrated docs generation

v0.2.44

03 Oct 16:53
Compare
Choose a tag to compare

Package available on NuGet.org

Changes:

  • 717af08 fix(commandlinehelp): Fix display of default value for enum parameters
  • 816b902 feat: Add "preset" option to adjust output files to target renderer
  • e4f9b9d feat(apireference): Support external links in element
  • f386601 feat(apireference): Allow linking to external resources by adding a "href" attribute to elements
  • e9dc763 feat(apireference): Add support for specifying text inside the tag
  • a5b70df feat: Adjust documentation output directory layout
  • 26e0edb fix(apireference): Fix incorrect handling of whitespace in XML documentation files
  • b76f2f4 feat(commandlinehelp): Add option to omit version from generated documentation