123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/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))
|