style: switching to xhtml5 and sass
[treecutter.git] / treecutter / page.py
index b14ccdfec1a1522383e29227357de1555ae8e713..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
@@ -102,6 +104,8 @@ class Page():
             im = os.path.join(dirname,i.get('fileref'))
             if os.path.isfile(im):
                 self._resources.append(im)
+            else:
+                print "WARNING: File "+im+" is missing!"
         for i in self._doc.xpath(u"//html:form[@action]",namespaces=const.XPATH):
             pyscript = re.split('\.py',i.get('action'),1)[0]+'.py'
             im = os.path.join(dirname,pyscript)
@@ -123,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)
@@ -138,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()