blob: b68818b3b689745f93034955ce89f7f35f3167c6 [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
Armin Ronacher34a18bf2007-03-11 15:09:44 +010017env = Environment('<%', '%>', '<%=', '%>', loader=FileSystemLoader('.',
18 cache_folder='/tmp'), trim_blocks=True)
Armin Ronacher0a1742e2007-03-03 21:58:44 +010019env.filters['pygmentize'] = stringfilter(lambda v, l:
20 highlight(v.strip(), get_lexer_by_name(l), formatter))
21
22
23def get_files(folder):
24 for fn in os.listdir(folder):
25 fn = os.path.join(folder, fn)
26 if os.path.isdir(fn):
27 for item in get_files(fn):
28 yield item
29 elif fn.endswith('.tmpl'):
30 yield fn
31
32
33for filename in get_files('.'):
34 root = './' + ''.join(['../' for _ in os.path.dirname(filename).
35 split(os.path.sep)[1:]])
36
37 t = env.get_template(filename)
38 f = open(filename[:-5] + '.html', 'w', 'utf-8')
39 f.write(t.render(
40 file_id=filename[2:-5],
41 root=root
42 ))
43 f.close()
44
45f = file('static/pygments.css', 'w')
46f.write(formatter.get_style_defs('.syntax'))
47f.close()