blob: f8111f3fe8ec9f748323bbc0b2097b7f0f7fc6b8 [file] [log] [blame]
Armin Ronacher0a1742e2007-03-03 21:58:44 +01001#!/usr/bin/env python
2"""
3 jinja webpage generator
4 ~~~~~~~~~~~~~~~~~~~~~~~
5"""
6import os
7from codecs import open
8from jinja import Environment, FileSystemLoader
9from jinja.filters import stringfilter
10from pygments import highlight
11from pygments.lexers import get_lexer_by_name
12from pygments.formatters import HtmlFormatter
13
14
15formatter = HtmlFormatter(cssclass='syntax', encoding=None, style='pastie')
16
17env = Environment('<%', '%>', '<%=', '%>', loader=FileSystemLoader('.'), trim_blocks=True)
18env.filters['pygmentize'] = stringfilter(lambda v, l:
19 highlight(v.strip(), get_lexer_by_name(l), formatter))
20
21
22def get_files(folder):
23 for fn in os.listdir(folder):
24 fn = os.path.join(folder, fn)
25 if os.path.isdir(fn):
26 for item in get_files(fn):
27 yield item
28 elif fn.endswith('.tmpl'):
29 yield fn
30
31
32for filename in get_files('.'):
33 root = './' + ''.join(['../' for _ in os.path.dirname(filename).
34 split(os.path.sep)[1:]])
35
36 t = env.get_template(filename)
37 f = open(filename[:-5] + '.html', 'w', 'utf-8')
38 f.write(t.render(
39 file_id=filename[2:-5],
40 root=root
41 ))
42 f.close()
43
44f = file('static/pygments.css', 'w')
45f.write(formatter.get_style_defs('.syntax'))
46f.close()