mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2025-09-15 12:58:48 +08:00
breaking changes: cdn 可一鍵設置 本地文件/可單獨配置主題文件,第三方文件的 cdn
breaking changes: 移除 utterances,giscus, addtoany, busuanzi 的 cdn 配置
This commit is contained in:
parent
c1ac4a5e16
commit
ab6672429f
143
_config.yml
143
_config.yml
@ -827,88 +827,61 @@ inject:
|
||||
# Don't modify the following settings unless you know how they work
|
||||
# 非必要請不要修改
|
||||
CDN:
|
||||
# main
|
||||
main_css:
|
||||
main:
|
||||
utils:
|
||||
|
||||
# pjax
|
||||
pjax:
|
||||
|
||||
# comments
|
||||
gitalk:
|
||||
gitalk_css:
|
||||
blueimp_md5:
|
||||
valine:
|
||||
disqusjs:
|
||||
disqusjs_css:
|
||||
utterances:
|
||||
twikoo:
|
||||
waline:
|
||||
giscus:
|
||||
|
||||
# share
|
||||
addtoany:
|
||||
sharejs:
|
||||
sharejs_css:
|
||||
|
||||
# search
|
||||
local_search:
|
||||
algolia_js:
|
||||
algolia_search_v4:
|
||||
instantsearch_v4:
|
||||
|
||||
# math
|
||||
mathjax:
|
||||
katex:
|
||||
katex_copytex:
|
||||
katex_copytex_css:
|
||||
mermaid:
|
||||
|
||||
# count
|
||||
busuanzi:
|
||||
|
||||
# background effect
|
||||
canvas_ribbon:
|
||||
canvas_fluttering_ribbon:
|
||||
canvas_nest:
|
||||
|
||||
lazyload:
|
||||
instantpage:
|
||||
typed:
|
||||
pangu:
|
||||
|
||||
# photo
|
||||
fancybox_css_v4:
|
||||
fancybox_v4:
|
||||
medium_zoom:
|
||||
|
||||
# snackbar
|
||||
snackbar_css:
|
||||
snackbar:
|
||||
|
||||
# effect
|
||||
activate_power_mode:
|
||||
fireworks:
|
||||
click_heart:
|
||||
ClickShowText:
|
||||
|
||||
# fontawesome
|
||||
fontawesomeV6:
|
||||
|
||||
# Conversion between Traditional and Simplified Chinese
|
||||
translate:
|
||||
|
||||
# flickr-justified-gallery
|
||||
flickr_justified_gallery_js:
|
||||
flickr_justified_gallery_css:
|
||||
|
||||
# aplayer
|
||||
aplayer_css:
|
||||
aplayer_js:
|
||||
meting_js:
|
||||
|
||||
# Prism.js
|
||||
prismjs_js:
|
||||
prismjs_lineNumber_js:
|
||||
prismjs_autoloader:
|
||||
# The CDN provider of internal scripts (主題內部 js 的 cdn 配置)
|
||||
# option: local/jsdelivr
|
||||
# Dev version cannot choose jsdelivr (dev版的主題不能設置為 jsdelivr)
|
||||
internal_provider: local
|
||||
# The CDN provider of third party scripts (第三方 js 的 cdn 配置)
|
||||
# option: local/jsdelivr
|
||||
# when set it to local, you need to install hexo-butterfly-extjs
|
||||
third_party_provider: jsdelivr
|
||||
option:
|
||||
# main_css:
|
||||
# main:
|
||||
# utils:
|
||||
# translate:
|
||||
# local_search:
|
||||
# algolia_js:
|
||||
# algolia_search_v4:
|
||||
# instantsearch_v4:
|
||||
# pjax:
|
||||
# gitalk:
|
||||
# gitalk_css:
|
||||
# blueimp_md5:
|
||||
# valine:
|
||||
# disqusjs:
|
||||
# disqusjs_css:
|
||||
# twikoo:
|
||||
# waline:
|
||||
# sharejs:
|
||||
# sharejs_css:
|
||||
# mathjax:
|
||||
# katex:
|
||||
# katex_copytex:
|
||||
# katex_copytex_css:
|
||||
# mermaid:
|
||||
# canvas_ribbon:
|
||||
# canvas_fluttering_ribbon:
|
||||
# canvas_nest:
|
||||
# lazyload:
|
||||
# instantpage:
|
||||
# typed:
|
||||
# pangu:
|
||||
# fancybox_css_v4:
|
||||
# fancybox_v4:
|
||||
# medium_zoom:
|
||||
# snackbar_css:
|
||||
# snackbar:
|
||||
# activate_power_mode:
|
||||
# fireworks:
|
||||
# click_heart:
|
||||
# ClickShowText:
|
||||
# fontawesomeV6:
|
||||
# flickr_justified_gallery_js:
|
||||
# flickr_justified_gallery_css:
|
||||
# aplayer_css:
|
||||
# aplayer_js:
|
||||
# meting_js:
|
||||
# prismjs_js:
|
||||
# prismjs_lineNumber_js:
|
||||
# prismjs_autoloader:
|
||||
@ -1,34 +1,34 @@
|
||||
div
|
||||
script(src=url_for(theme.CDN.utils))
|
||||
script(src=url_for(theme.CDN.main))
|
||||
script(src=url_for(theme.asset.utils))
|
||||
script(src=url_for(theme.asset.main))
|
||||
|
||||
if theme.translate.enable
|
||||
script(src=url_for(theme.CDN.translate))
|
||||
script(src=url_for(theme.asset.translate))
|
||||
|
||||
if theme.medium_zoom
|
||||
script(src=url_for(theme.CDN.medium_zoom))
|
||||
script(src=url_for(theme.asset.medium_zoom))
|
||||
else if theme.fancybox
|
||||
script(src=url_for(theme.CDN.fancybox_v4))
|
||||
script(src=url_for(theme.asset.fancybox_v4))
|
||||
|
||||
if theme.instantpage
|
||||
script(src=url_for(theme.CDN.instantpage), type='module')
|
||||
script(src=url_for(theme.asset.instantpage), type='module')
|
||||
|
||||
if theme.lazyload.enable
|
||||
script(src=url_for(theme.CDN.lazyload))
|
||||
script(src=url_for(theme.asset.lazyload))
|
||||
|
||||
if theme.snackbar.enable
|
||||
script(src=url_for(theme.CDN.snackbar))
|
||||
script(src=url_for(theme.asset.snackbar))
|
||||
|
||||
if theme.pangu.enable
|
||||
!= partial("includes/third-party/pangu.pug", {}, { cache: true })
|
||||
|
||||
//- search
|
||||
if theme.algolia_search.enable
|
||||
script(src=url_for(theme.CDN.algolia_search_v4))
|
||||
script(src=url_for(theme.CDN.instantsearch_v4))
|
||||
script(src=url_for(theme.CDN.algolia_js))
|
||||
script(src=url_for(theme.asset.algolia_search_v4))
|
||||
script(src=url_for(theme.asset.instantsearch_v4))
|
||||
script(src=url_for(theme.asset.algolia_js))
|
||||
else if theme.local_search.enable
|
||||
script(src=url_for(theme.CDN.local_search))
|
||||
script(src=url_for(theme.asset.local_search))
|
||||
|
||||
if theme.preloader
|
||||
!= partial("includes/loading/loading-js", {}, { cache: true })
|
||||
@ -69,4 +69,4 @@ div
|
||||
!= partial("includes/third-party/pjax", {}, { cache: true })
|
||||
|
||||
if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv
|
||||
script(async data-pjax src=url_for(theme.CDN.busuanzi))
|
||||
script(async data-pjax src='//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js')
|
||||
|
||||
@ -46,14 +46,14 @@ if (theme.pwa && theme.pwa.enable)
|
||||
!=partial('includes/head/pwa', {}, {cache: true})
|
||||
|
||||
//- main css
|
||||
link(rel='stylesheet', href=url_for(theme.CDN.main_css))
|
||||
link(rel='stylesheet', href=url_for(theme.CDN.fontawesomeV6) media="print" onload="this.media='all'")
|
||||
link(rel='stylesheet', href=url_for(theme.asset.main_css))
|
||||
link(rel='stylesheet', href=url_for(theme.asset.fontawesomeV6) media="print" onload="this.media='all'")
|
||||
|
||||
if (theme.snackbar && theme.snackbar.enable)
|
||||
link(rel='stylesheet', href=url_for(theme.CDN.snackbar_css) media="print" onload="this.media='all'")
|
||||
link(rel='stylesheet', href=url_for(theme.asset.snackbar_css) media="print" onload="this.media='all'")
|
||||
|
||||
if theme.fancybox
|
||||
link(rel='stylesheet' href=url_for(theme.CDN.fancybox_css_v4) media="print" onload="this.media='all'")
|
||||
link(rel='stylesheet' href=url_for(theme.asset.fancybox_css_v4) media="print" onload="this.media='all'")
|
||||
|
||||
//- google_adsense
|
||||
!=partial('includes/head/google_adsense', {}, {cache: true})
|
||||
|
||||
@ -113,8 +113,8 @@ script.
|
||||
Snackbar: !{Snackbar},
|
||||
source: {
|
||||
justifiedGallery: {
|
||||
js: '!{url_for(theme.CDN.flickr_justified_gallery_js)}',
|
||||
css: '!{url_for(theme.CDN.flickr_justified_gallery_css)}'
|
||||
js: '!{url_for(theme.asset.flickr_justified_gallery_js)}',
|
||||
css: '!{url_for(theme.asset.flickr_justified_gallery_css)}'
|
||||
}
|
||||
},
|
||||
isPhotoFigcaption: !{theme.photofigcaption},
|
||||
|
||||
6
layout/includes/third-party/aplayer.pug
vendored
6
layout/includes/third-party/aplayer.pug
vendored
@ -1,3 +1,3 @@
|
||||
link(rel='stylesheet' href=url_for(theme.CDN.aplayer_css) media="print" onload="this.media='all'")
|
||||
script(src=url_for(theme.CDN.aplayer_js))
|
||||
script(src=url_for(theme.CDN.meting_js))
|
||||
link(rel='stylesheet' href=url_for(theme.asset.aplayer_css) media="print" onload="this.media='all'")
|
||||
script(src=url_for(theme.asset.aplayer_js))
|
||||
script(src=url_for(theme.asset.meting_js))
|
||||
@ -28,7 +28,7 @@ script.
|
||||
if (typeof twikoo === 'object') {
|
||||
runTwikoo()
|
||||
} else {
|
||||
getScript('!{theme.CDN.twikoo}').then(runTwikoo)
|
||||
getScript('!{theme.asset.twikoo}').then(runTwikoo)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ script.
|
||||
}
|
||||
|
||||
if (typeof Valine === 'function') initValine()
|
||||
else getScript('!{url_for(theme.CDN.valine)}').then(initValine)
|
||||
else getScript('!{url_for(theme.asset.valine)}').then(initValine)
|
||||
}
|
||||
|
||||
window.pjax ? loadValine() : window.addEventListener('load', loadValine)
|
||||
|
||||
@ -10,7 +10,7 @@ script.
|
||||
}
|
||||
|
||||
if (typeof Waline === 'function') initWaline()
|
||||
else getScript('!{url_for(theme.CDN.waline)}').then(initWaline)
|
||||
else getScript('!{url_for(theme.asset.waline)}').then(initWaline)
|
||||
}
|
||||
|
||||
window.pjax ? loadWaline() : window.addEventListener('load', loadWaline)
|
||||
|
||||
@ -5,7 +5,7 @@ script.
|
||||
function addDisqusjsCSS () {
|
||||
const ele = document.createElement('link')
|
||||
ele.rel = 'stylesheet'
|
||||
ele.href= '!{url_for(theme.CDN.disqusjs_css)}'
|
||||
ele.href= '!{url_for(theme.asset.disqusjs_css)}'
|
||||
document.getElementsByTagName('head')[0].appendChild(ele)
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ script.
|
||||
if (window.disqusJsLoad) initDisqusjs()
|
||||
else {
|
||||
addDisqusjsCSS()
|
||||
getScript('!{url_for(theme.CDN.disqusjs)}').then(initDisqusjs)
|
||||
getScript('!{url_for(theme.asset.disqusjs)}').then(initDisqusjs)
|
||||
window.disqusJsLoad = true
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ script.
|
||||
let nowTheme = document.documentElement.getAttribute('data-theme') === 'dark' ? '!{themes.dark}' : '!{themes.light}'
|
||||
|
||||
const config = Object.assign({
|
||||
src: '!{theme.CDN.giscus}',
|
||||
src: 'https://giscus.app/client.js',
|
||||
'data-repo': '!{repo}',
|
||||
'data-repo-id': '!{repo_id}',
|
||||
'data-category-id': '!{category_id}',
|
||||
|
||||
@ -2,7 +2,7 @@ script.
|
||||
function addGitalkSource () {
|
||||
const ele = document.createElement('link')
|
||||
ele.rel = 'stylesheet'
|
||||
ele.href= '!{url_for(theme.CDN.gitalk_css)}'
|
||||
ele.href= '!{url_for(theme.asset.gitalk_css)}'
|
||||
document.getElementsByTagName('head')[0].appendChild(ele)
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ script.
|
||||
if (typeof Gitalk === 'function') initGitalk()
|
||||
else {
|
||||
addGitalkSource()
|
||||
getScript('!{url_for(theme.CDN.gitalk)}').then(initGitalk)
|
||||
getScript('!{url_for(theme.asset.gitalk)}').then(initGitalk)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ script.
|
||||
setTimeout(runFn,0)
|
||||
return
|
||||
}
|
||||
getScript('!{theme.CDN.twikoo}').then(runFn)
|
||||
getScript('!{theme.asset.twikoo}').then(runFn)
|
||||
}
|
||||
|
||||
if ('!{use[0]}' === 'Twikoo' || !!{lazyload}) {
|
||||
|
||||
@ -2,7 +2,7 @@ script.
|
||||
function loadUtterances () {
|
||||
let ele = document.createElement('script')
|
||||
ele.setAttribute('id', 'utterances_comment')
|
||||
ele.setAttribute('src', '!{url_for(theme.CDN.utterances)}')
|
||||
ele.setAttribute('src', 'https://utteranc.es/client.js')
|
||||
ele.setAttribute('repo', '!{theme.utterances.repo}')
|
||||
ele.setAttribute('issue-term', '!{theme.utterances.issue_term}')
|
||||
let nowTheme = document.documentElement.getAttribute('data-theme') === 'dark' ? '#{theme.utterances.dark_theme}' : '#{theme.utterances.light_theme}'
|
||||
|
||||
@ -18,7 +18,7 @@ script.
|
||||
}
|
||||
|
||||
if (typeof Valine === 'function') initValine()
|
||||
else getScript('!{url_for(theme.CDN.valine)}').then(initValine)
|
||||
else getScript('!{url_for(theme.asset.valine)}').then(initValine)
|
||||
}
|
||||
|
||||
if ('!{theme.comments.use[0]}' === 'Valine' || !!{theme.comments.lazyload}) {
|
||||
|
||||
@ -13,7 +13,7 @@ script.
|
||||
}
|
||||
|
||||
if (typeof Waline === 'function') initWaline()
|
||||
else getScript('!{url_for(theme.CDN.waline)}').then(initWaline)
|
||||
else getScript('!{url_for(theme.asset.waline)}').then(initWaline)
|
||||
}
|
||||
|
||||
if ('!{theme.comments.use[0]}' === 'Waline' || !!{theme.comments.lazyload}) {
|
||||
|
||||
14
layout/includes/third-party/effect.pug
vendored
14
layout/includes/third-party/effect.pug
vendored
@ -1,19 +1,19 @@
|
||||
if theme.fireworks && theme.fireworks.enable
|
||||
canvas.fireworks(mobile=`${theme.fireworks.mobile}`)
|
||||
script(src=url_for(theme.CDN.fireworks))
|
||||
script(src=url_for(theme.asset.fireworks))
|
||||
|
||||
if (theme.canvas_ribbon && theme.canvas_ribbon.enable)
|
||||
script(defer id="ribbon" src=url_for(theme.CDN.canvas_ribbon) size=theme.canvas_ribbon.size
|
||||
script(defer id="ribbon" src=url_for(theme.asset.canvas_ribbon) size=theme.canvas_ribbon.size
|
||||
alpha=theme.canvas_ribbon.alpha zIndex=theme.canvas_ribbon.zIndex mobile=`${theme.canvas_ribbon.mobile}` data-click=`${theme.canvas_ribbon.click_to_change}`)
|
||||
|
||||
if (theme.canvas_fluttering_ribbon && theme.canvas_fluttering_ribbon.enable)
|
||||
script(defer id="fluttering_ribbon" mobile=`${theme.canvas_fluttering_ribbon.mobile}` src=url_for(theme.CDN.canvas_fluttering_ribbon))
|
||||
script(defer id="fluttering_ribbon" mobile=`${theme.canvas_fluttering_ribbon.mobile}` src=url_for(theme.asset.canvas_fluttering_ribbon))
|
||||
|
||||
if (theme.canvas_nest && theme.canvas_nest.enable)
|
||||
script#canvas_nest(defer color=theme.canvas_nest.color opacity=theme.canvas_nest.opacity zIndex=theme.canvas_nest.zIndex count=theme.canvas_nest.count mobile=`${theme.canvas_nest.mobile}` src=url_for(theme.CDN.canvas_nest))
|
||||
script#canvas_nest(defer color=theme.canvas_nest.color opacity=theme.canvas_nest.opacity zIndex=theme.canvas_nest.zIndex count=theme.canvas_nest.count mobile=`${theme.canvas_nest.mobile}` src=url_for(theme.asset.canvas_nest))
|
||||
|
||||
if theme.activate_power_mode.enable
|
||||
script(src=url_for(theme.CDN.activate_power_mode))
|
||||
script(src=url_for(theme.asset.activate_power_mode))
|
||||
script.
|
||||
POWERMODE.colorful = !{theme.activate_power_mode.colorful};
|
||||
POWERMODE.shake = !{theme.activate_power_mode.shake};
|
||||
@ -22,11 +22,11 @@ if theme.activate_power_mode.enable
|
||||
|
||||
//- 鼠標特效
|
||||
if theme.click_heart && theme.click_heart.enable
|
||||
script#click-heart(src=url_for(theme.CDN.click_heart) async mobile=`${theme.click_heart.mobile}`)
|
||||
script#click-heart(src=url_for(theme.asset.click_heart) async mobile=`${theme.click_heart.mobile}`)
|
||||
|
||||
if theme.ClickShowText && theme.ClickShowText.enable
|
||||
script#click-show-text(
|
||||
src= url_for(theme.CDN.ClickShowText)
|
||||
src= url_for(theme.asset.ClickShowText)
|
||||
data-mobile= `${theme.ClickShowText.mobile}`
|
||||
data-text= theme.ClickShowText.text.join(",")
|
||||
data-fontsize= theme.ClickShowText.fontSize
|
||||
|
||||
6
layout/includes/third-party/math/katex.pug
vendored
6
layout/includes/third-party/math/katex.pug
vendored
@ -1,6 +1,6 @@
|
||||
link(rel="stylesheet" type="text/css" href=theme.CDN.katex)
|
||||
script(src=url_for(theme.CDN.katex_copytex))
|
||||
link(rel="stylesheet" type="text/css" href=theme.CDN.katex_copytex_css)
|
||||
link(rel="stylesheet" type="text/css" href=theme.asset.katex)
|
||||
script(src=url_for(theme.asset.katex_copytex))
|
||||
link(rel="stylesheet" type="text/css" href=theme.asset.katex_copytex_css)
|
||||
script.
|
||||
(() => {
|
||||
document.querySelectorAll('#article-container span.katex-display').forEach(item => {
|
||||
|
||||
2
layout/includes/third-party/math/mathjax.pug
vendored
2
layout/includes/third-party/math/mathjax.pug
vendored
@ -37,7 +37,7 @@ script.
|
||||
}
|
||||
|
||||
const script = document.createElement('script')
|
||||
script.src = '!{theme.CDN.mathjax}'
|
||||
script.src = '!{theme.asset.mathjax}'
|
||||
script.id = 'MathJax-script'
|
||||
script.async = true
|
||||
document.head.appendChild(script)
|
||||
|
||||
2
layout/includes/third-party/math/mermaid.pug
vendored
2
layout/includes/third-party/math/mermaid.pug
vendored
@ -18,7 +18,7 @@ script.
|
||||
}
|
||||
|
||||
const loadMermaid = () => {
|
||||
window.loadMermaid ? runMermaid() : getScript('!{theme.CDN.mermaid}').then(runMermaid)
|
||||
window.loadMermaid ? runMermaid() : getScript('!{theme.asset.mermaid}').then(runMermaid)
|
||||
}
|
||||
|
||||
window.pjax ? loadMermaid() : document.addEventListener('DOMContentLoaded', loadMermaid)
|
||||
|
||||
@ -43,7 +43,7 @@ script.
|
||||
if (typeof twikoo === 'object') {
|
||||
runTwikoo()
|
||||
} else {
|
||||
getScript('!{theme.CDN.twikoo}').then(runTwikoo)
|
||||
getScript('!{theme.asset.twikoo}').then(runTwikoo)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
- let default_avatar = theme.valine.avatar
|
||||
|
||||
script(src=url_for(theme.CDN.blueimp_md5))
|
||||
script(src=url_for(theme.asset.blueimp_md5))
|
||||
script.
|
||||
window.addEventListener('load', () => {
|
||||
const changeContent = (content) => {
|
||||
|
||||
@ -67,7 +67,7 @@ script.
|
||||
}
|
||||
|
||||
if (typeof Waline === 'function') loadWaline()
|
||||
else getScript('!{url_for(theme.CDN.waline)}').then(loadWaline)
|
||||
else getScript('!{url_for(theme.asset.waline)}').then(loadWaline)
|
||||
}
|
||||
|
||||
const newestCommentInit = () => {
|
||||
|
||||
2
layout/includes/third-party/pangu.pug
vendored
2
layout/includes/third-party/pangu.pug
vendored
@ -2,7 +2,7 @@ script.
|
||||
function panguFn () {
|
||||
if (typeof pangu === 'object') pangu.autoSpacingPage()
|
||||
else {
|
||||
getScript('!{url_for(theme.CDN.pangu)}')
|
||||
getScript('!{url_for(theme.asset.pangu)}')
|
||||
.then(() => {
|
||||
pangu.autoSpacingPage()
|
||||
})
|
||||
|
||||
2
layout/includes/third-party/pjax.pug
vendored
2
layout/includes/third-party/pjax.pug
vendored
@ -12,7 +12,7 @@ if choose
|
||||
if choose.includes('Utterances') || choose.includes('Giscus')
|
||||
- pjaxSelectors.unshift('link[rel="canonical"]')
|
||||
|
||||
script(src=url_for(theme.CDN.pjax))
|
||||
script(src=url_for(theme.asset.pjax))
|
||||
script.
|
||||
let pjaxSelectors = !{JSON.stringify(pjaxSelectors)}
|
||||
|
||||
|
||||
6
layout/includes/third-party/prismjs.pug
vendored
6
layout/includes/third-party/prismjs.pug
vendored
@ -1,5 +1,5 @@
|
||||
if config.prismjs && config.prismjs.enable && !config.prismjs.preprocess
|
||||
script(src=url_for(theme.CDN.prismjs_js))
|
||||
script(src=url_for(theme.CDN.prismjs_autoloader))
|
||||
script(src=url_for(theme.asset.prismjs_js))
|
||||
script(src=url_for(theme.asset.prismjs_autoloader))
|
||||
if config.prismjs.line_number
|
||||
script(src=url_for(theme.CDN.prismjs_lineNumber_js))
|
||||
script(src=url_for(theme.asset.prismjs_lineNumber_js))
|
||||
|
||||
@ -5,6 +5,6 @@
|
||||
a(class="a2a_button_" + name)
|
||||
|
||||
a.a2a_dd(href="https://www.addtoany.com/share")
|
||||
script(async src=url_for(theme.CDN.addtoany))
|
||||
script(async src='https://static.addtoany.com/menu/page.js')
|
||||
|
||||
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
.social-share(data-image=url_for(page.cover|| theme.avatar.img) data-sites= theme.sharejs.sites)
|
||||
link(rel='stylesheet' href=url_for(theme.CDN.sharejs_css) media="print" onload="this.media='all'")
|
||||
script(src=url_for(theme.CDN.sharejs) defer)
|
||||
link(rel='stylesheet' href=url_for(theme.asset.sharejs_css) media="print" onload="this.media='all'")
|
||||
script(src=url_for(theme.asset.sharejs) defer)
|
||||
8
layout/includes/third-party/subtitle.pug
vendored
8
layout/includes/third-party/subtitle.pug
vendored
@ -29,7 +29,7 @@ case source
|
||||
if (typeof Typed === 'function') {
|
||||
subtitleType()
|
||||
} else {
|
||||
getScript('!{url_for(theme.CDN.typed)}').then(subtitleType)
|
||||
getScript('!{url_for(theme.asset.typed)}').then(subtitleType)
|
||||
}
|
||||
} else {
|
||||
subtitleType()
|
||||
@ -61,7 +61,7 @@ case source
|
||||
if (typeof Typed === 'function') {
|
||||
subtitleType()
|
||||
} else {
|
||||
getScript('!{url_for(theme.CDN.typed)}').then(subtitleType)
|
||||
getScript('!{url_for(theme.asset.typed)}').then(subtitleType)
|
||||
}
|
||||
} else {
|
||||
subtitleType()
|
||||
@ -94,7 +94,7 @@ case source
|
||||
if (typeof Typed === 'function') {
|
||||
subtitleType()
|
||||
} else {
|
||||
getScript('!{url_for(theme.CDN.typed)}').then(subtitleType)
|
||||
getScript('!{url_for(theme.asset.typed)}').then(subtitleType)
|
||||
}
|
||||
} else {
|
||||
subtitleType()
|
||||
@ -121,7 +121,7 @@ case source
|
||||
if (typeof Typed === 'function') {
|
||||
subtitleType()
|
||||
} else {
|
||||
getScript('!{url_for(theme.CDN.typed)}').then(subtitleType)
|
||||
getScript('!{url_for(theme.asset.typed)}').then(subtitleType)
|
||||
}
|
||||
} else {
|
||||
subtitleType()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hexo-theme-butterfly",
|
||||
"version": "4.1.0",
|
||||
"version": "4.2.0-b1",
|
||||
"description": "A Simple and Card UI Design theme for Hexo",
|
||||
"main": "package.json",
|
||||
"scripts": {
|
||||
|
||||
@ -6,115 +6,243 @@
|
||||
|
||||
'use strict'
|
||||
|
||||
const { version } = require('../../package.json')
|
||||
|
||||
hexo.extend.filter.register('before_generate', () => {
|
||||
const themeConfig = hexo.theme.config
|
||||
const { CDN, comments } = themeConfig
|
||||
|
||||
/**
|
||||
* Merge CDN
|
||||
*/
|
||||
const internalData = {
|
||||
main_css: {
|
||||
cdn: '/css/index.css',
|
||||
local: '/css/index.css'
|
||||
},
|
||||
main: {
|
||||
cdn: `https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@${version}/source/js/main.min.js`,
|
||||
local: '/js/main.js'
|
||||
},
|
||||
utils: {
|
||||
cdn: `https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@${version}/source/js/utils.min.js`,
|
||||
local: '/js/utils.js'
|
||||
},
|
||||
translate: {
|
||||
cdn: `https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@${version}/source/js/tw_cn.min.js`,
|
||||
local: '/js/tw_cn.js'
|
||||
},
|
||||
local_search: {
|
||||
cdn: `https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@${version}/source/js/search/local-search.min.js`,
|
||||
local: '/js/search/local-search.js'
|
||||
},
|
||||
algolia_js: {
|
||||
cdn: `https://cdn.jsdelivr.net/npm/hexo-theme-butterfly@${version}/source/js/search/algolia.min.js`,
|
||||
local: '/js/search/algolia.js'
|
||||
}
|
||||
}
|
||||
|
||||
const defaultCDN = {
|
||||
main_css: '/css/index.css',
|
||||
main: '/js/main.js',
|
||||
utils: '/js/utils.js',
|
||||
|
||||
// pjax
|
||||
pjax: 'https://cdn.jsdelivr.net/npm/pjax/pjax.min.js',
|
||||
|
||||
// comments
|
||||
gitalk: 'https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js',
|
||||
gitalk_css: 'https://cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.css',
|
||||
blueimp_md5: 'https://cdn.jsdelivr.net/npm/blueimp-md5/js/md5.min.js',
|
||||
valine: 'https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js',
|
||||
disqusjs: 'https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js',
|
||||
disqusjs_css: 'https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css',
|
||||
utterances: 'https://utteranc.es/client.js',
|
||||
twikoo: 'https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js',
|
||||
waline: 'https://cdn.jsdelivr.net/npm/@waline/client/dist/Waline.min.js',
|
||||
giscus: 'https://giscus.app/client.js',
|
||||
|
||||
// share
|
||||
addtoany: 'https://static.addtoany.com/menu/page.js',
|
||||
sharejs: 'https://cdn.jsdelivr.net/npm/social-share.js/dist/js/social-share.min.js',
|
||||
sharejs_css: 'https://cdn.jsdelivr.net/npm/social-share.js/dist/css/share.min.css',
|
||||
|
||||
// search
|
||||
local_search: '/js/search/local-search.js',
|
||||
algolia_js: '/js/search/algolia.js',
|
||||
algolia_search_v4: 'https://cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js',
|
||||
instantsearch_v4: 'https://cdn.jsdelivr.net/npm/instantsearch.js@4/dist/instantsearch.production.min.js',
|
||||
|
||||
// math
|
||||
mathjax: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js',
|
||||
katex: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css',
|
||||
katex_copytex: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.min.js',
|
||||
katex_copytex_css: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.css',
|
||||
mermaid: 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js',
|
||||
|
||||
// count
|
||||
busuanzi: '//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js',
|
||||
|
||||
// background effect
|
||||
canvas_ribbon: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-ribbon.min.js',
|
||||
canvas_fluttering_ribbon: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js',
|
||||
canvas_nest: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js',
|
||||
|
||||
lazyload: 'https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js',
|
||||
instantpage: 'https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js',
|
||||
typed: 'https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js',
|
||||
pangu: 'https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js',
|
||||
|
||||
// photo
|
||||
fancybox_css_v4: 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css',
|
||||
fancybox_v4: 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js',
|
||||
medium_zoom: 'https://cdn.jsdelivr.net/npm/medium-zoom/dist/medium-zoom.min.js',
|
||||
|
||||
// snackbar
|
||||
snackbar_css: 'https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css',
|
||||
snackbar: 'https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js',
|
||||
|
||||
// effect
|
||||
activate_power_mode: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js',
|
||||
fireworks: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/fireworks.min.js',
|
||||
click_heart: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-heart.min.js',
|
||||
ClickShowText: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-show-text.min.js',
|
||||
|
||||
// fontawesome
|
||||
fontawesomeV6: 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css',
|
||||
|
||||
// Conversion between Traditional and Simplified Chinese
|
||||
translate: '/js/tw_cn.js',
|
||||
|
||||
// flickr-justified-gallery
|
||||
flickr_justified_gallery_js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
|
||||
flickr_justified_gallery_css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css',
|
||||
|
||||
// aplayer
|
||||
aplayer_css: 'https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css',
|
||||
aplayer_js: 'https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js',
|
||||
meting_js: 'https://cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js',
|
||||
|
||||
// Prism.js
|
||||
prismjs_js: 'https://cdn.jsdelivr.net/npm/prismjs/prism.min.js',
|
||||
prismjs_lineNumber_js: 'https://cdn.jsdelivr.net/npm/prismjs/plugins/line-numbers/prism-line-numbers.min.js',
|
||||
prismjs_autoloader: 'https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js'
|
||||
const data = {
|
||||
algolia_search_v4: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js',
|
||||
local: '/js/lib/algolia/algoliasearch-lite.umd.js'
|
||||
},
|
||||
instantsearch_v4: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/instantsearch.js@4/dist/instantsearch.production.min.js',
|
||||
local: '/js/lib/algolia/instantsearch.production.min.js'
|
||||
},
|
||||
pjax: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/pjax/pjax.min.js',
|
||||
local: '/js/lib/pjax/pjax.min.js'
|
||||
},
|
||||
gitalk: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js',
|
||||
local: '/js/lib/gitalk/gitalk.min.js'
|
||||
},
|
||||
gitalk_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.css',
|
||||
local: '/js/lib/gitalk/gitalk.css'
|
||||
},
|
||||
blueimp_md5: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/blueimp-md5/js/md5.min.js',
|
||||
local: '/js/lib/blueimp-md5/md5.min.js'
|
||||
},
|
||||
valine: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js',
|
||||
local: '/js/lib/valine/Valine.min.js'
|
||||
},
|
||||
disqusjs: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js',
|
||||
local: '/js/lib/disqusjs/disqus.js'
|
||||
},
|
||||
disqusjs_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css',
|
||||
local: '/js/lib/disqusjs/disqusjs.css'
|
||||
},
|
||||
twikoo: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js',
|
||||
local: '/js/lib/twikoo/twikoo.all.min.js'
|
||||
},
|
||||
waline: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/@waline/client/dist/Waline.min.js',
|
||||
local: '/js/lib/waline/Waline.min.js'
|
||||
},
|
||||
sharejs: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/social-share.js/dist/js/social-share.min.js',
|
||||
local: '/js/lib/social-share.js/dist/social-share.min.js'
|
||||
},
|
||||
sharejs_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/social-share.js/dist/css/share.min.css',
|
||||
local: '/js/lib/social-share.js/dist/share.min.css'
|
||||
},
|
||||
mathjax: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js',
|
||||
local: '/js/lib/mathjax/tex-mml-chtml.js'
|
||||
},
|
||||
katex: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css',
|
||||
local: '/js/lib/katex/katex.min.css'
|
||||
},
|
||||
katex_copytex: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.min.js',
|
||||
local: '/js/lib/katex/copy-tex.min.js'
|
||||
},
|
||||
katex_copytex_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/copy-tex.css',
|
||||
local: '/js/lib/katex/copy-tex.css'
|
||||
},
|
||||
mermaid: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js',
|
||||
local: '/js/lib/mermaid/mermaid.min.js'
|
||||
},
|
||||
canvas_ribbon: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-ribbon.min.js',
|
||||
local: '/js/lib/effect/canvas-ribbon.min.js'
|
||||
},
|
||||
canvas_fluttering_ribbon: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js',
|
||||
local: '/js/lib/effect/canvas-fluttering-ribbon.min.js'
|
||||
},
|
||||
canvas_nest: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js',
|
||||
local: '/js/lib/effect/canvas-nest.min.js'
|
||||
},
|
||||
activate_power_mode: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js',
|
||||
local: '/js/lib/effect/activate-power-mode.min.js'
|
||||
},
|
||||
fireworks: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/fireworks.min.js',
|
||||
local: '/js/lib/effect/fireworks.min.js'
|
||||
},
|
||||
click_heart: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-heart.min.js',
|
||||
local: '/js/lib/effect/click-heart.min.js'
|
||||
},
|
||||
ClickShowText: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-show-text.min.js',
|
||||
local: '/js/lib/effect/click-show-text.min.js'
|
||||
},
|
||||
lazyload: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js',
|
||||
local: '/js/lib/vanilla-lazyload/lazyload.iife.min.js'
|
||||
},
|
||||
instantpage: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/instant.page@5/instantpage.min.js',
|
||||
local: '/js/lib/instant.page/instantpage.min.js'
|
||||
},
|
||||
typed: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js',
|
||||
local: '/js/lib/typed.js/typed.min.js'
|
||||
},
|
||||
pangu: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js',
|
||||
local: '/js/lib/pangu/pangu.min.js'
|
||||
},
|
||||
fancybox_css_v4: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css',
|
||||
local: '/js/lib/fancyapps/fancybox.css'
|
||||
},
|
||||
fancybox_v4: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js',
|
||||
local: '/js/lib/fancyapps/fancybox.umd.js'
|
||||
},
|
||||
medium_zoom: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/medium-zoom/dist/medium-zoom.min.js',
|
||||
local: '/js/lib/medium-zoom/medium-zoom.min.js'
|
||||
},
|
||||
snackbar_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css',
|
||||
local: '/js/lib/node-snackbar/snackbar.min.css'
|
||||
},
|
||||
snackbar: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js',
|
||||
local: '/js/lib/node-snackbar/snackbar.min.js'
|
||||
},
|
||||
fontawesomeV6: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css',
|
||||
local: '/js/lib/fontawesome-free/dist/all.min.css'
|
||||
},
|
||||
flickr_justified_gallery_js: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
|
||||
local: '/js/lib/flickr-justified-gallery/fjGallery.min.js'
|
||||
},
|
||||
flickr_justified_gallery_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css',
|
||||
local: '/js/lib/flickr-justified-gallery/fjGallery.min.css'
|
||||
},
|
||||
aplayer_css: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/aplayer@1/dist/APlayer.min.css',
|
||||
local: '/js/lib/aplayer/APlayer.min.css'
|
||||
},
|
||||
aplayer_js: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/aplayer@1/dist/APlayer.min.js',
|
||||
local: '/js/lib/aplayer/APlayer.min.js'
|
||||
},
|
||||
meting_js: {
|
||||
cdn: 'https://cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js',
|
||||
local: '/js/lib/aplayer/Meting.min.js'
|
||||
},
|
||||
prismjs_js: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/prismjs@1/prism.min.js',
|
||||
local: '/js/lib/prismjs/prism.min.js'
|
||||
},
|
||||
prismjs_lineNumber_js: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.min.js',
|
||||
local: '/js/lib/prismjs/prism-line-numbers.min.js'
|
||||
},
|
||||
prismjs_autoloader: {
|
||||
cdn: 'https://cdn.jsdelivr.net/npm/prismjs@1/plugins/autoloader/prism-autoloader.min.js',
|
||||
local: '/js/lib/prismjs/prism-autoloader.min.js'
|
||||
}
|
||||
}
|
||||
|
||||
// delete null value
|
||||
const deleteNullValue = obj => {
|
||||
if (!obj) return
|
||||
for (const i in obj) {
|
||||
obj[i] === null && delete obj[i]
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
themeConfig.CDN = Object.assign(defaultCDN, deleteNullValue(themeConfig.CDN))
|
||||
const defaultVal = (obj, choose) => {
|
||||
const str = choose === 'local' ? 'local' : 'cdn'
|
||||
|
||||
for (const i in obj) {
|
||||
obj[i] = obj[i][str]
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
themeConfig.asset = Object.assign(defaultVal(internalData, CDN.internal_provider),
|
||||
defaultVal(data, CDN.third_party_provider), deleteNullValue(CDN.option))
|
||||
|
||||
/**
|
||||
* Capitalize the first letter of comment name
|
||||
*/
|
||||
|
||||
let { use } = themeConfig.comments
|
||||
let { use } = comments
|
||||
|
||||
if (!use) return
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user