diff options
author | Joe Stringer <joe@ovn.org> | 2017-01-05 18:09:35 -0800 |
---|---|---|
committer | Joe Stringer <joe@ovn.org> | 2017-01-06 12:38:01 -0800 |
commit | 44b8deff151b60b41af7f082e501033773caedad (patch) | |
tree | 474edb4598ac7e1d06ba0024487f2cc7edb2c981 /python | |
parent | e522804fbb3ebee75fca215ccf469642e833f6f2 (diff) | |
download | openvswitch-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.py | 14 |
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: |