diff options
Diffstat (limited to 'generate.py')
-rwxr-xr-x | generate.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/generate.py b/generate.py index b18e1c2..a139f19 100755 --- a/generate.py +++ b/generate.py @@ -2,14 +2,14 @@ from collections import namedtuple, Counter from datetime import date -from functools import partial from glob import glob from itertools import chain -from jinja2 import Environment, FileSystemLoader, Markup +from jinja2 import Environment, FileSystemLoader from markdown import markdown +from markupsafe import Markup from operator import attrgetter from subprocess import call as run -from sys import argv +from pygments.formatters import HtmlFormatter import meta import os @@ -25,8 +25,7 @@ ERRORS = { 504: "Gateway Timeout", } -md = lambda s: Markup(markdown(s, extensions=['markdown.extensions.fenced_code', - 'markdown.extensions.codehilite'])) +md = lambda s: Markup(markdown(s, extensions=['fenced_code', 'codehilite', 'toc'])) File = namedtuple('File', 'content date slug ext') def parse(path, has_date=False): @@ -119,6 +118,7 @@ def main(argv=['generate.py']): env = Environment(loader=FileSystemLoader('./templates'), autoescape=True) env.globals['site'] = {'baseurl': baseurl} env.filters['datefmt'] = lambda d, f='%Y-%m-%d': d.strftime(f) + env.filters['md'] = md posts = glob(os.path.join(CONTENT, 'posts', '*')) posts = [p for p in posts if not os.path.split(p)[1].startswith('_')] @@ -129,7 +129,7 @@ def main(argv=['generate.py']): page = { 'title': 'Blog', 'description': 'New posts will appear chronologically on this page.', - 'keywords': ', '.join(KWORDS), + 'keywords': ', '.join(KWORDS | set(tags)), 'tags': tags, 'posts': posts, } @@ -171,7 +171,10 @@ def main(argv=['generate.py']): } output('error/{}.html'.format(code), env.get_template('error.html').render(page=page)) - run(['scss', os.path.join(CONTENT, 'style.scss'), os.path.join(OUTPUT, 'style.css')]) + with open(os.path.join(OUTPUT, 'style.css'), 'w') as f: + with open(os.path.join(CONTENT, 'style.css')) as css: + f.write(css.read()) + f.write(HtmlFormatter().get_style_defs('.codehilite')) run(['cp', '-r', os.path.join(CONTENT, 'images'), OUTPUT]) if __name__ == '__main__': |