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
JavaScript
;
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