hexo-tag-mmedia-0.x
Version:
A media tag for Hexo
48 lines (43 loc) • 1.46 kB
JavaScript
const BaseTag = require("./base"),
Constant = require("../constant"),
extractOptionValue = require("../util").extractOptionValue,
throwError = require("../util").throwError,
APLAYER_TAG_OPTION = Constant.APLAYER_TAG_OPTION;
class AplayerListTag extends BaseTag {
constructor(hexo, args) {
super(hexo, args);
this.aplayerConfig = this.config.get("aplayer");
this.settings = this.parse(args);
}
parse(options) {
let settings = Object.assign(
{
narrow: false,
autoplay: false,
showlrc: 0,
},
this.aplayerConfig.default,
JSON.parse(options)
);
settings.music.forEach((info) => {
info.url = info.url;
info.pic = info.pic ? info.pic : "";
});
return settings;
}
generate() {
const settings = JSON.stringify(this.settings);
return `
<link rel="stylesheet" href="${this.aplayerConfig.style_cdn}">
<script src="${this.aplayerConfig.cdn}"></script>
<div id="${this.tagId}" style="margin-bottom: 20px; width: ${width}"></div>
<script>
var options = ${settings};
options.element = document.getElementById("${this.tagId}");
var ap_${this.mmediaId} = new APlayer(options);
window.aplayers || (window.aplayers = []);
window.aplayers.push(ap_${this.mmediaId});
</script>`;
}
}
module.exports = AplayerListTag;