page-renderer.js 897 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const _ejs = require('ejs');
  2. // render template using given data
  3. module.exports = function renderTemplate(template, css, data={}){
  4. // pagetitle set ?
  5. if (!data.pagetitle){
  6. // use default title
  7. data.pagetitle = `We've got some trouble | ${data.code} - ${data.title}`;
  8. }
  9. // assign css
  10. data.inlinecss = css;
  11. // render template
  12. return _ejs.render(template, data, {
  13. // wrap all variables into "vars" object
  14. strict: true,
  15. _with: false,
  16. localsName: 'vars',
  17. // use custom escape function to handle linebreaks!
  18. escape: function(text){
  19. if (!text){
  20. return '';
  21. }
  22. // apply generic escape function
  23. text = _ejs.escapeXML(text);
  24. // linebreaks
  25. text = text.replace(/\n/g, '<br />');
  26. return text;
  27. }
  28. });
  29. }