UNPKG

@axway/api-builder-runtime

Version:

API Builder Runtime

39 lines (33 loc) 939 B
/** * @class HtmlRendererEngine * Renderer engine for HTML templates. * @extends APIBuilderRendererEngine * @pseudo */ /** * @property skipread * @hide */ var util = require('./util'), fs = require('fs'); exports.extension = 'html'; function templatize(content, data) { if (data) { // support token replacement in generic HTML files var re = new RegExp('\\${(' + Object.keys(data).join('|') + ')}', 'g'); content = content.replace(re, function (key) { return data[key.substring(2, key.length - 1)] || key; }); } return content; } function render(app, filename, opts) { filename = util.resolveLayoutFilename(app, filename); return templatize(fs.readFileSync(filename).toString(), opts); } exports.createRenderer = function (content, filename, app) { return function (filePath, opts, callback) { var tpl = templatize(content, opts); util.render(app, tpl, opts, exports.extension, render, callback); }; };