提交 76eb6b60 编写于 作者: M Markus Armbruster

qapi2texi: Simplify representation of section text

Use a string instead of a list of strings.  While there, generate
fewer superfluous blank lines.
Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
Message-Id: <20171002141341.24616-10-armbru@redhat.com>
Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
上级 09331fce
...@@ -13,7 +13,6 @@ MSG_FMT = """ ...@@ -13,7 +13,6 @@ MSG_FMT = """
@deftypefn {type} {{}} {name} @deftypefn {type} {{}} {name}
{body} {body}
@end deftypefn @end deftypefn
""".format """.format
...@@ -22,7 +21,6 @@ TYPE_FMT = """ ...@@ -22,7 +21,6 @@ TYPE_FMT = """
@deftp {{{type}}} {name} @deftp {{{type}}} {name}
{body} {body}
@end deftp @end deftp
""".format """.format
...@@ -74,7 +72,7 @@ def texi_format(doc): ...@@ -74,7 +72,7 @@ def texi_format(doc):
- 1. or 1): generates an @enumerate @item - 1. or 1): generates an @enumerate @item
- */-: generates an @itemize list - */-: generates an @itemize list
""" """
lines = [] ret = ''
doc = subst_braces(doc) doc = subst_braces(doc)
doc = subst_vars(doc) doc = subst_vars(doc)
doc = subst_emph(doc) doc = subst_emph(doc)
...@@ -100,32 +98,32 @@ def texi_format(doc): ...@@ -100,32 +98,32 @@ def texi_format(doc):
line = '@subsection ' + line[3:] line = '@subsection ' + line[3:]
elif re.match(r'^([0-9]*\.) ', line): elif re.match(r'^([0-9]*\.) ', line):
if not inlist: if not inlist:
lines.append('@enumerate') ret += '@enumerate\n'
inlist = 'enumerate' inlist = 'enumerate'
ret += '@item\n'
line = line[line.find(' ')+1:] line = line[line.find(' ')+1:]
lines.append('@item')
elif re.match(r'^[*-] ', line): elif re.match(r'^[*-] ', line):
if not inlist: if not inlist:
lines.append('@itemize %s' % {'*': '@bullet', ret += '@itemize %s\n' % {'*': '@bullet',
'-': '@minus'}[line[0]]) '-': '@minus'}[line[0]]
inlist = 'itemize' inlist = 'itemize'
lines.append('@item') ret += '@item\n'
line = line[2:] line = line[2:]
elif lastempty and inlist: elif lastempty and inlist:
lines.append('@end %s\n' % inlist) ret += '@end %s\n\n' % inlist
inlist = '' inlist = ''
lastempty = empty lastempty = empty
lines.append(line) ret += line + '\n'
if inlist: if inlist:
lines.append('@end %s\n' % inlist) ret += '@end %s\n\n' % inlist
return '\n'.join(lines) return ret
def texi_body(doc): def texi_body(doc):
"""Format the main documentation body""" """Format the main documentation body"""
return texi_format(doc.body.text) + '\n' return texi_format(doc.body.text)
def texi_enum_value(value): def texi_enum_value(value):
...@@ -154,10 +152,11 @@ def texi_members(doc, what, base, variants, member_func): ...@@ -154,10 +152,11 @@ def texi_members(doc, what, base, variants, member_func):
elif (variants and variants.tag_member == section.member elif (variants and variants.tag_member == section.member
and not section.member.type.doc_type()): and not section.member.type.doc_type()):
values = section.member.type.member_names() values = section.member.type.member_names()
desc = 'One of ' + ', '.join(['@t{"%s"}' % v for v in values]) members_text = ', '.join(['@t{"%s"}' % v for v in values])
desc = 'One of ' + members_text + '\n'
else: else:
desc = 'Not documented' desc = 'Not documented\n'
items += member_func(section.member) + desc + '\n' items += member_func(section.member) + desc
if base: if base:
items += '@item The members of @code{%s}\n' % base.doc_type() items += '@item The members of @code{%s}\n' % base.doc_type()
if variants: if variants:
...@@ -182,7 +181,7 @@ def texi_sections(doc): ...@@ -182,7 +181,7 @@ def texi_sections(doc):
for section in doc.sections: for section in doc.sections:
if section.name: if section.name:
# prefer @b over @strong, so txt doesn't translate it to *Foo:* # prefer @b over @strong, so txt doesn't translate it to *Foo:*
body += '\n\n@b{%s:}\n' % section.name body += '\n@b{%s:}\n' % section.name
if section.name and section.name.startswith('Example'): if section.name and section.name.startswith('Example'):
body += texi_example(section.text) body += texi_example(section.text)
else: else:
......
...@@ -101,7 +101,6 @@ Not documented ...@@ -101,7 +101,6 @@ Not documented
the first member the first member
@end table @end table
@end deftp @end deftp
...@@ -118,7 +117,6 @@ Another paragraph (but no @code{var}: line) ...@@ -118,7 +117,6 @@ Another paragraph (but no @code{var}: line)
Not documented Not documented
@end table @end table
@end deftp @end deftp
...@@ -127,7 +125,6 @@ Not documented ...@@ -127,7 +125,6 @@ Not documented
@end deftp @end deftp
...@@ -143,7 +140,6 @@ Not documented ...@@ -143,7 +140,6 @@ Not documented
@item The members of @code{Variant2} when @code{base1} is @t{"two"} @item The members of @code{Variant2} when @code{base1} is @t{"two"}
@end table @end table
@end deftp @end deftp
...@@ -160,7 +156,6 @@ One of @t{"one"}, @t{"two"} ...@@ -160,7 +156,6 @@ One of @t{"one"}, @t{"two"}
@item @code{data: Variant2} when @code{type} is @t{"two"} @item @code{data: Variant2} when @code{type} is @t{"two"}
@end table @end table
@end deftp @end deftp
...@@ -182,7 +177,6 @@ argument ...@@ -182,7 +177,6 @@ argument
Not documented Not documented
@end table @end table
@b{Note:} @b{Note:}
@code{arg3} is undocumented @code{arg3} is undocumented
...@@ -209,14 +203,12 @@ Duis aute irure dolor ...@@ -209,14 +203,12 @@ Duis aute irure dolor
<- out <- out
@end example @end example
@b{Examples:} @b{Examples:}
@example @example
- *verbatim* - *verbatim*
- @{braces@} - @{braces@}
@end example @end example
@b{Since:} @b{Since:}
2.10 2.10
...@@ -230,7 +222,6 @@ If you're bored enough to read this, go see a video of boxed cats ...@@ -230,7 +222,6 @@ If you're bored enough to read this, go see a video of boxed cats
@b{Arguments:} the members of @code{Object} @b{Arguments:} the members of @code{Object}
@b{Example:} @b{Example:}
@example @example
-> in -> in
...@@ -238,7 +229,6 @@ If you're bored enough to read this, go see a video of boxed cats ...@@ -238,7 +229,6 @@ If you're bored enough to read this, go see a video of boxed cats
<- out <- out
@end example @end example
@end deftypefn @end deftypefn
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册