# coding=UTF-8 from __future__ import print_function import json, sys import os.path def readin(path, func=bytes, orelse=None): if os.path.exists(path): with open(path, 'rb') as fin: return func(fin.read()) else: return orelse if __name__ == '__main__': header_bin = readin('src/header.md') footer_bin = readin('src/footer.md') for lab_name in ('lab'+str(x) for x in xrange(7, start=1)): dist_lp = 'dist/' + lab_name + '/' src_md = 'src/' + lab_name + '.md' if not os.path.exists(src_md): print('Aborting, no src file') sys.exit() # Make directories os.system('mkdir -p '+dist_lp) # Load data data = readin('src/'+lab_name+'.json', json.load, orelse=[{}]) # Load text lab = readin(src_md, lambda x: x.decode('utf8')) # Swap placholders for ex_no, d in enumerate(data, start=1): plab = lab d['lp'] = unicode(ex_no) for k, v in d.iteritems(): plab = plab.replace(u'$%s$' % (k, ), v) with open(dist_lp+'%s.md' % (ex_no, ), 'wb') as labout: labout.write(header_bin) labout.write(plab.encode('utf8')) labout.write(footer_bin) os.system(('pandoc %s%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no))