File: [cvsweb.bsd.lv] / docbook2mdoc / README (download)
Revision 1.2, Fri Mar 8 10:13:12 2019 UTC (5 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.1: +10 -4 lines
update links to the DocBook website and fix a typo in a function name
|
$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 <foo>, 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!)