[svn] jinja webpage update. (one dirty script more)
--HG--
branch : trunk
diff --git a/www/generate.py b/www/generate.py
index b68818b..6edd973 100755
--- a/www/generate.py
+++ b/www/generate.py
@@ -4,6 +4,8 @@
~~~~~~~~~~~~~~~~~~~~~~~
"""
import os
+import sys
+import re
from codecs import open
from jinja import Environment, FileSystemLoader
from jinja.filters import stringfilter
@@ -11,6 +13,11 @@
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
+_data_re = re.compile(
+ r'<!-- TITLE -->(?P<page_title>.*?)<!-- ENDTITLE -->.*?'
+ r'<!-- TOC -->(?P<page_toc>.*?)<!-- ENDTOC -->.*?'
+ r'<!-- BODY -->(?P<page_body>.*?)<!-- ENDBODY -->(?sm)'
+)
formatter = HtmlFormatter(cssclass='syntax', encoding=None, style='pastie')
@@ -30,6 +37,7 @@
yield fn
+# generate static stuff
for filename in get_files('.'):
root = './' + ''.join(['../' for _ in os.path.dirname(filename).
split(os.path.sep)[1:]])
@@ -37,11 +45,42 @@
t = env.get_template(filename)
f = open(filename[:-5] + '.html', 'w', 'utf-8')
f.write(t.render(
- file_id=filename[2:-5],
root=root
))
f.close()
+ print filename
+# generate pygments stylesheet
f = file('static/pygments.css', 'w')
f.write(formatter.get_style_defs('.syntax'))
f.close()
+
+# generate documentation
+os.system(sys.executable + ' ../docs/generate.py documentation true')
+
+# render documentation with documentation template
+tmpl = env.get_template('documentation/item.tmpl')
+
+for filename in os.listdir('documentation'):
+ if not filename.endswith('.html'):
+ continue
+ filename = 'documentation/' + filename
+ f = open(filename, 'r', 'utf-8')
+ try:
+ data = f.read()
+ finally:
+ f.close()
+ match = _data_re.search(data)
+ if match is None:
+ continue
+ data = match.groupdict()
+ data['page_toc'] = data['page_toc'].strip()
+ if data['page_toc'].count('</li') < 2:
+ data['page_toc'] = ''
+ f = open(filename, 'w', 'utf-8')
+ f.write(tmpl.render(
+ root='./../',
+ **data
+ ))
+ f.close()
+ print 'postprocessed', filename