summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJoe Stringer <joe@ovn.org>2017-01-05 18:09:35 -0800
committerJoe Stringer <joe@ovn.org>2017-01-06 12:38:01 -0800
commit44b8deff151b60b41af7f082e501033773caedad (patch)
tree474edb4598ac7e1d06ba0024487f2cc7edb2c981 /python
parente522804fbb3ebee75fca215ccf469642e833f6f2 (diff)
downloadopenvswitch-44b8deff151b60b41af7f082e501033773caedad.tar.gz
python: Fix nroff indentation for <dl> after <hN>.
When XML is used for writing manpages, in the case that there is a header tag followed by <dl>, the nroff python utility indents the <dl> tag (and children) an extra level which is unnecessary and makes the formatting inconsistent between manpages written directly in nroff vs manpages written in XML and converted to nroff. Fix the indentation by removing the extraneous .RS / .RE tags added to generated nroff in this case. This fixes the formatting of ovn/utilities/ovn-nbctl.8 man page. Signed-off-by: Joe Stringer <joe@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'python')
-rw-r--r--python/build/nroff.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/python/build/nroff.py b/python/build/nroff.py
index aed60ebbd..ebb10e90d 100644
--- a/python/build/nroff.py
+++ b/python/build/nroff.py
@@ -220,7 +220,9 @@ fillval = .2
def block_xml_to_nroff(nodes, para='.PP'):
+ HEADER_TAGS = ('h1', 'h2', 'h3')
s = ''
+ prev = ''
for node in nodes:
if node.nodeType == node.TEXT_NODE:
s += text_to_nroff(node.data)
@@ -248,9 +250,13 @@ def block_xml_to_nroff(nodes, para='.PP'):
"<li> children" % node.tagName)
s += ".RE\n"
elif node.tagName == 'dl':
+ indent = True
+ if prev in HEADER_TAGS:
+ indent = False
if s != "":
s += "\n"
- s += ".RS\n"
+ if indent:
+ s += ".RS\n"
prev = "dd"
for li_node in node.childNodes:
if (li_node.nodeType == node.ELEMENT_NODE
@@ -272,14 +278,15 @@ def block_xml_to_nroff(nodes, para='.PP'):
raise error.Error("<dl> element may only have "
"<dt> and <dd> children")
s += block_xml_to_nroff(li_node.childNodes, ".IP")
- s += ".RE\n"
+ if indent:
+ s += ".RE\n"
elif node.tagName == 'p':
if s != "":
if not s.endswith("\n"):
s += "\n"
s += para + "\n"
s += block_xml_to_nroff(node.childNodes, para)
- elif node.tagName in ('h1', 'h2', 'h3'):
+ elif node.tagName in HEADER_TAGS:
if s != "":
if not s.endswith("\n"):
s += "\n"
@@ -300,6 +307,7 @@ def block_xml_to_nroff(nodes, para='.PP'):
s += diagram_to_nroff(node.childNodes, para)
else:
s += inline_xml_to_nroff(node, r'\fR')
+ prev = node.tagName
elif node.nodeType == node.COMMENT_NODE:
pass
else: