UNPKG

sbg-api

Version:

Pre-processing all source posts before rendering from hexo. Useful for low-end devices to prevent using large number of hexo plugins.

59 lines 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllpageUpdateDates = void 0; var tslib_1 = require("tslib"); var bluebird_1 = tslib_1.__importDefault(require("bluebird")); var moment_timezone_1 = tslib_1.__importDefault(require("moment-timezone")); var path_1 = require("path"); var sbg_utility_1 = require("sbg-utility"); var xmlbuilder2_1 = require("xmlbuilder2"); var pageUpdateDates = []; var _log = typeof hexo !== 'undefined' ? hexo.log : console; var sitemapPagesList = []; /** * build page-sitemap.xml * @param hexo */ function yoastSeoSitemapPages(hexo) { return tslib_1.__awaiter(this, void 0, void 0, function () { var postArray, destSitemap; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: postArray = hexo.locals.get('posts').toArray(); return [4 /*yield*/, bluebird_1.default.all(postArray).each(function (data) { var _a; var lastmod = ((_a = data.updated) === null || _a === void 0 ? void 0 : _a.format('YYYY-MM-DDTHH:mm:ssZ')) || (0, moment_timezone_1.default)().format(); pageUpdateDates.push(lastmod); var info = { loc: data.permalink, lastmod: lastmod, changefreq: 'weekly', priority: '0.8' }; sitemapPagesList.push(info); })]; case 1: _a.sent(); destSitemap = (0, path_1.join)(hexo.public_dir, 'page-sitemap.xml'); (0, sbg_utility_1.writefile)(destSitemap, (0, xmlbuilder2_1.create)({ urlset: { url: sitemapPagesList } }).end({ prettyPrint: true })); _log.info('page sitemap saved', destSitemap); return [2 /*return*/]; } }); }); } exports.default = yoastSeoSitemapPages; /** * get all page updated dates * @returns */ function getAllpageUpdateDates() { return pageUpdateDates; } exports.getAllpageUpdateDates = getAllpageUpdateDates; //# sourceMappingURL=pages.js.map