UNPKG

hexo-generator-podcasts

Version:
47 lines (46 loc) 2.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Template = void 0; var nunjucks_1 = __importDefault(require("nunjucks")); var path_1 = __importDefault(require("path")); var fs_1 = __importDefault(require("fs")); var xmlescape = require('xml-escape'); var strip_tags = require('locutus/php/strings/strip_tags'); var Explicit; (function (Explicit) { Explicit[Explicit["clean"] = 0] = "clean"; Explicit[Explicit["yes"] = 1] = "yes"; Explicit[Explicit["no"] = 2] = "no"; })(Explicit || (Explicit = {})); var Template; (function (Template) { function generateFeed(context) { var env = new nunjucks_1.default.Environment(); env.addFilter('date_to_rfc822', function (str) { return (new Date(str)).toUTCString(); }); env.addFilter('noControlChars', function (str) { return str.replace(/[\x00-\x09\x0B-\x1F\x7F]/g, ''); }); env.addFilter('uriencode', function (str) { return encodeURI(str); }); env.addFilter('xml_escape', function (str) { if (!str || str === "") return ""; return xmlescape(str); }); env.addFilter('strip_html', function (str) { if (!str || str === "") return ""; return strip_tags(str); }); env.addFilter('get_url', function (str) { if (str.indexOf("http") == -1) return context.homepage + "/" + str; return str; }); var templatePath = path_1.default.join(__dirname, "../template/feed.xml"); var compileTemplate = nunjucks_1.default.compile(fs_1.default.readFileSync(templatePath, "utf-8"), env); context.lastBuildDate = (new Date()).toUTCString(); return compileTemplate.render(context); } Template.generateFeed = generateFeed; })(Template = exports.Template || (exports.Template = {}));