[HN Gopher] DoxyPress - Modern Doxygen
___________________________________________________________________
DoxyPress - Modern Doxygen
Author : jcbhmr
Score : 26 points
Date : 2025-01-10 05:55 UTC (3 days ago)
(HTM) web link (www.copperspice.com)
(TXT) w3m dump (www.copperspice.com)
| wk_end wrote:
| Also of note:
|
| > What is CopperSpice
|
| > CopperSpice is a C++ library derived from the Qt framework. Our
| motivation for developing CopperSpice was to change the core
| design of the libraries leveraging modern C++ functionality.
|
| > The redesign allowed us to completely remove the Meta-Object
| Compiler (moc) system. Moc is a code generator and did not
| support many aspects of modern C++ including templates, complex
| data types, static type checking, and relied heavily on string
| comparisons. Removing moc improves run time performance, reduces
| the complexity of the build process, and allows more issues to be
| detected at compile time.
|
| This sounds pretty great. Does anyone have experience using it?
| cies wrote:
| This was also more interesting to me than the DoxyPress
| announcement.
| zxspectrum1982 wrote:
| You can use Verdigris to achieve the same with Qt
| https://github.com/woboq/verdigris
| eXpl0it3r wrote:
| Any reason to not upstream the refactorings?
|
| The default theme doesn't look that great on mobile. At least one
| can change the side menu size.
|
| The challenges I'm facing with doxygen is to create a seamless
| integration with a MkDocs site, but not just for a single
| version. The current workaround of manually copying the generated
| MkDocs header and footer isn't very automated...
| lidavidm wrote:
| I'm also curious why it's a fork (I'm sure there's a good
| reason?)
|
| Coincidentally I was looking into C++ documentation generators
| again.
|
| In terms of integration, what I've settled on for apache/arrow-
| adbc is using Sphinx as the toplevel site generator, then
| writing a script that generates fake Intersphinx indices for a
| Doxygen site. That way you can link to Doxygen items from
| within Sphinx without having to hardcode URLs, instead by
| referencing a class name or similar, and Sphinx will warn if
| you reference something nonexistent, without having to use
| something like breathe that tries to render the Doxygen output
| within Sphinx. (Same approach with Javadoc -> Sphinx, too.)
| DrBazza wrote:
| It's easy enough to just use `mkdocs` with `mkdoxy` and the
| material theme, and you're done. In my repos it's simple
| enough to just run `just docs` at the root and that's it.
| Docs built for the given branch/tag/sha, and if various
| variables are set, docs deployed as well.
|
| C++ documentation is another defect in the language (along
| with a build system), that all successor/modern/post C++
| languages happily accept _is_ part of the 'language
| ecosystem'.
| eXpl0it3r wrote:
| Maybe I have to give mkdoxy another try. When you say "just
| docs", what do you mean exactly?
|
| The thing is, if I have say 20 different versions I want to
| generate docs for, I don't exactly want to run this every
| time I run `mkdocs build`, but only if I say update the
| navigation.
|
| Edit: Ah now I remember, the generated "native" Markdown
| structure also feels worse compared to the doxygen
| navigation.
| DrBazza wrote:
| I use `just` - https://github.com/casey/just and have a
| `docs` task. That runs a bash script that does all the
| heavy lifting (python install, and so on).
|
| Though given all the chatter on here in the last couple
| of weeks, I'd migrate some of the python work to `uvx`
| and that would make things simpler again.
|
| I'm don't know if doxygen easily supports 'incremental'
| builds for your use case. I've never really found
| completely re-building docs for my modest repos a
| bottleneck.
| eXpl0it3r wrote:
| Oh, I haven't heard of `just` before. Looks interesting,
| thank you!
|
| I might give mkdoxy another try, but I much prefer a
| solution that seamlessly integrates the doxygen docs like
| I'd done manually now [1]. Trying my luck here, but you
| wouldn't know of any extension that more easily
| integrates plain HTML pages into an mkdocs
| navigation/page?
|
| [1] https://www.sfml-dev.org/documentation/3.0.0/
| openrisk wrote:
| > Supports C, C++, C#, Fortran, Java, (Corba and Microsoft) IDL,
| Objective-C, Python, PHP, TCL
|
| Wondering how Python support stacks up against Sphinx. Would be
| nice to have a single unified tool.
___________________________________________________________________
(page generated 2025-01-13 23:03 UTC)