style: switching to xhtml5 and sass
[treecutter.git] / treecutter / page.py
index e8367bd8459f6072be89fb475c204acba06ca6a7..53eeb0d40baa357f18c7f76d98404b8ed1206518 100644 (file)
@@ -5,8 +5,10 @@ import tempfile
 import re
 import getpass
 import gnupg
+import codecs
 from lxml import etree
-from Cheetah.Template import Template
+#from jinja2 import Template
+import jinja2
 from pkg_resources import resource_filename, resource_listdir
 from time import time
 import treecutter.constants as const
@@ -125,11 +127,11 @@ class Page():
         tfi.write(etree.tostring(self._doc,encoding='UTF-8',pretty_print=False))
         tfi.close()
 #  cmd = ["saxon-xslt-xinclude","-o",outfile,infile,style_xslt]
-        cmd = ["xsltproc","--xinclude","--output",outfile,style+"docbook.xsl",infile]
+        cmd = ["xsltproc","--xinclude","--output",outfile,style+"docbook.xhtml5.xsl",infile]
         retcode = subprocess.call(cmd)
         if retcode:
             print 'Error: '+' '.join(cmd)+' Returncode ['+str(retcode)+']'
-        tfo = open(outfile,'r')
+        tfo = codecs.open(outfile, "r", "utf-8")
         self._rendered_article = tfo.read()
         tfo.close()
         os.remove(infile)
@@ -140,14 +142,23 @@ class Page():
         htmlmenu =  sitemap.gen_menu(self._lang,None,"menu")
         levelmenu = sitemap.gen_menu(self._lang,self,"tree")
         langmenu = sitemap.lang_menu(self._lang,self._link)
-        template = Template(file=style+'index.'+self._lang+'.html.tmpl',
-                            searchList=[{'title':self._title},
-                                        {'menu':htmlmenu},
-                                        {'article':self._rendered_article},
-                                        {'levelmenu':levelmenu},
-                                        {'langmenu':langmenu}])
-        outfile = tdir+'html'.join(self._file.rsplit('xml',1))
+        article = self._rendered_article
+        templateLoader = jinja2.FileSystemLoader( searchpath="/" )
+        templateEnv = jinja2.Environment( loader=templateLoader )
+
+        templateVars = {'title':self._title,
+                        'menu':htmlmenu,
+                        'article':article,
+                        'levelmenu':levelmenu,
+                        'langmen':langmenu}
+
+        s = unicode(style, "utf-8")
+        t = s+'index.'+self._lang+'.xhtml.tmpl'
+        template = templateEnv.get_template( t )
+        templateout = template.render( templateVars )
+
+        outfile = tdir+'xhtml'.join(self._file.rsplit('xml',1))
         mkdir_p(os.path.dirname(outfile))
-        out = open(outfile, 'w')
-        out.write(str(template))
+        out = codecs.open(outfile, 'w', 'utf-8')
+        out.write(templateout)
         out.close()