The *Allegory* interface for Parable now supports using Markdown for source code. This has some nice benefits for documenting things. It extracts code from two approaches: anything indented with four or more spaces and anything between fences (a series of 4 backticks, e.g, ````). This is supported at the command line, when including a file, and with libraries.
For interface implementers, here's the initial routine to grab the source lines from a Markdown file:
def extractFromMarkdown(name):
v = []
with open(name) as f:
v = f.readlines()
s = []
fence = False
for l in v:
if l.startswith(' '): s.append(l[4:])
elif fence == True and l != '````\n':
s.append(l)
elif l == '````\n' and fence == True:
fence = False
elif l == '````\n' and fence == False:
fence = True
return s
I'm strongly considering adding this to other implementations supporting loading code from a file; the ability to mix code and documentation is really pretty nice, and worth the slightly more complex loading process.