projects
/
treecutter.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
56116d9
)
Adding functionality to publish linked documents. link xlink:href and imagedata fileref.
author
Fredrik Unger
<fred@tree.se>
Mon, 21 Mar 2011 23:04:41 +0000
(
00:04
+0100)
committer
Fredrik Unger
<fred@tree.se>
Mon, 21 Mar 2011 23:04:41 +0000
(
00:04
+0100)
src/tree-cutter.py
patch
|
blob
|
history
diff --git
a/src/tree-cutter.py
b/src/tree-cutter.py
index 696c00aefe2d9caf7c2574b086d1cb822ee4be45..37ee80134b4a90f6a2ca3646479eff84e2faf170 100755
(executable)
--- a/
src/tree-cutter.py
+++ b/
src/tree-cutter.py
@@
-8,6
+8,7
@@
import tempfile
import errno
import time
import argparse
import errno
import time
import argparse
+import shutil
from amara import bindery
from amara.xslt import transform
from Cheetah.Template import Template
from amara import bindery
from amara.xslt import transform
from Cheetah.Template import Template
@@
-56,10
+57,13
@@
def generateSitemap():
xfile = os.path.join(dirname,filename)
doc = bindery.parse(xfile,
prefixes={u'db': u'http://docbook.org/ns/docbook',
xfile = os.path.join(dirname,filename)
doc = bindery.parse(xfile,
prefixes={u'db': u'http://docbook.org/ns/docbook',
- u'xi': u'http://www.w3.org/2001/XInclude'})
+ u'xi': u'http://www.w3.org/2001/XInclude',
+ u'xl': u'http://www.w3.org/1999/xlink'})
title = doc.xml_select(u'/db:article/db:info/db:title')
menu = doc.xml_select(u'/db:article/db:info/db:titleabbrev')
code = doc.xml_select(u"//xi:include[@parse='text']")
title = doc.xml_select(u'/db:article/db:info/db:title')
menu = doc.xml_select(u'/db:article/db:info/db:titleabbrev')
code = doc.xml_select(u"//xi:include[@parse='text']")
+ resource = doc.xml_select(u"//db:link[@xl:href]")
+ image = doc.xml_select(u"//db:imagedata[@fileref]")
exe = 0
for c in code:
(p, ext) = os.path.splitext(c.href)
exe = 0
for c in code:
(p, ext) = os.path.splitext(c.href)
@@
-71,12
+75,22
@@
def generateSitemap():
base = xfile.split('.')[1]
link = base.replace('index','')
level = len(filter(None,re.split(r'(/\w*/)',link)))
base = xfile.split('.')[1]
link = base.replace('index','')
level = len(filter(None,re.split(r'(/\w*/)',link)))
+ res = []
+ for r in resource:
+ rf = os.path.join(dirname,r.href)
+ if os.path.isfile(rf):
+ res.append(rf)
+ for i in image:
+ im = os.path.join(dirname,i.fileref)
+ if os.path.isfile(im):
+ res.append(im)
page = dict(title=unicode(doc.article.info.title),
menu=unicode(doc.article.info.titleabbrev),
output=os.path.join(dirname,
filename.replace('xml','html')),
exe=exe,
file=xfile,
page = dict(title=unicode(doc.article.info.title),
menu=unicode(doc.article.info.titleabbrev),
output=os.path.join(dirname,
filename.replace('xml','html')),
exe=exe,
file=xfile,
+ res=res,
level=level)
for l in sitemap:
if l['link'] == link:
level=level)
for l in sitemap:
if l['link'] == link:
@@
-187,7
+201,9
@@
def writeToTemplate(page,doc,sitemap):
out = open(outfile, 'w')
out.write(str(template))
out.close()
out = open(outfile, 'w')
out.write(str(template))
out.close()
-
+ for r in page['res']:
+ mkdir_p(os.path.dirname(tmptarget+r))
+ shutil.copyfile(r, tmptarget+r)
sitemap = generateSitemap()
tmptarget = tempfile.mkdtemp()+'/'
for page in sitemap:
sitemap = generateSitemap()
tmptarget = tempfile.mkdtemp()+'/'
for page in sitemap: