use paragraph nodes instead of translatable nodes.

This commit is contained in:
Nozomu Kaneko 2012-12-31 23:31:15 +09:00
parent a1e9f2d675
commit 9262d0550d
2 changed files with 21 additions and 5 deletions

View File

@ -284,12 +284,29 @@ class Locale(Transform):
node.children = patch.children
class DocFields(Transform):
"""
Remove nested paragraphs generated by docfields.
"""
default_priority = 999
def apply(self):
for field_list in self.document.traverse(nodes.field_list):
for field_body in field_list.traverse(nodes.field_body):
for par in field_list.traverse(nodes.paragraph):
if not ('removable' in par and
isinstance(par.parent, nodes.paragraph)):
continue
par.parent.remove(par)
par.parent += par.children
class SphinxStandaloneReader(standalone.Reader):
"""
Add our own transforms.
"""
transforms = [Locale, CitationReferences, DefaultSubstitutions,
MoveModuleTargets, HandleCodeBlocks, SortIds]
MoveModuleTargets, HandleCodeBlocks, SortIds, DocFields]
def get_transforms(self):
return standalone.Reader.get_transforms(self) + self.transforms

View File

@ -67,9 +67,7 @@ class Field(object):
fieldname += nodes.Text(' ')
fieldname += self.make_xref(self.rolename, domain,
fieldarg, nodes.Text)
par = nodes.paragraph()
par += content
fieldbody = nodes.field_body('', par)
fieldbody = nodes.field_body('', nodes.paragraph('', '', content))
return nodes.field('', fieldname, fieldbody)
@ -257,7 +255,8 @@ class DocFieldTransformer(object):
[nodes.Text(argtype)]
fieldarg = argname
translatable_content = addnodes.translatable(fieldbody.rawsource)
translatable_content = nodes.paragraph(fieldbody.rawsource,
removable=True)
translatable_content.source = fieldbody.parent.source
translatable_content.line = fieldbody.parent.line
translatable_content += content