2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +00:00

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>
This commit is contained in:
Joe Stringer
2017-01-05 18:09:35 -08:00
parent e522804fbb
commit 44b8deff15

View File

@@ -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: