summaryrefslogtreecommitdiff
path: root/pandoc-filter-includes.py
blob: d59e84354efb831ac72736b1f000e29a00670305 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python3

"""
Pandoc filter to process code blocks with class "include" and
replace their content with the included file

from: https://github.com/simonlau/pandocfilters
"""

from pandocfilters import toJSONFilter, CodeBlock


def code_include(key, value, format, meta):
    if key == 'CodeBlock':
        [[ident, classes, namevals], code] = value
        for nameval in namevals:
            if nameval[0] == 'include':
                with open(nameval[1], 'rb') as content_file:
                    content = content_file.read()
                    content.decode('utf-8')
                return CodeBlock([ident, classes, namevals], content)

if __name__ == "__main__":
    toJSONFilter(code_include)