## 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.