0.5.0
Added:
--comment.free_file_commentsflag so that comments that cannot be associated to any entity are automatically considered to be referring to the entire file even if there's no\filecommand. (The default is still the old behaviour. Such comments are ignored with a warning.)- Added command line option
--group-uncommentedto add uncommented members to the group of the preceding member, e.g., here both operators are put in the same groupArithmeticwithout having to explicitly mention the group for the second line.struct S { /// \group Arithmetic S& operator+=(const S&); S& operator-=(const S&); } - new flag
--input.hide_undocumentedto completely hide undocumented members from class summary without having to explicitly put\excludeeverywhere. - Added an example project using MathJax on GitHub Pages.
- Added option
--comment.command_patternto change or extend the commands recognized by Standardese. Usename=patternto replace the pattern fornameandname|=patternto extend the default pattern. E.g.,
lets the parser recognize the string--comment.command_pattern 'returns|=RETURNS:'RETURNS:at the beginning and the string\returnsas introducing aReturn values:section. If the command takes parameters, they have to be caught in capturing groups, e.g.,
allows us to write--command.command_pattern 'group=//== ([^\n]*)() ==//'
to introduce a member group instead of//== Group Heading ==//\group name Group Heading. Note that a group has two parameters. The second parameter is the optional heading which we ignore here by letting it capture the empty string.
Changed:
-
Require a C++17 compiler to build standardese
-
Sections do not treat entries of the form
\section key - textspecially anymore. This created a substantial amount of complexity during parsing and also only did not have full Markdown support in thekeysection. Instead, one should just use a proper Markdown list instead. -
Moved
section_typefromstandardese::markupto thestandardese::commentnamespace wherecommand_typeandinline_typeare already. -
renamed CHANGELOG to CHANGELOG.rst so it renders better on GitHub
Removed:
-
Removed command line parameters related to templates, since templates are not implemented.
-
Removed command line parameter
output.section_name_since it was not implemented. -
Removed
command_type::verbatim.\verbatimis still supported but not treated as acommandinternally anymore (which is never really was anyway.) -
Removed
command_type::invalid,inline_type::invalid,section_type::invalidsince these are never created anymore. -
Removed
standardese::markup::doc_section::type()since it is not used anymore. -
Removed helper functions
standardese::comment::is_section,standardese::comment::make_section,standardese::comment::is_command,standardese::comment::make_command,standardese::comment::is_inline,standardese::comment::make_inline. These functions are not needed anymore since the related enums are now separate and do not form part of a increasing sequence anymore. (There was very little code where this was actually helpful.) -
Various
set_commands onstandardese::comment::configsince config is now immutable.
Fixed:
-
Added a missing mutex lock in the comment parser.
-
make installnow installs the standardese binary -
Do not mention templating in README or command line help since it is not implemented.
-
Check all return values from calls into cmark (by always going through an exception-throwing wrapper.)
-
Simplified CommonMark extensions by not using any temporary nodes.
-
Build as shared library and link against a shared boost library unless told not to.
-
Catch headers for testing are now taken from a submodule. Before we had problems frequently, e.g., in CI, when downloading these headers failed.