X-Git-Url: https://source.tree.se/git?p=treecutter.git;a=blobdiff_plain;f=treecutter%2Fsitemap.py;h=0ecefe4278efae22c581d702bb7c513630e43700;hp=24b53fe5b4ab3bd84d65caca16cd1e1e07db54a6;hb=521ca183bb031c954d2f014f12d4f483e9d2cbbd;hpb=a0a4fb1d0a08072c8567cf35d6af93f9f1f66431 diff --git a/treecutter/sitemap.py b/treecutter/sitemap.py index 24b53fe..0ecefe4 100644 --- a/treecutter/sitemap.py +++ b/treecutter/sitemap.py @@ -1,5 +1,6 @@ #!/usr/bin/python import os +import codecs import re import shutil import gettext @@ -30,17 +31,18 @@ class Sitemap(): # representing the text on the site. # A link can have several pages in different languages. def add_link(self, link): - tokens = filter(None,re.split(r'(^/[\w-]*/|[\w-]*/)',link)) + tokens = filter(None,re.split(r'(^/[\w:-]*$|^/[\w:-]*/|[\w:-]*/)',link,flags=re.UNICODE)) self._tree.add(tokens,Link(link)) def write_map(self): - f = open(self._file,'w') - f.write('\n'.join(link.link() for link in self._tree)) + f = codecs.open(self._file,'w','utf-8') + s = '\n'.join(link.link() for link in self._tree) + f.write(s) f.close() def read_map(self): try: - f = open(self._file) + f = codecs.open(self._file, 'r', 'utf-8') sml = f.read().split() f.close() for line in sml: @@ -113,10 +115,10 @@ class Sitemap(): ln = self._isocode.xpath(isoxml)[0].get('name') if lang != 'en': ln = self._tranlang[lang].gettext(ln) - p = link.link() - if p[-1] == '/': - p = p +'index' - p = p+'.'+l + p = unicode(link.link()) + if p[-1] == u'/': + p = p +u'index' + p = p+u'.'+l li = html.li(html.a(ln.decode('utf-8'), href=self._subdir+p,hreflang=l)) menu.append(li)