Don't remove doxygen markup comments from raw source display - doxygen

If I document my functions in the source code like this:
/// return random value between min and max
inline double random(double min, double max){
return (double)rand() / (double)RAND_MAX * (max - min) + min;
}
then doxygen removes the description in the raw source display. You can see this for instance here:
http://eigen.tuxfamily.org/dox/MatrixBase_8h_source.html
Whenever there are missing line numbers, doxygen markup commands were deleted. Is there a way to keep them in? I think these comments are helpful remarks to keep even in the raw source display... I couldn't find any flag for this.
Any help appreciated!

For this doxygen has the configuration setting: STRIP_CODE_COMMENTS
Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to
hide any special comment blocks from generated source code fragments.
Normal C, C++ and Fortran comments will always remain visible. The
default value is: YES.
So by default the doxygen comments are stripped setting STRIP_CODE_COMMENTS to NO will retain the comments.

Related

disable auto link in Doxygen

If I write some URL in source code comments like:
/**
* Here is an inline link [test](http://www.test.com).
* More information:
* test
*/
I enabled GENERATE_XML in Doxygen. This is what it generates:
<para>Here is an inline link [test](<ulink url="http://www.test.com">http://www.test.com</ulink>).
More information:
<ulink url="http://www.test.com">test</ulink> </para>
After converting the tags, I can create a Markdown content like:
Here is an inline link [test](http://www.test.com).
More information:
test
Note that the Markdown link [test](http://www.test.com) is polluted, which will break the link after I feed this into another Markdown processor. I need this as I want to write some markdown in comments, and extract it to some structured data formats for other tools to processing the markdown. I have disabled MARKDOWN_SUPPORT in Doxygen.
I have tried disable AUTOLINK_SUPPORT in doxyfile, but it can only disable internal type link to class/method/...
Solution for the mentioned problem, auto linking a web address, is to use [test](%http://www.test.com). By means of the % sign the (automatic) linking is suppressed.
In the documentation, paragraph "Step 3: Documenting the sources":
Links are created for words corresponding to documented classes (unless the word is preceded by a %; then the word will not be linked and the % sign is removed).
Note: in the above quote the wording is only for classes but it does work on other places as well. The same "problem" occurs in other places:
Description of AUTOLINK_SUPPORT
FAQ Doxygen automatically generates a link to the class MyClass somewhere
in the running text. How do I prevent that at a certain place?
Paragraph Links to classes
Paragraph "\%"

Customizing Doxygen output for an .ini configuration file

Is there a way to customize the HTML output for an .ini configuration file with incorporated comments, as for example:
[MySection]
;This is an extensive description of MyParameter (possibly with #commands after semicolon?)
MyParameter=MyValue
Despite this is a special usage, I would like to have each parameter parsed/listed separately with description (and unit? and recommended value?). The file could also look like this:
[MySection]
;#brief A brief description
;#details A detailled description
;#unit cows (The physical unit of the parameter)
;#recommendedValue 5 cows
MyParameter=7
Currently, I'm including the .ini file with #include/#verbinclude - unfortunately, without syntax highlighting. Thanks.
OK, I'm assuming that you included the file using the FILE_PATTERNS tag, so that at least the file is listed in your documentation. Additionally you have to set EXTENSION_MAPPING tag to tell doxygen how to interpret this file. Unfortunately the INI file syntax is not supported by doxygen. At this point you have two possibilities:
Writing a custom input-filter (e.g. in perl) and add this as INPUT_FILTER
Varying the comments so that the doxygen parser gets a valid code corresponding to the programming language you have defined in EXTENSION_MAPPING.
For example if you have set EXTENSION_MAPPING = ini=C Then your inifile should look like this:
;/// #file myinifile.ini
;/// #brief A brief description.
;/// #details A detailled description.
;/// #unit cows (The physical unit of the parameter)
;/// #recommendedValue 5 cows
MyParameter=7
;
The additional slashes /// are needed to tell the doxygen parser that this line is a comment line which shall be processed by the doxygen.
Also note the last semicolon ; which is needed since the doxygen C parser is expecting a closing ; after each declaration.

Include *prewritten* documentation in Doxygen

To distinguish this question from Doxygen: Adding a custom link under the "Related Pages" section which has an accepted answer that is not a real answer to the question, I specifically add prewritten to the question.
What I want:
Write one document tex file (without preamble, since this file will be \input-ed into a full document)
Import the document into Doxygen's HTML output.
Using Doxygen to produce tex file will probably not work, since it does too much layout work [This holds for its HTML output too like empty table rows 2015]. If Doxygen takes some other input that can easily be transformed into LaTeX, that will do.
You can easily add an already existing Latex file to your doxygen documentation using \latexonly\input{yourfile}\endlatexonly.
I would assume you put it e.g. under a doxygen \page.

Documentation not appearing in doxygen output

I'm trying to document a C API which is all contained in a single C Header file. When I run doxygen, on the file, it's giving me errors for currently undocumented C Macros, but when I add the necessary documentation for macros, although the undocumented errors are cleared, the macros plus documentation do not appear in the doxygen generated html output.
Only a fraction of the documented header file, the structures, actually appears in any doxygen output. I can't see anything in configuration settings or documentation that would assist in clarifying why doxygen does not place documented code from the header file into its generated output.
Does anybody know why this would be the case?
See items 2 and 3 of the FAQ: http://www.doxygen.org/manual/faq.html
In short you are likely missing a comment block with #file to document your header file.

How to break long URLs in Doxygen comments to satisfy maximum line length?

The coding guidelines of programming language limit the line length, e.g. to 80 characters. How can I add a URL that is longer than that limit to Doxygen comments? How do I tell Doxygen that multiple lines are to be joined to form the actual link?
Example:
##
# #file mycode.py
# #sa See the documentation: http://some.host.some.domain/and_here
# _we_have_a_very_long_URL_that_can_not_be_written_in_one_line
# _because_it_would_exceed_the_line_length_limit
The example above doesn't work, and it doesn't work either to end the lines with a backslash (the backslash is just copied to the documentation).
You can try it this way. It worked for me. However I'm not a 100% sure its going to work for you. Our IDE use whitespaces as indentation and not tabs. So when you break the line, hence the link, it might not work.
<a href="http://stackoverflow.com/questions/9098680/
doxygen-link-to-a-url-doesnt-generate-the-link-correctly">
link
</a>
You could use an alias to abbreviate the long URL, i.e.
##
# #file mycode.py
# #sa See the documentation: #longurl
and in the Doxyfile define
ALIASES = longurl="http://some.host.some.domain/and_here/..."
This is performing necromancy an old question. I am answering for C++ style comments. But, if you make you link in the form:
/**
* [link_text](http://foo.com/bar/baz/qux/wibble/flob?id=deadbeef123456789abcdefghijklmnopqrstuvwxyz)
*/
You can wrap that URL in the following ways and the generated HTML output will still contain a working anchor tag:
/**
* [link_
text]
(http://foo.com/bar/baz/qux/wibble/
flob?id=deadbeef123456789abcdefghijklmnopqrstuvwxyz)
*/
Obviously this might make the comment block less readable. But this gives you an idea of what is possible. The main things that are advantagious here are being able to put the URL on a separate line from the link text, and then being able to wrap it at least once after a /.