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.getAllpostUpdateDates = 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 postUpdateDates = []; var _log = typeof hexo !== 'undefined' ? hexo.log : console; var sitemapPostsList = []; /** * build post-sitemap.xml * @param hexo */ function yoastSeoSitemapPosts(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(); postUpdateDates.push(lastmod); var info = { loc: data.permalink, lastmod: lastmod, changefreq: 'weekly', priority: '0.8' }; sitemapPostsList.push(info); })]; case 1: _a.sent(); destSitemap = (0, path_1.join)(hexo.public_dir, 'post-sitemap.xml'); (0, sbg_utility_1.writefile)(destSitemap, (0, xmlbuilder2_1.create)({ urlset: { url: sitemapPostsList } }).end({ prettyPrint: true })); _log.info('post sitemap saved', destSitemap); return [2 /*return*/]; } }); }); } exports.default = yoastSeoSitemapPosts; /** * get all post updated dates * @returns */ function getAllpostUpdateDates() { return postUpdateDates; } exports.getAllpostUpdateDates = getAllpostUpdateDates; //# sourceMappingURL=posts.js.map