mosra / m.css

A no-nonsense, no-JavaScript CSS framework, site and documentation theme for content-oriented websites
https://mcss.mosra.cz
MIT License
407 stars 91 forks source link

Bring Pyphen hyphenation to the Doxygen theme as well #49

Open mosra opened 6 years ago

mosra commented 6 years ago

Opening an issue to avoid forgetting about this, as I don't have time to look into it right now.

What needs to be done:

Cc: @jbakosi

mosra commented 6 years ago

Some further thoughts about this:

Currently I am converting the Doxygen XML-encoded detailed descriptions straight to HTML code, which is kinda fine for the m.css HTML5 theme, but quite awful for anybody that would want to heavily modify the theme (or do any processing of the parsed stuff). This also makes it impossible to reuse the work I did on various Pelican plugins (plots, graphs, math, ...) -- every time I basically need to write the frontend code twice, test it twice etc.

One option could be to convert the XML to reST sources and then reuse existing docutils parsers and writers that I already have for Pelican. This is almost what Breathe does -- it converts the XML to a source that can be read by Sphinx. To me that seems like a lot of unnecessary extra work, hitting many of the limitations of reST (such as inability to nest inline elements, add classes to links, ...) and adding another layer where syntax errors and assertions might occur (there's enough of that in the XML parsing already).

Another option (preferred) would be to create the docutils node tree directly and then just using my existing HTML5 writer I did for Pelican to produce the output. Maybe this could be even shared with the Breathe/Sphinx project in the end. (Is Sphinx able to consume docutils node tree directly?)

Besides hyphenation, this would also allow the following features:

jbakosi commented 6 years ago

Without understanding all the above, it sounds like you know what you are doing and that this is going be a lot more and better than just adding hyphenation to the doxygen theme. ;-)