diff options
author | Georg Brandl <georg@python.org> | 2011-01-04 00:35:27 +0100 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2011-01-04 00:35:27 +0100 |
commit | 3642b521ed5a8c85faf4b37eb1bc83d6cfa63716 (patch) | |
tree | eed02f129e674a183307a35cd383b9c6f369b6bf /sphinx/util/docfields.py | |
parent | 8fd5bd1e1909ac5c5e857049dafcdcc2975eb90d (diff) | |
parent | eecd8bff03e6617dc3644e319f9447e3320af9c3 (diff) | |
download | sphinx-git-3642b521ed5a8c85faf4b37eb1bc83d6cfa63716.tar.gz |
merge with 1.0
Diffstat (limited to 'sphinx/util/docfields.py')
-rw-r--r-- | sphinx/util/docfields.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py index 89f81e8cb..745557a79 100644 --- a/sphinx/util/docfields.py +++ b/sphinx/util/docfields.py @@ -129,15 +129,13 @@ class TypedField(GroupedField): is_typed = True def __init__(self, name, names=(), typenames=(), label=None, - rolename=None, typerolename=None): - GroupedField.__init__(self, name, names, label, rolename, False) + rolename=None, typerolename=None, can_collapse=False): + GroupedField.__init__(self, name, names, label, rolename, can_collapse) self.typenames = typenames self.typerolename = typerolename def make_field(self, types, domain, items): - fieldname = nodes.field_name('', self.label) - listnode = self.list_type() - for fieldarg, content in items: + def handle_item(fieldarg, content): par = nodes.paragraph() par += self.make_xref(self.rolename, domain, fieldarg, nodes.strong) if fieldarg in types: @@ -154,8 +152,17 @@ class TypedField(GroupedField): par += nodes.Text(')') par += nodes.Text(' -- ') par += content - listnode += nodes.list_item('', par) - fieldbody = nodes.field_body('', listnode) + return par + + fieldname = nodes.field_name('', self.label) + if len(items) == 1 and self.can_collapse: + fieldarg, content = items[0] + bodynode = handle_item(fieldarg, content) + else: + bodynode = self.list_type() + for fieldarg, content in items: + bodynode += nodes.list_item('', handle_item(fieldarg, content)) + fieldbody = nodes.field_body('', bodynode) return nodes.field('', fieldname, fieldbody) |