=================================================================== RCS file: /cvs/docbook2mdoc/README,v retrieving revision 1.1 retrieving revision 1.3 diff -u -p -r1.1 -r1.3 --- docbook2mdoc/README 2014/04/02 10:06:14 1.1 +++ docbook2mdoc/README 2019/03/22 15:38:09 1.3 @@ -1,35 +1,22 @@ -$Id: README,v 1.1 2014/04/02 10:06:14 kristaps Exp $ +$Id: README,v 1.3 2019/03/22 15:38:09 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: +First, look up the element in the DocBook reference. +For element , this is usually: -http://docbook.org/tdg51/en/html/foo.html + https://tdg.docbook.org/tdg/5.1/foo.html -Add the alpha-ordered node (NODE_FOO) to extern.h. +Some elements are no longer defined in DocBook 5. +For these, you will have to look at 4.5 documentation instead: -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": + https://tdg.docbook.org/tdg/4.5/foo.html - switch (parent) { - case (NODE_BAR): - case (NODE_BAZ): - return(1); - default: - break; - } - return(0); +Add the alpha-ordered node (NODE_FOO) to extern.h. -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 print_pnode() with your new entry. Use similar nodes as +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!)