|
@@ -0,0 +1,41 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+from argparse import ArgumentParser
|
|
|
+from tempfile import mktemp
|
|
|
+from subprocess import call
|
|
|
+from sys import exit
|
|
|
+from os import remove
|
|
|
+from os.path import split, splitext
|
|
|
+
|
|
|
+
|
|
|
+def main(source_file, language, title, output, author):
|
|
|
+ with open(source_file) as f:
|
|
|
+ source = f.read()
|
|
|
+ tmp = mktemp(suffix='.md')
|
|
|
+ if output is None:
|
|
|
+ output = splitext(split(source_file)[1])[0]+'.pdf'
|
|
|
+ with open(tmp, 'w') as f:
|
|
|
+ f.write(f'''---
|
|
|
+title: {title}
|
|
|
+author: {author}
|
|
|
+geometry: margin=2cm
|
|
|
+---
|
|
|
+
|
|
|
+```{language}
|
|
|
+{source}
|
|
|
+```
|
|
|
+ ''')
|
|
|
+ retcode = call(['pandoc', '-o', output, tmp])
|
|
|
+ remove(tmp)
|
|
|
+ return retcode
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ parser = ArgumentParser()
|
|
|
+ parser.add_argument('source_file')
|
|
|
+ parser.add_argument('-l', '--language', default='python')
|
|
|
+ parser.add_argument('-t', '--title', default='')
|
|
|
+ parser.add_argument('-o', '--output', default=None)
|
|
|
+ parser.add_argument('-a', '--author', default='')
|
|
|
+
|
|
|
+ args = parser.parse_args()
|
|
|
+ exit(main(args.source_file, args.language, args.title, args.output, args.author))
|