Charles Childers


blog | parable | retro | ios apps | fountain pens


Parable: Sources in Markdown

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.