DOXY2MAN(8)

πŸ“¦
version 0 Β· 2 versions
, in fedora 43

πŸ’– DOXY2MAN β€” the manual page (section 8, system admin tools, bestie) πŸ’–

okay so real quick, the whole thing lives in the DOXY2MAN(8) corner of the manual β€” section 8, admin commands, you know the vibe πŸ‘‘


✨ NAME ✨

doxy2man β€” Create man pages from doxygen XML output.

like, it makes man pages. from doxygen XML. that's the whole gig πŸŽ€


🌸 SYNOPSIS 🌸

doxy2man [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so let's talk about Doxygen for a sec. Doxygen is great for generating HTML based API documentation. genuinely iconic behavior, no notes πŸ’…

BUT. the man page output mode of doxygen (GENERATE_MAN = YES) is not that awesome. lowkey tragic, honestly. Doxygen generates for a header file a man page with all functions, enums etc. And for each structure it generates a man page listing all its (public) attributes. sounds fine in theory?? but for C based projects this is not very useful, because one usually expects things like one man page for each function and referenced structs documented where used. right?? like that's the actual dream πŸ’­

so Doxy2man takes the XML generated by Doxygen as input and creates several man pages from that. it creates a summary man page for a header and for each function a detailed man page. the output is optimized for C projects. 🫢

and it supports the most common doxygen features, e.g. implicit and explicit see also tags, copyright, author information, brief and detailed descriptions, etc. it's giving thorough. it ate and left no crumbs πŸ”₯


πŸŽ€ USAGE πŸŽ€

Step one bestie: create a small Doxygen configuration file. To enable XML output use something like this:

GENERATE_XML           = YES
XML_OUTPUT             = xml
XML_PROGRAMLISTING     = NO

then call doxygen:

$ doxygen

the xml subdirectory should contain some XML files now. ✨

then call doxy2man:

$ ./doxy2man xml/myheader_8h.xml

and now the fun part β€” view the man pages:

$ ls out
...
$ man -l out/my_header.h.3
$ man -l out/my_func_a.3
$ man -l out/my_func_b.3
...

okay that's the whole workflow, go off πŸ‘‘


πŸ’… OPTIONS πŸ’…

Doxy2man implements several useful defaults but is also customizable. it's customizable and it has good defaults?? main character energy fr fr

$ ./doxy2man --help
Generates man pages from doxygen XML output

call: ./doxy2man OPTIONS DOXYGEN_XML_HEADER_FILE

where:

  • -h, --help β€” this screen. hi hello, it shows you the help 🫢
  • --nowarn β€” suppress warnings. shhh, no drama 🀫
  • --nosummary β€” don't generate summare man page
  • --nocopyright β€” don't generate copyright section
  • --nofollow β€” don't parse referenced xml files
  • --novalidate β€” don't validate xml files against compound.xsd
  • --noseealsoall β€” don't add all functions under see also
  • --nosort β€” don't sort functions under see also
  • --nostructs β€” don't print structs in function man pages
  • -o DIR, --out DIR β€” output directory
  • -s STR, --section STR β€” man page section
  • --short-pkg STR β€” short man page header/footer string, e.g. 'Linux'
  • --pkg STR β€” man page header/footer string, e.g. 'Linux Programmer's Manual'
  • -i STR, --include STR β€” include path prefix
ngl the double-dash-only flags are just out here living their best life with no short form. respect. πŸ’œ

🌈 AUTHOR 🌈

Written by Georg Sauthoff <mail@georg.so> 🫢

Don't hesitate to mail questions, comments or other feedback. fr fr, they want the feedback, don't be shy, send the email, it's giving community πŸ’Œ


⭐ LICENSE ⭐

GPLv3+


and that's the page bestie!! this was doxy2man, from the 07/23/2025 era of the manual β€” go make some man pages, you're gonna slay πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from