Skip to content

Commit b627b42

Browse files
committed
Autogenerate code blocks using Cog.
1 parent 7f4d03c commit b627b42

3 files changed

Lines changed: 234 additions & 173 deletions

File tree

build

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
#!/usr/bin/env python
22

3+
import re
34
import os
45
import sys
56
import codecs
67
import markdown
8+
from cStringIO import StringIO
9+
from cogapp import Cog
710
from jinja2 import Template
811

912
from jinja2 import Environment, FileSystemLoader
@@ -17,7 +20,27 @@ template = env.get_template('body.tmpl')
1720

1821
input_file = codecs.open("tutorial.md", mode="r", encoding="utf-8")
1922
text = input_file.read()
20-
body = markdown.markdown(text, extensions=['toc'])
23+
24+
old_stdout = sys.stdout
25+
sys.stdout = rstdout = StringIO()
26+
27+
cog = Cog()
28+
29+
cog.processOneFile('tutorial.md')
30+
sys.stdout = old_stdout
31+
32+
cogged = rstdout.getvalue()
33+
34+
start_code = """<pre><code class="python">"""
35+
end_code = """</pre></code>"""
36+
37+
r1 = re.sub('\[\[\[end\]\]\]', end_code, cogged)
38+
r2 = re.sub(r'\[\[\[cog',start_code, r1)
39+
r3 = re.sub(r'\]\]\]',end_code + '\n' + start_code, r2)
40+
41+
rendered_code = r3
42+
43+
body = markdown.markdown(rendered_code, extensions=['toc'])
2144

2245
with open(OUTPUT, 'w+') as f:
2346
f.write(template.render(body=body))

0 commit comments

Comments
 (0)