- for r in self._doc.xpath(u"//db:link[@xlink:href]",namespaces=const.XPATH):
- rf = os.path.join(dirname,r.get(const.XLINK+'href'))
- if os.path.isfile(rf):
- if r.get('security')=='encrypt':
- with open(rf, 'rb') as f:
- gpg = gnupg.GPG()
- status = gpg.encrypt_file(
- f, None, passphrase=getpass.getpass(rf+' password:'), symmetric=True,
- output=rf+'.gpg')
- r.set(const.XLINK+'href', r.get(const.XLINK+'href')+'.gpg')
- rf=rf+'.gpg'
- self._resources.append(rf)
- for i in self._doc.xpath(u"//db:imagedata[@fileref]",namespaces=const.XPATH):
- 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)
- if os.path.isfile(im):
- self._resources.append(im)
-
- def render(self, style):
-
-# xslt_root = etree.XML(open(style+"docbook.xsl", 'r').read())
-# transform = etree.XSLT(xslt_root)
-# result = etree.tostring(transform(xml_root))
-
- cwd = os.getcwd()
- dirname = os.path.dirname(self._file)
- os.chdir(dirname)
- infile = os.path.basename(tempfile.mktemp())
- outfile = tempfile.mktemp()
- tfi = open(infile,'w')
- 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.xhtml5.xsl",infile]
- retcode = subprocess.call(cmd)
- if retcode:
- print 'Error: '+' '.join(cmd)+' Returncode ['+str(retcode)+']'
- tfo = codecs.open(outfile, "r", "utf-8")
- self._rendered_article = tfo.read()
- tfo.close()
- os.remove(infile)
- os.remove(outfile)
- os.chdir(cwd)