Mercurial > wikked
changeset 24:8a83b0e91633
The wiki `fs` only scans known file extensions.
Those file extensions are provided by the registered formatters.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 04 Jan 2013 16:02:46 -0800 |
parents | 69c34f45c6dd |
children | 161a0f534201 |
files | wikked/fs.py wikked/wiki.py |
diffstat | 2 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/wikked/fs.py Fri Jan 04 16:01:55 2013 -0800 +++ b/wikked/fs.py Fri Jan 04 16:02:46 2013 -0800 @@ -2,6 +2,7 @@ import os.path import re import string +import codecs class PageNotFoundError(Exception): @@ -19,6 +20,7 @@ def __init__(self, root): self.root = root self.excluded = [] + self.page_extensions = None def getPageInfos(self, subdir=None): basepath = self.root @@ -43,7 +45,7 @@ def getPage(self, url): path = self.getPhysicalPagePath(url) - with open(path, 'r') as f: + with codecs.open(path, 'r', encoding='utf-8') as f: content = f.read() name = os.path.basename(path) name_split = os.path.splitext(name) @@ -68,7 +70,7 @@ def _getPageInfo(self, path): rel_path = os.path.relpath(path, self.root) rel_path_split = os.path.splitext(rel_path) - if rel_path_split[1] == '': + if self.page_extensions is not None and rel_path_split[1] not in self.page_extensions: return None url = re.sub(r'[^A-Za-z0-9_\.\-\(\)/]+', '-', rel_path_split[0].lower()) return {
--- a/wikked/wiki.py Fri Jan 04 16:01:55 2013 -0800 +++ b/wikked/wiki.py Fri Jan 04 16:02:46 2013 -0800 @@ -3,7 +3,7 @@ import re import time import logging -from itertools import chain +import itertools from ConfigParser import SafeConfigParser import markdown from fs import FileSystem @@ -229,6 +229,7 @@ markdown.markdown: [ 'md', 'mdown', 'markdown' ], self._passthrough: [ 'txt', 'text', 'html' ] } + self.fs.page_extensions = list(set(itertools.chain(*self.formatters.itervalues()))) if self.index is not None: self.index.update(self.getPages())