and other representation of a page at the same link.
Tree does not have an iterator, hence the link set will not currently work.
The Page object will do conversion, and templating, preparing menues
as all that work is language dependant. Link matches sitemap.txt entries
and matches the Directory object.
import argparse
import shutil
import pygraphviz as pgv
import argparse
import shutil
import pygraphviz as pgv
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
return set(self._tree)
class Page():
return set(self._tree)
class Page():
+ """Class representing a version of a webpage"""
+ def __init__(self,page):
+ self._file = page[1]
+ self._lang = page[0]
+ self._doc = None
+ self._resources = []
+ self._title = None
+ self._menu = None
+ self._rendered_article = None
+
+class Link():
"""Class representing a webpage on the site"""
def __init__(self,link):
self._link = link
"""Class representing a webpage on the site"""
def __init__(self,link):
self._link = link
- self._resources = []
- self._script = 0
+ # find the representations of the link.
+ self._pages = []
+ path = link
+ if self._link[-1] == '/':
+ path = path+'index'
+ lang = self._scan_languages(path)
+ for l in lang:
+ self._pages.append(Page(l))
+
+ def _scan_languages(self,path):
+ lang = []
+ for l in glob.glob('.'+path+'*'):
+ ls = l.split('.')
+ if len(ls) > 3 and ls[3] == 'xml':
+ lang.append((ls[2],l))
+ return lang
def link(self):
return self._link
def link(self):
return self._link
"""Class keeping the internal site structure"""
def __init__(self):
self._file = 'sitemap.txt'
"""Class keeping the internal site structure"""
def __init__(self):
self._file = 'sitemap.txt'
- def add_page(self, link):
- page = Page(link)
- self._pages.append(page)
+ def add_link(self, link):
tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link))
tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link))
- self._tree.add(tokens,page)
+ self._tree.add(tokens,Link(link))
sml = f.read().split()
f.close()
for line in sml:
sml = f.read().split()
f.close()
for line in sml:
except IOError, what_error:
print 'INFO: Could not read sitemap.txt - one will be created'
def set(self):
except IOError, what_error:
print 'INFO: Could not read sitemap.txt - one will be created'
def set(self):
- return set(page.link() for page in self._pages)
-
- def pages(self):
- return self._pages
+ return set(link.link() for link in self._tree)
def graph(self):
self._tree.graph()
def graph(self):
self._tree.graph()