# HG changeset patch # User Yuya Nishihara # Date 2018-08-05 02:38:56 # Node ID 200ad3e85a973919f74553d069f6185394fdf64d # Parent fc54a290b4b03071dae7f00b0975216421ae3257 minirst: extract function that filters parsed blocks by section name I'll move some bits from minirst.format() to caller to make the function interface simpler. diff --git a/mercurial/minirst.py b/mercurial/minirst.py --- a/mercurial/minirst.py +++ b/mercurial/minirst.py @@ -666,8 +666,21 @@ def formatblocks(blocks, width): def format(text, width=80, indent=0, keep=None, style='plain', section=None): """Parse and format the text according to width.""" blocks, pruned = parse(text, indent, keep or []) + if section: + blocks = filtersections(blocks, section) + if style == 'html': + text = formathtml(blocks) + else: + text = ''.join(formatblock(b, width) for b in blocks) + if keep is None: + return text + else: + return text, pruned + +def filtersections(blocks, section): + """Select parsed blocks under the specified section""" parents = [] - if section: + if True: sections = getsections(blocks) blocks = [] i = 0 @@ -714,14 +727,7 @@ def format(text, width=80, indent=0, kee '.'.join(path + [realline[0]]).replace('"', '')) del blocks[s[0]:real] - if style == 'html': - text = formathtml(blocks) - else: - text = ''.join(formatblock(b, width) for b in blocks) - if keep is None: - return text - else: - return text, pruned + return blocks def getsections(blocks): '''return a list of (section name, nesting level, blocks) tuples'''