Mercurial > hatta-flask
changeset 2409:d41182b8c819
Cleanup of the wiki class
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 18 May 2013 14:42:59 +0200 |
| parents | abc4bc7f7433 |
| children | e1f2066a923c |
| files | hatta/wiki.py |
| diffstat | 1 files changed, 68 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/hatta/wiki.py Sat May 18 14:10:40 2013 +0200 +++ b/hatta/wiki.py Sat May 18 14:42:59 2013 +0200 @@ -33,6 +33,35 @@ regex = '.*' +def init_gettext(language): + if language is not None: + try: + translation = gettext.translation( + 'hatta', + 'locale', + languages=[language], + ) + except IOError: + translation = gettext.translation( + 'hatta', + fallback=True, + languages=[language], + ) + else: + translation = gettext.translation('hatta', fallback=True) + return translation + + +def init_template(translation): + template_env = jinja2.Environment( + extensions=['jinja2.ext.i18n'], + loader=jinja2.PackageLoader('hatta', 'templates'), + ) + template_env.autoescape = True + template_env.install_gettext_translations(translation, True) + return template_env + + class Wiki(object): """ The main class of the wiki, handling initialization of the whole @@ -50,26 +79,12 @@ self.dead = False self.config = config - self.language = config.get('language', None) - if self.language is not None: - try: - translation = gettext.translation('hatta', 'locale', - languages=[self.language]) - - except IOError: - translation = gettext.translation('hatta', fallback=True, - languages=[self.language]) - else: - translation = gettext.translation('hatta', fallback=True) + self.language = config.get('language') + translation = init_gettext(self.language) self.gettext = translation.ugettext - self.template_env = jinja2.Environment( - extensions=['jinja2.ext.i18n'], - loader=jinja2.PackageLoader('hatta', 'templates'), - ) - self.template_env.autoescape = True - self.template_env.install_gettext_translations(translation, True) + self.template_env = init_template(translation) self.path = os.path.abspath(config.get('pages_path', 'docs')) - self.repo_path = config.get('repo_path', None) + self.repo_path = config.get('repo_path') self.page_charset = config.get('page_charset', 'utf-8') self.menu_page = self.config.get('menu_page', u'Menu') self.front_page = self.config.get('front_page', u'Home') @@ -77,46 +92,56 @@ self.locked_page = self.config.get('locked_page', u'Locked') self.site_name = self.config.get('site_name', u'Hatta Wiki') self.read_only = self.config.get_bool('read_only', False) - self.icon_page = self.config.get('icon_page', None) + self.icon_page = self.config.get('icon_page') self.alias_page = self.config.get('alias_page', 'Alias') self.help_page = self.config.get('help_page', 'Help') - self.math_url = self.config.get('math_url', - 'http://www.mathtran.org/cgi-bin/mathtran?tex=') + self.math_url = self.config.get( + 'math_url', + 'http://www.mathtran.org/cgi-bin/mathtran?tex=', + ) self.pygments_style = self.config.get('pygments_style', 'tango') + self.extension = self.config.get('extension') + self.unix_eol = self.config.get_bool('unix_eol', False) + self.recaptcha_public_key = self.config.get('recaptcha_public_key') + self.recaptcha_private_key = self.config.get('recaptcha_private_key') self.subdirectories = self.config.get_bool('subdirectories', False) - self.extension = self.config.get('extension', None) - self.unix_eol = self.config.get_bool('unix_eol', False) - self.recaptcha_public_key = self.config.get( - 'recaptcha_public_key', None) - self.recaptcha_private_key = self.config.get( - 'recaptcha_private_key', None) if self.subdirectories: - self.storage = hatta.storage.WikiSubdirectoryStorage(self.path, - self.page_charset, self.gettext, self.unix_eol, self.extension, - self.repo_path) - else: - self.storage = self.storage_class(self.path, self.page_charset, - self.gettext, self.unix_eol, self.extension, - self.repo_path) + self.storage_class = hatta.storage.WikiSubdirectoryStorage + self.storage = self.storage_class( + self.path, + self.page_charset, + self.gettext, + self.unix_eol, + self.extension, + self.repo_path, + ) self.repo_path = self.storage.repo_path - self.cache = os.path.abspath(config.get('cache_path', - os.path.join(self.repo_path, '.hg', 'hatta', 'cache'))) + self.cache = os.path.abspath( + config.get( + 'cache_path', + os.path.join(self.repo_path, '.hg', 'hatta', 'cache'), + ) + ) self.index = self.index_class(self.cache, self.language, self.storage) self.index.update(self) self.url_rules = hatta.views.URL.rules(self) - self.url_map = werkzeug.routing.Map(self.url_rules, converters={ + self.url_converters = { 'title': WikiTitleConverter, 'all': WikiAllConverter, - }) + } + self.url_map = werkzeug.routing.Map( + self.url_rules, + converters=self.url_converters, + ) def add_url_rule(self, rule): """Let plugins add additional url rules.""" self.url_rules.append(rule) - self.url_map = werkzeug.routing.Map(self.url_rules, converters={ - 'title': WikiTitleConverter, - 'all': WikiAllConverter, - }) + self.url_map = werkzeug.routing.Map( + self.url_rules, + converters=self.url_converters, + ) @werkzeug.responder def application(self, environ, start): @@ -129,3 +154,4 @@ return endpoint(request, **values) except werkzeug.exceptions.HTTPException as err: return err +
