hexo-bangumis
Version:
91 lines (88 loc) • 5.04 kB
JavaScript
'use strict';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ejs = require('ejs');
var path = require('path');
var _require = require('./util'),
i18n = _require.i18n;
var fs = require('hexo-fs');
var log = require('hexo-log')({
debug: false,
silent: false
});
module.exports = /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(locals) {
var _config$bangumis, _config$bangumis$lazy, _config$bangumis$marg, _config$bangumis$down, _config$bangumis$imag, _config$bangumis2;
var config, root, wantWatch, watching, watched, _JSON$parse, __, contents, customPath;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
config = this.config;
if (config !== null && config !== void 0 && (_config$bangumis = config.bangumis) !== null && _config$bangumis !== void 0 && _config$bangumis.enable) {
_context.next = 3;
break;
}
return _context.abrupt("return");
case 3:
root = config.root;
if (root.endsWith('/')) {
root = root.slice(0, root.length - 1);
}
wantWatch = [];
watching = [];
watched = [];
if (!fs.existsSync(path.join(this.source_dir, '/_data/bangumis/bangumis.json'))) {
log.info('Can\'t find bangumis.json, please use "hexo bangumis -u" command to get data');
} else {
_JSON$parse = JSON.parse(fs.readFileSync(path.join(this.source_dir, '/_data/bangumis/bangumis.json')));
wantWatch = _JSON$parse.wantWatch;
watching = _JSON$parse.watching;
watched = _JSON$parse.watched;
log.info("".concat(wantWatch.length + watching.length + watched.length, " bangumis have been loaded"));
}
// eslint-disable-next-line no-underscore-dangle
__ = i18n.__(config.language);
_context.next = 12;
return ejs.renderFile(path.join(__dirname, 'templates/bangumi.ejs'), {
quote: config.bangumis.quote,
show: config.bangumis.show || 1,
loading: config.bangumis.loading,
color_meta: config.bangumis.color_meta ? "style=\"color:".concat(config.bangumis.color_meta, "\"") : '',
color: config.bangumis.color ? "style=\"color:".concat(config.bangumis.color, "\"") : '',
lazyload: (_config$bangumis$lazy = config.bangumis.lazyload) !== null && _config$bangumis$lazy !== void 0 ? _config$bangumis$lazy : true,
margin: (_config$bangumis$marg = config.bangumis.margin) !== null && _config$bangumis$marg !== void 0 ? _config$bangumis$marg : '20px',
download_image: (_config$bangumis$down = config.bangumis.download_image) !== null && _config$bangumis$down !== void 0 ? _config$bangumis$down : false,
image_level: (_config$bangumis$imag = config.bangumis.image_level) !== null && _config$bangumis$imag !== void 0 ? _config$bangumis$imag : 'c',
wantWatch: wantWatch,
watched: watched,
watching: watching,
__: __,
root: root
}, {
async: false
});
case 12:
contents = _context.sent;
customPath = config.bangumis.path;
return _context.abrupt("return", {
path: customPath || 'bangumis/index.html',
data: _objectSpread({
title: config.bangumis.title,
content: contents
}, config === null || config === void 0 || (_config$bangumis2 = config.bangumis) === null || _config$bangumis2 === void 0 ? void 0 : _config$bangumis2.extra_options),
layout: ['page', 'post']
});
case 15:
case "end":
return _context.stop();
}
}, _callee, this);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();