diff --git a/mercurial/minirst.py b/mercurial/minirst.py --- a/mercurial/minirst.py +++ b/mercurial/minirst.py @@ -682,7 +682,10 @@ def getsections(blocks): secs = [] def getname(b): - x = b['lines'][0] + if b['type'] == 'field': + x = b['key'] + else: + x = b['lines'][0] x = x.lower().strip('"') if '(' in x: x = x.split('(')[0] @@ -696,7 +699,7 @@ def getsections(blocks): level = nest.index(i) + 1 nest = nest[:level] secs.append((getname(b), level, [b])) - elif b['type'] == 'definition': + elif b['type'] in ('definition', 'field'): i = ' ' if i not in nest: nest += i diff --git a/tests/test-help.t b/tests/test-help.t --- a/tests/test-help.t +++ b/tests/test-help.t @@ -1117,6 +1117,10 @@ Test section lookup abort: help section not found [255] + $ hg help template.files + files List of strings. All files modified, added, or removed by + this changeset. + Test dynamic list of merge tools only shows up once $ hg help merge-tools Merge Tools