[BACK]Return to README CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / docbook2mdoc

File: [cvsweb.bsd.lv] / docbook2mdoc / README (download)

Revision 1.2, Fri Mar 8 10:13:12 2019 UTC (5 years, 1 month 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!)