version 1.1, 2014/04/02 10:06:14 |
version 1.3, 2019/03/22 15:38:09 |
|
|
|
|
Here's a quick note on how to add new DocBook elements. |
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: |
First, look up the element in the DocBook reference. |
|
For element <foo>, 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, |
https://tdg.docbook.org/tdg/4.5/foo.html |
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) { |
Add the alpha-ordered node (NODE_FOO) to extern.h. |
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 |
Next, add the name and whether it admits text to docbook2mdoc.c's |
"nodes" structure array. |
"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 |
a reference. (NOTE: if it's an inline like, say, NODE_EMPHASIS, then |
remember to add the node to the postfix switch statement!) |
remember to add the node to the postfix switch statement!) |