Standardese Versions Save

A (work-in-progress) nextgen Doxygen for C++

0.5.2

3 years ago

Added:

  • Adding the c++2a and c++20 compilation flags

Changed:

  • Update of the cppast submodule (cppast commit: 032d48d)

Fixed:

  • Distinction between c++1z and c++17 compilation flags

0.5.1

3 years ago

Fixed:

  • Added missing libraries in docker image.
  • A compile error on some clang versions on Windows.

0.5.0

3 years ago

Added:

  • --comment.free_file_comments flag 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 \file command. (The default is still the old behaviour. Such comments are ignored with a warning.)
  • Added command line option --group-uncommented to add uncommented members to the group of the preceding member, e.g., here both operators are put in the same group Arithmetic without 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_undocumented to completely hide undocumented members from class summary without having to explicitly put \exclude everywhere.
  • Added an example project using MathJax on GitHub Pages.
  • Added option --comment.command_pattern to change or extend the commands recognized by Standardese. Use name=pattern to replace the pattern for name and name|=pattern to extend the default pattern. E.g.,
    --comment.command_pattern 'returns|=RETURNS:'
    
    lets the parser recognize the string RETURNS: at the beginning and the string \returns as introducing a Return values: section. If the command takes parameters, they have to be caught in capturing groups, e.g.,
    --command.command_pattern 'group=//== ([^\n]*)() ==//'
    
    allows us to write
    //== Group Heading ==//
    
    to introduce a member group instead of \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 - text specially anymore. This created a substantial amount of complexity during parsing and also only did not have full Markdown support in the key section. Instead, one should just use a proper Markdown list instead.

  • Moved section_type from standardese::markup to the standardese::comment namespace where command_type and inline_type are 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. \verbatim is still supported but not treated as a command internally anymore (which is never really was anyway.)

  • Removed command_type::invalid, inline_type::invalid, section_type::invalid since 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 on standardese::comment::config since config is now immutable.

Fixed:

  • Added a missing mutex lock in the comment parser.

  • make install now 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.

0.4.1

3 years ago

Changed:

  • releases on GitHub are now created semi-automatically with rever

Fixed:

  • catch header URL when downloading catch during test build
  • docker build; the docker build had stopped working a few months ago, since Ubuntu 19.04 had reached its end of life.
  • assertion error with unnamed namespaces

v0.4.0

4 years ago

This is the first (hopefully) stable release in a while. Lots of things have changed since large parts have been rewritten.

To build from source, check the README. Otherwise, you might want to try the docker images as outlined in the README or use standardese from conda-forge.

v0.4.0-rc2

4 years ago

Changes since 0.4.0-rc1

  • Fix include guard processing
  • Back to upstream cppast since things have been fixed there
  • Automatic builds on Docker Hub

v0.4.0-rc1

4 years ago

Changes since 0.4.0-rc0

  • fixed version number in CMakeLists.txt
  • fixed cppast reference by pulling project from a private fork

v0.4.0-rc0

4 years ago

After a long time with no release, we try to get started again here.

Changes since 0.3-4:

Though this is called a release candidate it might not be very stable yet. The plan is to get 0.4.0 out quickly and then have a number of 0.4.x followups quickly to address obvious issues. If you need stability, you might want to rely on 0.3-4 for the time being, but we're looking forward to your feedback here :)

v0.3-4

7 years ago

Documentation

  • Hide member group output section by prefixing the group name with -
  • Hide name lookup character in entity link

Library

  • Now links to external entities in advanced code block
  • Only links the main part of type name (i.e. in const T*const &, only link will be the T)
  • Even more bugfixes

Tool

  • New option output.require_comment_for_full_synopsis, controls whether full synopsis will be shown for classes/enums without documentation (disabled by default)

v0.3-3

7 years ago

Documentation

  • Optional arguments for exclude to specify what to exclude (return type, target)
  • Advanced code block does not generate links to parameters now

Library

  • Bugfixes in various functions

Build system

  • Now correctly installs cmark subdirectory