diff options
author | Leo Heitmann Ruiz <leo@heitmannruiz.org> | 2024-04-08 21:18:04 +0200 |
---|---|---|
committer | Simon Sawicki <contact@grub4k.xyz> | 2024-04-08 21:24:58 +0200 |
commit | df0e138fc02ae2764a44f2f59fc93c756c4d3ee2 (patch) | |
tree | 5054ddd3bbf4ca4fe770ba4ff4ca819af65cf102 /devscripts/prepare_manpage.py | |
parent | 2e94602f241f6e41bdc48576c61089435529339b (diff) |
[docs] Various manpage fixes
Authored by: leoheitmannruiz
Diffstat (limited to 'devscripts/prepare_manpage.py')
-rw-r--r-- | devscripts/prepare_manpage.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/devscripts/prepare_manpage.py b/devscripts/prepare_manpage.py index 009e7bba1..47188e992 100644 --- a/devscripts/prepare_manpage.py +++ b/devscripts/prepare_manpage.py @@ -43,6 +43,27 @@ def filter_excluded_sections(readme): '', readme) +def _convert_code_blocks(readme): + current_code_block = None + + for line in readme.splitlines(True): + if current_code_block: + if line == current_code_block: + current_code_block = None + yield '\n' + else: + yield f' {line}' + elif line.startswith('```'): + current_code_block = line.count('`') * '`' + '\n' + yield '\n' + else: + yield line + + +def convert_code_blocks(readme): + return ''.join(_convert_code_blocks(readme)) + + def move_sections(readme): MOVE_TAG_TEMPLATE = '<!-- MANPAGE: MOVE "%s" SECTION HERE -->' sections = re.findall(r'(?m)^%s$' % ( @@ -65,8 +86,10 @@ def move_sections(readme): def filter_options(readme): section = re.search(r'(?sm)^# USAGE AND OPTIONS\n.+?(?=^# )', readme).group(0) + section_new = section.replace('*', R'\*') + options = '# OPTIONS\n' - for line in section.split('\n')[1:]: + for line in section_new.split('\n')[1:]: mobj = re.fullmatch(r'''(?x) \s{4}(?P<opt>-(?:,\s|[^\s])+) (?:\s(?P<meta>(?:[^\s]|\s(?!\s))+))? @@ -86,7 +109,7 @@ def filter_options(readme): return readme.replace(section, options, 1) -TRANSFORM = compose_functions(filter_excluded_sections, move_sections, filter_options) +TRANSFORM = compose_functions(filter_excluded_sections, convert_code_blocks, move_sections, filter_options) def main(): |