Changelog
v0.3.7
v0.3.6
v0.3.5
v0.3.4
Fix a regression introduced by #159. Nested template specializations need to have their name extracted to be documented correctly, but the implementation checked for
node.namehaving the same number of<and>. This breaks operator overloading (#168). Skip asserting the same number of<and>whennode.kind == "function"andoperatoris innode.name. See comments ingraph.py(#169).
v0.3.3
Fix sphinx-bootstrap-theme styling, the introduction of the page hierarchies broke the bootstrap tree for any project that does not use
page. Solution is to only select / apply thetreeviewfunctions if the id anchors are found (#167).
v0.3.2
Exhale requires python 3.7+ (#163).
Development (local and CI) now support doxygen 1.9.x. Additionally, fix parsing of function signatures where doxygen will erroneously create e.g.,
template <typenameC>rather thantemplate <typename C>with a space needed. It does not happen with alltypename, so the hack just replaces"typename"with"typename "and then replaces two spaces with one (#157).Fix a bug where nested classes with specialized templates had the incorrect name being displayed (#156, fix: #159). Nodes with
<>in their name (doxygen presents specialized templates in thenameattribute) get tokenized and the various parameters extracted. As a result of fixing, exhale now has stronger capabilities to understand template parameters. Substantive testing framework overhaul was required, exhale may still not handle all templates correctly.Huge thanks to @florianhumblot for devising the strategy and spending time helping flesh this out.
v0.3.1
Fix regression introduced by #139 where custom
"class"and"struct"customSpecificationsMappingwere being overwritten (#154).
v0.3.0
Do not write source files for empty hierarchies (#134, #147).
Support specialized template functions (#117).
Prevent sphinx from processing files that are incorporated via a
.. include::directive by renaming them to.rst.includesuffix (#136).Add
:project: {app.config.breathe_default_project}to every breathe directive to make the monkeypatch (#27) work (#139, #148).Do not require
containmentFolderto be a “direct” subdirectory ofapp.srcdir, allow any arbitrary subdirectory (#144).Update how css and js are added using a dubious check into the sphinx internals before adding css / js to avoid duplicates (#144).
v0.2.4
Use the correct PyPI name
beautifulsoup4rather thanbs4(#120).Fix deprecated
MutableMappingimport for python 3.10 support (#124).Enable parallel builds (use the right
setupfunction…) (#126).- Add support for
.. doxygenpage::(#114). Huge thanks to: @hidmic for the initial implementiation, and
@2bndy5 and @clalancette for their efforts in improving the doxygen-breathe-exhale-sphinx ecosystem (and consequently, encouraging me to resume work on this project).
- Add support for
Escape
*in template page titles (#118).Fix titles / links for directories with underscores (#127).
v0.2.3
Allow unabridged API to exclude different kinds (#67).
unabridgedOrphanKindsallows users to exclude a specific kind from getting dumped in the unabridged API beneath the hierarchies.By default, the unabridged API will exclude
"file"and"dir", given that the file hierarchy already includes these.
v0.2.2
Make sure spaces in directory / filenames are quoted when sent to Doxygen (#60).
v0.2.1
Fix bug where a
unionchild of anamespacedoes not link correctly in the class hierarchy (#40).Do not force pygments lexer to unconditionally use
cppfor<programlisting>pages. Doxygen encodes a language, which is parsed and converted to the appropriate pygments lexer (#42).Added new configuration variable
lexerMappingfor additional control over pygments language to use.This marks the beginning of mixed-language support, but much more needs to be done for this!
Most overloaded functions should now work. See #45 for more information, including function overloads that do not currently work.
For consistency, the full api listing includes fully qualified function names (previously:
Function foo, now:Function namespace::foo(int)).
Stopped using deprecated sphinx API (#47).
Tree view hierarchies are minified by default (#48).
Added new configuration variable
minifyTreeView.
Parent directory links generated for
directoryandfilepages (#49).Tree view and namespace exclusion bypass configuration variable
listingExcludeadded (#50).Better logic for finding the file node that defined a given compound.
Doxygen produces inconsistencies with the paths, some are Windows paths and some are *nix paths. These should now all be corrected using
os.path.normpath.
v0.2.0
Exhale no longer produces filenames that are longer than the operating system can handle (#35).
Internal links have changed, more heavily discouraged in docs. Ideally the internal link generation scheme will not need to change again, but they might.
Exhale can handle absurdly long file paths by using the
\\?\prefix on Windows. If you run into a situation where this affects you, Sphinx actually cannot handle this. So try and build in a higher directory, e.g.C:\your_project(paths greater than260characters cause this issue).
First mostly functional release for Windows (there were many locations where
os.path.normpathneeded to be used.Bug: bug introduced where a
unionchild of anamespacedoes not link correctly in the class hierarchy.
v0.1.8
Fix bug that prevents Customizing Breathe Output from working. Was checking
isinstance(val_t, six.string_types), but should have been checkingisinstance(val, six.string_types).Fix / improve key guessing for when an invalid key is given in
exhale_args.
v0.1.7
Colorized printing on Read The Docs is disabled, since their build logs online don’t display the color.
Doxygen
stdoutandstderrare directed to/dev/nullon Read The Docs. See #14.
v0.1.6
First release with manual namespace documentation parsing (same as files).
Limitations described in File and Namespace Level Documentation in Exhale.
Namespace documentation example here.
Fixed bad error message when multiple potential file parents are found, which produced an exception preventing the rest of the build. Full description can be found in #12.
v0.1.5
Page level configuration metadata added to all pages (rather than just leaf-like pages).
Fixed
textwrap.dedentinconsistencies when more than one nested type is enumerated.