summaryrefslogtreecommitdiffstats
path: root/generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'generate.py')
-rwxr-xr-xgenerate.py17
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__':