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.name
having the same number of<
and>
. This breaks operator overloading (#168). Skip asserting the same number of<
and>
whennode.kind == "function"
andoperator
is 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 thetreeview
functions 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 thename
attribute) 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"
customSpecificationsMapping
were 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.include
suffix (#136).Add
:project: {app.config.breathe_default_project}
to every breathe directive to make the monkeypatch (#27) work (#139, #148).Do not require
containmentFolder
to 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
beautifulsoup4
rather thanbs4
(#120).Fix deprecated
MutableMapping
import for python 3.10 support (#124).Enable parallel builds (use the right
setup
function…) (#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).
unabridgedOrphanKinds
allows 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
union
child of anamespace
does not link correctly in the class hierarchy (#40).Do not force pygments lexer to unconditionally use
cpp
for<programlisting>
pages. Doxygen encodes a language, which is parsed and converted to the appropriate pygments lexer (#42).Added new configuration variable
lexerMapping
for 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
directory
andfile
pages (#49).Tree view and namespace exclusion bypass configuration variable
listingExclude
added (#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 than260
characters cause this issue).
First mostly functional release for Windows (there were many locations where
os.path.normpath
needed to be used.Bug: bug introduced where a
union
child of anamespace
does 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
stdout
andstderr
are directed to/dev/null
on 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.dedent
inconsistencies when more than one nested type is enumerated.