Fix Version/s: None
Investigate using Doxylink to link to an HTML Doxygen build of the C++ API reference compiled alongside the main Sphinx site.
This work would build upon
DM-22698, which gave Documenteer the ability to run a Sphinx build. In this scenario, Documenteer would build the Sphinx site, and then embed it as a sub-site (subdirectory) of the Sphinx-generated documentation. Doxylink would let us link between from reStructuredText to Doxygen using a custom role. For example:
Of course, links from Doxygen to the Sphinx site would not be straightforward (in princple, they could be added manually, though that would be prone to fail if URLs change).
It looks like all the methods in your list either:
- have the noexcept keyword,
- are operator(), or
- use macros (especially PTR, which we should have gotten rid of by now).
I'm not sure yet about the converse.
I noticed that some of the entries are listed by filename, others with a namespace, still others without a namespace. What's the significance of that?
Are lsst::afw::detection::IdSpanCompar or lsst::meas::base::BaseTransform in your documentation? Their operator() don't seem to have raised any errors.
- The stack-docs build command now builds an HTML site, along with a tag file. The HTML site gets copied into the /cpp-api/ directory of the Sphinx build for pipelines.lsst.io.
- Configure the sphinxcontrib.doxylink extension to add an lsstcc role to enable links from reStructuredText content into the Doxygen-build C++ API reference.
- Added a tool, stack-docs listcc to help authors find APIs that can be linked with the lsstcc role.
- Added documentation about C++ linking and updated the documentation about the pipelines.lsst.io build.
Does the lsstcc role replace the previously documented cpp role?
It does; doxylink doesn't use the cpp domain's roles because there aren't any cpp directives to link to. Instead, it creates plain relative hyperlinks to the Doxygen subsite.
We're going to go ahead and merge this into the documenteer, which will eventually be released in documenteer 0.6.
The prototype is working well, though Doxylink is failing to parse about 400 API signatures from the Doxygen tag file. I've listed these APIs at https://gist.github.com/jonathansick/8683a0b3a5f932b1063e2c71bbaa9de5
Krzysztof Findeisen, if you could take a look at the APIs in the above link, do you see some common patterns? Are they using C++ dev, but if I could have your assessment I could get the Doxylink developers to adjust their parsers to work with our C++ API signatures. Thanks!