I have a very large class, which is very documented. Doxygen is used for producing the HTML documentation, but for this class the HTML file is big ~12 MB, which is too much for my taste.
This happens becuase Doxygen list all documentation of the class in one file, but in this case it’s desiderable to split class functions documentation in separate pages, in order to have a reasonable page.
What I’m asking: is there any solution to this?
Maybe is there a special option/trick for this? Or…
Maybe I can disable “normal” documentation for this class, and copy the class function documentation in a better organized page? In this case I shall @copydoc those functions, isn’t?
What is you advice?
It is possible!
There is a configuration key: ‘SEPARATE_MEMBER_PAGES=YES’. This will create a different page for each class member.
The next problem is the number of files that Doxygen generates (a filesystem nightmare), but this is solvable by setting ‘CREATE_SUBDIRS=YES’: at least this sparse files into directories, so make them manageable.
After few days…
No. The problem still exists… no, it is worse than ever: each separate class member page list all class member on the left: 4K member pages, for 1 MB each make… 4 GB? OMG.
So, I decided to remove that table listing (so much expansive) from the resulted HTML. Fortunately this section is uniform on all generated files. I made an utility program to achieve this. Here is the most usefull code snippet (using HtmlAgilityPack):
Of course I build a multithread program which load a bunch of HTML files on separate threads and write them in separate threads too (otherwise it take too long).
The result: passed from 4 GB to 60 MB!
Are you curious about the result: see the linked pages from this documentation page.