3.0.0
Presenting the biggest doc2dash release ever!
Most importantly, as you can see below, there's stand-alone binaries for Linux, macOS, and Windows for amd64 platforms! No more Python (if you don't want to)! I found this so exciting, I wrote a short Today-I-Learned post about it. But even if you keep using it via Python, the dependency tree got a lot slimmer since it doesn't depend on Sphinx anymore.
Feature-wise this release introduces first-class support for MkDocs and improves its pydoctor support while at it.
There's a lot more that happened, including prettier (and more informative) progress bars and smarter handling of imperfect indixes.
All-in-all, it comes close to a complete rewrite. I hope you enjoy it, and if you haven't played with Dash.app or Zeal until now – now is the perfect moment!
P.S. Sorry, I also broke your custom plugins. But there's docs on writing your own now!
Full Changelog
Removed
- Since pydoctor added support for intersphinx in version 21.2.0, the dedicated HTML-parsing parser has been removed. If you need to parse legacy pydoctor docs, please use doc2dash 2.4.1.
Added
- Stand-alone binaries! If your platform is supported, you can now download binaries from the release page without dealing with Python at all – courtesy of PyOxidizer.
- intersphinx: documentation based on MkDocs with mkdocstrings metadata is now supported.
- intersphinx: if no explicit name is passed, the docset name is derived von the documentation's metadata (and not the directory name, which is more often than not just
html
). - We use rich for output and progress bars now. This allows us more granular progress indication.
- Documentation on writing your own parser plugins.
Changed
- Tons of refactorings that probably broke your custom parsers. Sorry about that and let us know, if we can help you fixing them.
- intersphinx: We now parse
objects.inv
files on our own. Sphinx is not a dependency anymore. - intersphinx: Files that are indexed by intersphinx, but don't exist aren't added to the docset anymore. Common example is
py-modindex.html
. #113 #115 - We now check if the index page passed via
--index-page
/-I
exists and fail if it doesn't.