Skip to content

Commit 2b05f8f

Browse files
committedOct 23, 2016
Adding path handler. Setting permalink.
1 parent 45188b4 commit 2b05f8f

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed
 

‎v7/errorpages/errorpages.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,15 @@ class CreateErrorPages(Task):
9797
511: 'Network Authentication Required',
9898
}
9999

100-
def prepare_error_page(self, destination, lang, http_error_code, template):
100+
def _error_page_path(self, name, lang):
101+
return [self.site.config['TRANSLATIONS'][lang], self.output_pattern.format(code=name, lang=lang)]
102+
103+
def set_site(self, site):
104+
super(CreateErrorPages, self).set_site(site)
105+
self.output_pattern = self.site.config.get('HTTP_ERROR_PAGE_OUTPUT_PATTERN', '{code}.html')
106+
self.site.register_path_handler('errorpage', self._error_page_path)
107+
108+
def _prepare_error_page(self, destination, lang, http_error_code, template):
101109
http_error_message = self.http_status_codes.get(http_error_code)
102110

103111
title = self.site.MESSAGES[lang].get('http-error-code-{0}'.format(http_error_code))
@@ -107,6 +115,7 @@ def prepare_error_page(self, destination, lang, http_error_code, template):
107115
context = {}
108116
context['http_error_code'] = http_error_code
109117
context['http_error_message'] = http_error_message
118+
context['permalink'] = self.site.link('errorpage', http_error_code, lang)
110119
if title is not None:
111120
context['title'] = title
112121

@@ -121,10 +130,9 @@ def prepare_error_page(self, destination, lang, http_error_code, template):
121130
def gen_tasks(self):
122131
yield self.group_task()
123132

124-
output_pattern = self.site.config.get('HTTP_ERROR_PAGE_OUTPUT_PATTERN', '{code}.html')
125133
template_pattern = self.site.config.get('HTTP_ERROR_PAGE_TEMPLATE_PATTERN', '{code}.tmpl')
126134

127135
for error in self.site.config.get('CREATE_HTTP_ERROR_PAGES', []):
128136
for lang in self.site.config['TRANSLATIONS'].keys():
129-
destination = os.path.join(self.site.config['OUTPUT_FOLDER'], self.site.config['TRANSLATIONS'][lang], output_pattern.format(code=error, lang=lang))
130-
yield self.prepare_error_page(destination, lang, error, template_pattern.format(code=error, lang=lang))
137+
destination = os.path.normpath(os.path.join(self.site.config['OUTPUT_FOLDER'], self.site.path('errorpage', error, lang)))
138+
yield self._prepare_error_page(destination, lang, error, template_pattern.format(code=error, lang=lang))

0 commit comments

Comments
 (0)
Failed to load comments.