|
@@ -11,7 +11,9 @@ async function createDispatcher(options={}){
|
|
|
template: options.template || _path.join(__dirname, '../assets/template.ejs'),
|
|
|
css: options.css || _path.join(__dirname, '../assets/layout.css'),
|
|
|
lang: options.lang || 'en_US',
|
|
|
- footer: options.footer || null
|
|
|
+ footer: options.footer || null,
|
|
|
+ error: options.error || null,
|
|
|
+ page_title: options.page_title || null
|
|
|
};
|
|
|
|
|
|
// load page template
|
|
@@ -39,6 +41,19 @@ async function createDispatcher(options={}){
|
|
|
// extract page date
|
|
|
const pageData = pages[page];
|
|
|
|
|
|
+ // set page title
|
|
|
+ let page_title = undefined;
|
|
|
+ if(opt && opt.page_title) {
|
|
|
+ page_title = opt.page_title.replace('%code%', page);
|
|
|
+ page_title = page_title.replace('%title%', pageData.title);
|
|
|
+ }
|
|
|
+
|
|
|
+ // set error
|
|
|
+ let error = 'Error '+ page
|
|
|
+ if(opt && opt.error) {
|
|
|
+ error = opt.error.replace('%code%', page);
|
|
|
+ }
|
|
|
+
|
|
|
// multiple response formats
|
|
|
switch (ctx.accepts('json', 'html', 'text')){
|
|
|
|
|
@@ -57,7 +72,10 @@ async function createDispatcher(options={}){
|
|
|
code: httpStatusCode,
|
|
|
title: pageData.title,
|
|
|
message: pageData.message,
|
|
|
- footer: opt.footer
|
|
|
+ footer: opt.footer,
|
|
|
+ lang: opt.lang.substr(0, 2),
|
|
|
+ error: error,
|
|
|
+ page_title: page_title
|
|
|
});
|
|
|
break;
|
|
|
|