@@ -97,7 +97,15 @@ class CreateErrorPages(Task):
97
97
511 : 'Network Authentication Required' ,
98
98
}
99
99
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 ):
101
109
http_error_message = self .http_status_codes .get (http_error_code )
102
110
103
111
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):
107
115
context = {}
108
116
context ['http_error_code' ] = http_error_code
109
117
context ['http_error_message' ] = http_error_message
118
+ context ['permalink' ] = self .site .link ('errorpage' , http_error_code , lang )
110
119
if title is not None :
111
120
context ['title' ] = title
112
121
@@ -121,10 +130,9 @@ def prepare_error_page(self, destination, lang, http_error_code, template):
121
130
def gen_tasks (self ):
122
131
yield self .group_task ()
123
132
124
- output_pattern = self .site .config .get ('HTTP_ERROR_PAGE_OUTPUT_PATTERN' , '{code}.html' )
125
133
template_pattern = self .site .config .get ('HTTP_ERROR_PAGE_TEMPLATE_PATTERN' , '{code}.tmpl' )
126
134
127
135
for error in self .site .config .get ('CREATE_HTTP_ERROR_PAGES' , []):
128
136
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