UNPKG

meblog

Version:

A simple blog engine for personal blogging

58 lines (57 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const ConfigHolder_1 = tslib_1.__importDefault(require("../ConfigHolder")); const gulplog_1 = tslib_1.__importDefault(require("gulplog")); const PageTemplate_1 = tslib_1.__importDefault(require("../template/PageTemplate")); const PostTemplate_1 = tslib_1.__importDefault(require("../template/PostTemplate")); const TagTemplate_1 = tslib_1.__importDefault(require("../template/TagTemplate")); const GulpUtils_1 = tslib_1.__importDefault(require("../util/GulpUtils")); class TemplateRenderer extends ConfigHolder_1.default { dataSource; constructor(dataSource) { super(dataSource.config); this.dataSource = dataSource; } render(Template, locale) { const dataSource = this.dataSource; return GulpUtils_1.default.through(function (file, enc, cb) { file.locale = locale; const template = new Template(dataSource, file); gulplog_1.default.debug('Render template', template.templateName); try { const files = template.render(); files.forEach((file) => this.push(file)); cb(); } catch (e) { cb(GulpUtils_1.default.error(e)); } }); } renderTags(locale) { return this.render(TagTemplate_1.default, locale); } renderPosts(locale) { return this.render(PostTemplate_1.default, locale); } renderPages(locale) { return this.render(PageTemplate_1.default, locale); } renderSpecifiedPosts(posts) { const dataSource = this.dataSource; return GulpUtils_1.default.through(function (file, enc, cb) { const template = new PostTemplate_1.default(dataSource, file); gulplog_1.default.debug('Render template', template.templateName); try { const files = template.renderPosts(posts); files.forEach((file) => this.push(file)); cb(); } catch (e) { cb(GulpUtils_1.default.error(e)); } }); } } exports.default = TemplateRenderer;