blob: fde79bb4941e83aec227796eaf0f86c5f1b7d204 (
plain)
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
|
#!/usr/bin/env python3
import re
import sys
stage = 0
example = 0
section = ""
mdlines = []
refs = []
if len(sys.argv) > 1:
specfile = sys.argv[1]
else:
specfile = 'spec.txt'
with open(specfile, 'r', encoding='utf-8') as spec:
for ln in spec:
if re.match(r'^\.$', ln):
if stage == 0:
example += 1
mdlines.append("\n<div class=\"example\" id=\"example-{0}\" data-section=\"{1}\">\n".format(example, section))
mdlines.append("<div class=\"examplenum\"><a href=\"#example-{0}\">Example {0}</a> <a class=\"dingus\" title=\"open in interactive dingus\">(interact)</a></div>\n\n".format(example))
mdlines.append("````````````````````````````````````````````````````````` markdown\n")
stage = 1
elif stage == 1:
mdlines.append("`````````````````````````````````````````````````````````\n\n")
mdlines.append("````````````````````````````````````````````````````````` html\n")
stage = 2
elif stage == 2:
mdlines.append("`````````````````````````````````````````````````````````\n\n")
mdlines.append("</div>\n")
stage = 0
else:
sys.stderr.out("Encountered unknown stage {0}\n".format(stage))
sys.exit(1)
else:
if stage == 0:
match = re.match(r'^#{1,6} *(.*)', ln)
if match:
section = match.group(1)
else:
for match in re.finditer(r'\[([^]]*)\]\(@([^)]*)\)', ln):
refs.append("[{0}]: #{1}".format(match.group(1), match.group(2)))
else:
ln = re.sub(r' ', '␣', ln)
mdlines.append(ln)
mdtext = ''.join(mdlines) + '\n\n' + '\n'.join(refs) + '\n'
sys.stdout.write(mdtext)
|