提交 78cc75aa 编写于 作者: EvanOne(文一)'s avatar EvanOne(文一)

refactor: Make all libs of third-party configurable

上级 6c099457
......@@ -593,17 +593,107 @@ images: images
# Set a CDN address for the vendor you want to customize.
# ---------------------------------------------------------------
#! Do not edit the follow configs.
#! Unless you know what you are doing.
# !!! Do not edit the follow configs.
# !!! Unless you know what you are doing.
# ---------------------------------------------------------------
cdn:
css:
fontawesome: https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css
js:
jquery: https://cdn.jsdelivr.net/npm/jquery@v3.4.1/dist/jquery.min.js
velocity: https://cdn.jsdelivr.net/npm/velocity-animate@1.5.2/velocity.min.js
velocity-ui: https://cdn.jsdelivr.net/npm/velocity-ui-pack@1.2.2/velocity.ui.min.js
canvas_ribbon: https://cdn.jsdelivr.net/npm/ribbon.js@latest/dist/ribbon.min.js
canvas_nest: https://cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@1.0.0/canvas-nest.min.js
# Using version: 4.7.0
# See: https://fontawesome.com/
# Example:
# fontawesome: //cdn.jsdelivr.net/npm/font-awesome@4/css/font-awesome.min.css
# fontawesome: //cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css
fontawesome:
# Using version: 3.4.1
# Example:
# jquery: //cdn.jsdelivr.net/npm/jquery@v3.4.1/dist/jquery.min.js
# jquery: //cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js
jquery:
# Using version: 1.5.2
# See: http://velocityjs.org/
# Example:
# velocity: //cdn.jsdelivr.net/npm/velocity-animate@1.5.2/velocity.min.js
# velocity: //cdnjs.cloudflare.com/ajax/libs/velocity/1.5.2/velocity.min.js
# velocity_ui: //cdn.jsdelivr.net/npm/velocity-animate@1.5.2/velocity.ui.min.js
# velocity_ui: //cdnjs.cloudflare.com/ajax/libs/velocity/1.5.2/velocity.ui.min.js
velocity:
velocity_ui:
# gitalk & js-md5
# Using version: latest & latest
# See: https://github.com/gitalk/gitalk/, https://github.com/emn178/js-md5/
# Example:
# gitalk_js: //cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js
# gitalk_css: //cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.css
# md5: //cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js
gitalk_js:
gitalk_css:
md5:
# gitment & js-md5
# Using version: latest & latest
# See: https://github.com/gitalk/gitalk/, https://github.com/emn178/js-md5/
# Example:
# gitment_js: //cdn.jsdelivr.net/npm/gitment/dist/gitment.browser.min.js
# gitment_css: //cdn.jsdelivr.net/npm/gitment/style/default.min.css
# md5: //cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js
gitment_js:
gitment_css:
md5:
# valine & leancloud-storage
# Using version: latest & latest
# See: https://github.com/xCss/Valine/, https://www.npmjs.com/package/leancloud-storage/
# Example:
# valine: //cdn.jsdelivr.net/npm/valine@latest/dist/Valine.min.js
# leancloud_storage: //cdn.jsdelivr.net/npm/leancloud-storage@latest/dist/av-min.js
valine:
leancloud_storage:
# busuanzi
# Using version: latest
# See: https://busuanzi.ibruce.info/
# Example:
# busuanzi: //cdn.jsdelivr.net/gh/sukkaw/busuanzi@latest/bsz.pure.mini.js
busuanzi:
# Using version: 2.1.1
# See: https://busuanzi.ibruce.info/
# Example:
# instantsearch_js: //cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.js
# instantsearch_css: //cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.css
instantsearch_js:
instantsearch_css:
# Using version: latest
# See: https://github.com/hustcc/ribbon.js
# Example:
# canvas_ribbon: //cdn.jsdelivr.net/npm/ribbon.js@latest/dist/ribbon.min.js
canvas_ribbon:
# Using version: latest
# See: https://github.com/hustcc/canvas-nest.js
# Example:
# canvas_nest: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@latest/canvas-nest.min.js
canvas_nest:
# Using version: 3.5.7
# See: https://www.fancyapps.com/fancybox/3/
# Example:
# fancybox_js: //cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js
# fancybox_css: //cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css
fancybox_js:
fancybox_css:
# Using version: 4.2.2
# See: https://masonry.desandro.com/
# Example:
# masonry: //cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js
masonry:
# Using version: 2.0.0-rc.2
# See: https://github.com/tuupola/lazyload/
# Example:
# lazyload: //cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.min.js
lazyload:
......@@ -41,13 +41,14 @@ if theme.favicon.small
if theme.favicon.safari_pinned_tab
link(rel="mask-icon" href=`${url_for(theme.favicon.safari_pinned_tab)}?v=${stun_env("version")}` color="#333")
if theme.cdn && theme.cdn.css
each url in theme.cdn.css
if url
link(rel="stylesheet" href=url_for(url))
- var fontawesome_css = 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css'
- if (theme.cdn.fontawesome_css) fontawesome_css = theme.cdn.fontawesome_css
link(rel="stylesheet" href=fontawesome_css)
if theme.fancybox
link(rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css")
- var fancybox_css = 'https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css'
- if (theme.cdn.fontawesome) fancybox_css = theme.cdn.fontawesome
link(rel="stylesheet" href=fancybox_css)
link(rel="stylesheet" href=`${url_for(theme.css)}/index.css?v=${stun_env("version")}`)
......
......@@ -5,24 +5,40 @@ script.
window.Promise = null;
}
if theme.cdn && theme.cdn.js
each url in theme.cdn.js
if url
script(src=url_for(url))
- var jquery_js = "https://cdn.jsdelivr.net/npm/jquery@v3.4.1/dist/jquery.min.js"
- var velocity_js = "https://cdn.jsdelivr.net/npm/velocity-animate@1.5.2/velocity.min.js"
- var velocity_ui_js = "https://cdn.jsdelivr.net/npm/velocity-animate@1.5.2/velocity.ui.min.js"
- if (theme.cdn.jquery) jquery_js = theme.cdn.jquery
- if (theme.cdn.velocity) velocity_js = theme.cdn.velocity
- if (theme.cdn.velocity_ui) velocity_ui_js = theme.cdn.velocity_ui
if theme.fancybox
script(src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js")
if theme.gallery_waterfall
script(src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js")
if theme.lazyload
script(src="https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.min.js")
script(src=jquery_js)
script(src=velocity_js)
script(src=velocity_ui_js)
if theme.canvas_ribbon && theme.canvas_ribbon.enable
- var ribbon = theme.canvas_ribbon;
script(src=theme.cdn.canvas_ribbon size=ribbon.size alpha=ribbon.alpha zIndex=ribbon.zIndex)
- var ribbon_js = "https://cdn.jsdelivr.net/npm/ribbon.js@latest/dist/ribbon.min.js"
- var ribbon = theme.canvas_ribbon
- if (theme.cdn.canvas_ribbon) ribbon_js = theme.cdn.canvas_ribbon
script(src=ribbon_js size=ribbon.size alpha=ribbon.alpha zIndex=ribbon.zIndex)
if theme.canvas_nest && theme.canvas_nest.enable
- var nest_js = "https://cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@latest/canvas-nest.min.js"
- var nest = theme.canvas_nest;
script(src=theme.cdn.canvas_nest color=nest.color opacity=nest.opacity count=nest.count zIndex=nest.zIndex)
- if (theme.cdn.canvas_nest) nest_js = theme.cdn.canvas_nest
script(src=nest_js color=nest.color opacity=nest.opacity count=nest.count zIndex=nest.zIndex)
if theme.fancybox
- var fancybox_js = "https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"
- if (theme.cdn.fancybox_js) fancybox_js = theme.cdn.fancybox_js
script(src=fancybox_js)
if theme.gallery_waterfall && theme.gallery_waterfall.enable
- var masonry_js = "https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js"
- if (theme.cdn.masonry) masonry_js = theme.cdn.masonry
script(src=masonry_js)
if theme.lazyload && theme.lazyload.enable
- var lazyload_js = "https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.min.js"
- if (theme.cdn.lazyload) lazyload_js = theme.cdn.lazyload
script(src=lazyload_js)
script(async src="https://cdn.jsdelivr.net/gh/sukkaw/busuanzi@2.3/bsz.pure.mini.js")
-
var busuanzi_js = "https://cdn.jsdelivr.net/gh/sukkaw/busuanzi@latest/bsz.pure.mini.js"
if (theme.cdn.busuanzi) busuanzi_js = theme.cdn.busuanzi
script(async src=busuanzi_js)
link(href="https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.css" rel="stylesheet" type="text/css")
script(src="https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js")
script(src="https://cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js")
-
var gitalk_js = "https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js"
var gitalk_css = "https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.css"
var gitalk_md5 = "https://cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js"
if (theme.cdn.gitalk_js) gitalk_js = theme.cdn.gitalk_js
if (theme.cdn.gitalk_css) gitalk_css = theme.cdn.gitalk_css
if (theme.cdn.md5) gitalk_md5 = theme.cdn.md5
link(href=gitalk_css rel="stylesheet" type="text/css")
script(src=gitalk_js)
script(src=gitalk_md5)
-
var lang = _.get(theme, 'gitalk.language')
......
link(href="https://cdn.jsdelivr.net/npm/gitment/style/default.min.css" rel="stylesheet" type="text/css")
script(src="https://cdn.jsdelivr.net/npm/gitment/dist/gitment.browser.min.js")
script(src="https://cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js")
-
var gitment_js = "https://cdn.jsdelivr.net/npm/gitment/dist/gitment.browser.min.js"
var gitment_css = "https://cdn.jsdelivr.net/npm/gitment/style/default.min.css"
var gitment_md5 = "https://cdn.jsdelivr.net/npm/js-md5@latest/src/md5.min.js"
if (theme.cdn.gitment_js) gitment_js = theme.cdn.gitment_js
if (theme.cdn.gitment_css) gitment_css = theme.cdn.gitment_css
if (theme.cdn.md5) gitment_md5 = theme.cdn.md5
link(href=gitment_css rel="stylesheet" type="text/css")
script(src=gitment_js)
script(src=gitment_md5)
script.
function renderGitment() {
......
script(src='https://cdn.jsdelivr.net/npm/leancloud-storage@latest/dist/av-min.js')
script(src='https://cdn.jsdelivr.net/npm/valine@latest/dist/Valine.min.js')
-
var leancloud_storage_js = "https://cdn.jsdelivr.net/npm/leancloud-storage@latest/dist/av-min.js"
var valine_js = "https://cdn.jsdelivr.net/npm/valine@latest/dist/Valine.min.js"
if (theme.cdn.leancloud_storage) leancloud_storage_js = theme.cdn.leancloud_storage
if (theme.cdn.valine) valine_js = theme.cdn.valine
script(src=leancloud_storage_js)
script(src=valine_js)
script.
window.onload = function() {
......
link(href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.css" rel="stylesheet" type="text/css")
script(src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.js" defer)
-
var instantsearch_js = "https://cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.js"
var instantsearch_css = "https://cdn.jsdelivr.net/npm/instantsearch.js@2.1.1/dist/instantsearch.min.css"
if (theme.cdn.instantsearch_js) instantsearch_js = theme.cdn.instantsearch_js
if (theme.cdn.instantsearch_css) instantsearch_css = theme.cdn.instantsearch_css
link(href=instantsearch_css rel="stylesheet" type="text/css")
script(src=instantsearch_js defer)
......@@ -4,10 +4,10 @@ $(document).ready(function () {
CONFIG.back2top && Stun.utils.back2top();
CONFIG.gallery_waterfall && Stun.utils.galleryWaterFall();
CONFIG.lazyload && Stun.utils.lazyLoadImages();
if (CONFIG.external_link) {
var WRAPPER = '.archive-inner, .post-title, #footer';
Stun.utils.addIconToExternalLink(WRAPPER);
}
......
......@@ -227,7 +227,7 @@ Stun.utils = Stun.$u = {
CONFIG.external_link.icon.name +
'"></i>'
);
$(container)
.find('a[target="_blank"]')
.wrap($wrapper)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册