feat: 支持abcjs乐谱渲染

- 添加相关可配置选项
 - 添加渲染与组件注册相关脚本
 - 添加默认cdn配置
This commit is contained in:
LittleNyima
2023-03-28 14:14:15 +08:00
parent 63dc605794
commit b34eeb0425
5 changed files with 61 additions and 0 deletions

View File

@@ -59,3 +59,12 @@ div
if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv
script(async data-pjax src= theme.asset.busuanzi || '//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js')
if theme.abcjs.enable
if theme.abcjs.per_page
if is_post() || is_page()
script(src=url_for(theme.asset.abcjs_basic_js))
include ./third-party/abcjs.pug
else if page.abcjs
script(src=url_for(theme.asset.abcjs_basic_js))
include ./third-party/abcjs.pug

18
layout/includes/third-party/abcjs.pug vendored Normal file
View File

@@ -0,0 +1,18 @@
script.
function abcjsInit() {
function abcjsFn() {
for (let abcContainer of document.getElementsByClassName("abc-music-sheet")) {
ABCJS.renderAbc(abcContainer, abcContainer.innerHTML, {responsive: 'resize'});
}
}
if (typeof ABCJS === 'object') {
abcjsFn();
} else {
getScript('!{url_for(theme.asset.abcjs_basic_js)}')
.then(() => {
abcjsFn();
});
}
}
document.addEventListener('DOMContentLoaded', abcjsInit);