$Id: README,v 1.2 2019/03/08 10:13:12 schwarze Exp $ Here's a quick note on how to add new DocBook elements. First, look up the element in the DocBook reference. For element , this is usually: https://tdg.docbook.org/tdg/5.1/foo.html Some elements are no longer defined in DocBook 5. For these, you will have to look at 4.5 documentation instead: https://tdg.docbook.org/tdg/4.5/foo.html Add the alpha-ordered node (NODE_FOO) to extern.h. Next, add rules.c isparent() rule. This is the hard part. First, create a top-level switch statement for NODE_FOO. Create a white-list of switch cases beneath that corresponding to each "These elements contain foo": switch (parent) { case (NODE_BAR): case (NODE_BAZ): return(1); default: break; } return(0); Next, go through the "The following elements occur in foo" and add a "case (NODE_FOO)" to each of those elements' switches. Now the hard work is finished! Next, add the name and whether it admits text to docbook2mdoc.c's "nodes" structure array. Finally, modify pnode_print() with your new entry. Use similar nodes as a reference. (NOTE: if it's an inline like, say, NODE_EMPHASIS, then remember to add the node to the postfix switch statement!)