Repository navigation
Expand file tree
/
Copy pathprepare4notebook.py
More file actions
66 lines (50 loc) · 1.86 KB
/
Copy pathprepare4notebook.py
File metadata and controls
66 lines (50 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
import sys
def parse_command_line_arguments():
parser = argparse.ArgumentParser(
description='This script converts as Myst markdown file to a markdown file.')
parser.add_argument('filename', type=str)
# no arguments given
if len(sys.argv)==1:
print('Provide a filename: prepare4notebook.py inputfile.md')
sys.exit(1)
return parser.parse_args()
def clean_myst_file(input_filename, output_filename):
output_lines = []
with open(input_filename) as file:
inside_admonition = False
inside_minisolution = False
for line in file:
if line.startswith('````'):
if inside_minisolution:
inside_minisolution = False
continue
else:
inside_minisolution = True
if inside_minisolution:
continue
if '```{admonition}' in line:
inside_admonition = True
elif ':class: goals' in line and inside_admonition:
pass
elif ':class: miniexercise' in line and inside_admonition:
output_lines.append('**Mini-Übung**\n')
elif ':class: minisolution' in line and inside_admonition:
inside_minisolution = True
elif '```' in line and inside_admonition:
inside_admonition = False
else:
output_lines.append(line)
with open(output_filename, 'w') as output_file:
for line in output_lines:
output_file.write(line)
return
def main():
args = parse_command_line_arguments()
input_filename = args.filename
output_filename = input_filename.replace('.md', '_cleaned.md')
clean_myst_file(input_filename, output_filename)
if __name__ == "__main__":
main()