breathe-doc / breathe

ReStructuredText and Sphinx bridge to Doxygen
https://breathe-doc.org
Other
751 stars 198 forks source link

How to use Breathe's parser as a standalone component #488

Open leonardopsantos opened 4 years ago

leonardopsantos commented 4 years ago

Hi there!

First, a bit of context:

I have several embedded C projects documented with Doxygen. My company's rules demand that we generate PDF documentation (yes, I know). We're currently using a custom LaTeX template that works well.

We recently adopted Madcap Flare as our documentation tool, so now ppl want to integrate Doxygen and Flare. Flare is capable of importing HTML, but Doxygen's HTML uses its own stylesheets, etc. So now we're looking into directly creating (x)HTML Flare files from Doxygen's XML output. This is where Breathe comes in.

My first go at this is to use Breathe's parser with Moustache to create the (x)HTML files. So I need some help in understanding how to call Breathe's parser from a custom Python script.

Should I start with DoxygenParserFactory?

Thanks!

michaeljones commented 4 years ago

Hi, I'm quite out of the loop having stepped away from this project but one thing that I feel strongly about is that people shouldn't rely on the internals of breathe. The project is not well resourced and we can't afford to be maintaining a stable API.

By all means get some inspiration from the Breath approach if you'd like or copy the code out entirely but I wouldn't recommend being dependent on the internals it risks putting unnecessary strain on the maintainers.

I'm happy to be corrected if I'm wrong but I think the sole use case should be as a Sphinx extension.

Thanks for the question though.

leonardopsantos commented 4 years ago

@michaeljones I completely understand your position and I understand that I'm doing this at my own risk. Any future Breathe changes might break my code and I'm OK with that.

The question still stands: I don't want to re-invent the wheel here, Breathe does what I need to do and at least it can provide a good base for my code.

Note that I'm not trying to change the renderer, I'm just trying to use the parser to generate the internal Python objects what will be used with Moustache to create the HTML code.

Thanks again.