aboutsummaryrefslogtreecommitdiff
path: root/devscripts/prepare_manpage.py
diff options
context:
space:
mode:
authorLeo Heitmann Ruiz <leo@heitmannruiz.org>2024-04-08 21:18:04 +0200
committerSimon Sawicki <contact@grub4k.xyz>2024-04-08 21:24:58 +0200
commitdf0e138fc02ae2764a44f2f59fc93c756c4d3ee2 (patch)
tree5054ddd3bbf4ca4fe770ba4ff4ca819af65cf102 /devscripts/prepare_manpage.py
parent2e94602f241f6e41bdc48576c61089435529339b (diff)
[docs] Various manpage fixes
Authored by: leoheitmannruiz
Diffstat (limited to 'devscripts/prepare_manpage.py')
-rw-r--r--devscripts/prepare_manpage.py27
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():