def run(self):
"""Render templates"""
ifn = self.ifn
ofn = self.ofn
css = self.load_theme(self.theme)
fonts = self.load_fonts()
tmplenv = Environment(loader=FileSystemLoader(self.tmplpath))
slide_tmpl = tmplenv.get_template('index.tmpl')
if not os.path.splitext(ifn)[1] in self.mdexts:
raise IOError("invalid Markdown extension")
with codecs.open(ifn, 'r', encoding='utf-8') as filehandle:
content = markdown(filehandle.read(),
extensions=['markdown.extensions.fenced_code',
'markdown.extensions.tables',
'markdown.extensions.codehilite'])
hlcss = HtmlFormatter().get_style_defs('.codehilite')
content = content.split('<hr />')
title = '{0} ({1})'.format(os.path.splitext(ifn)[0],
datetime.now().strftime('%B %d, %Y'))
buf = slide_tmpl.render(title=title,
css=css,
hlcss=hlcss,
content=enumerate(content),
fonts=fonts)
with codecs.open(ofn, 'w', encoding='utf-8',
errors='xmlcharrefreplace') as filehandle:
filehandle.write(buf)
评论列表
文章目录