更加细致的优化:修复页面部分问题;新增CDN优选功能,可自己配置CDN网址

v1.2.0
jinqilin721 2020-03-20 13:23:41 +08:00
parent c68a04fdc9
commit 09ebadcdd6
21 changed files with 325 additions and 205 deletions

View File

@ -51,5 +51,4 @@
空空如也 空空如也
</div> </div>
</div> </div>
</#if> </#if>

View File

@ -1,7 +1,7 @@
<#macro comment post,type> <#macro comment post,type>
<#if !post.disallowComment!false> <#if !post.disallowComment!false>
<script src="//cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js"></script> <script src="${settings.cdn_vue_js!}"></script>
<script src="${options.comment_internal_plugin_js!'//cdn.jsdelivr.net/gh/halo-dev/halo-comment@latest/dist/halo-comment.min.js'}"></script> <script src="${options.comment_internal_plugin_js!'//cdn.jsdelivr.net/npm/halo-comment-normal@1.1.1/dist/halo-comment.min.js'}"></script>
<halo-comment id="${post.id}" type="${type}"/> <halo-comment id="${post.id}" type="${type}"/>
</#if> </#if>
<style> <style>

View File

@ -12,8 +12,8 @@
</a> </a>
<#else> <#else>
<span class="image is-7by1"> <span class="image is-7by1">
<img class="thumbnail" src="${post.thumbnail!}" alt="${post.title!}"> <img class="thumbnail" src="${post.thumbnail!}" alt="${post.title!}">
</span> </span>
</#if> </#if>
</div> </div>
</#if> </#if>
@ -117,7 +117,7 @@
</#if> </#if>
</div> </div>
</div> </div>
<#if !index> <#if !index && !is_sheet??>
<div class="card" style="font-size: 20px; line-height: 1.5em; padding: 5px; color: black; background-color: rgba(255, 255, 255, 0.7); border-left: 3px solid skyblue;"> <div class="card" style="font-size: 20px; line-height: 1.5em; padding: 5px; color: black; background-color: rgba(255, 255, 255, 0.7); border-left: 3px solid skyblue;">
<div class="card-content"> <div class="card-content">
<p style="font-size: 15px;"> <p style="font-size: 15px;">

View File

@ -4,7 +4,7 @@
<div class="level-start has-text-centered-mobile"> <div class="level-start has-text-centered-mobile">
<#if settings.busuanzi!true> <#if settings.busuanzi!true>
<p style="text-align: left; line-height: 20px; margin: 0"> <p style="text-align: left; line-height: 20px; margin: 0">
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> <script async src="${settings.cdn_busuanzi_js!}"></script>
<br> <br>
<span id="busuanzi_container_site_pv" style='display:none'>总访问量 <span id="busuanzi_value_site_pv"></span> 次 </span> <span id="busuanzi_container_site_pv" style='display:none'>总访问量 <span id="busuanzi_value_site_pv"></span> 次 </span>
<span id="busuanzi_container_site_uv" style='display:none'>| 总访客数 <span id="busuanzi_value_site_uv"></span> 人 </span> <span id="busuanzi_container_site_uv" style='display:none'>| 总访客数 <span id="busuanzi_value_site_uv"></span> 人 </span>
@ -46,7 +46,7 @@
</#if> </#if>
<#if settings.social_beian?? && settings.social_beian!=''> <#if settings.social_beian?? && settings.social_beian!=''>
<p style="text-align: left; line-height: 20px;margin: 0"> <p style="text-align: left; line-height: 20px;margin: 0">
<a href="http://beian.miit.gov.cn/" style="color: black;font-style: inherit;font-weight: inherit;"> <a target="_blank" href="http://beian.miit.gov.cn/" style="color: black;font-style: inherit;font-weight: inherit;">
${settings.social_beian!} ${settings.social_beian!}
</a> </a>
</p> </p>
@ -57,18 +57,17 @@
</p> </p>
</#if> </#if>
<#if settings.caidai!true> <#if settings.caidai!true>
<script src="${static!}/source/lib/caidai.js?date=${.now?string('yyyyMM')}"></script> <script src="${static!}/source/lib/caidai.js"></script>
</#if> </#if>
<#if settings.xiantiao!true> <#if settings.xiantiao!true>
<script type="text/javascript" <script type="text/javascript"
color="47,135,193" opacity='0.8' zIndex="-2" count="100" color="47,135,193" opacity='0.8' zIndex="-2" count="100"
src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"> src="${settings.cdn_canvas_nest_js!}">
</script> </script>
</#if> </#if>
<#if settings.dianji!true> <#if settings.dianji!true>
<script src="${static!}/source/lib/dianji.js?date=${.now?string('yyyyMM')}"></script> <script src="${static!}/source/lib/dianji.js"></script>
</#if> </#if>
</p>
<@global.footer /> <@global.footer />
</div> </div>
<div class="level-end"> <div class="level-end">

View File

@ -16,8 +16,7 @@
<div class="blog-slider__item swiper-slide"> <div class="blog-slider__item swiper-slide">
<div class="blog-slider__img"> <div class="blog-slider__img">
<a href="${context!}/archives/${post.url!}"> <a href="${context!}/archives/${post.url!}">
<img src="${post.thumbnail!}" <img src="${post.thumbnail!}" alt="${post.title!}">
alt="${post.title!}">
</a> </a>
</div> </div>
<div class="blog-slider__content"> <div class="blog-slider__content">
@ -34,7 +33,7 @@
</div> </div>
<!-- partial --> <!-- partial -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script> <script src='${settings.cdn_jquery_js!}'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.5/js/swiper.min.js'></script> <script src='${settings.cdn_swiper_js!}'></script>
</#if> </#if>
</#macro> </#macro>

View File

@ -10,14 +10,13 @@
</#if> </#if>
</a> </a>
<span class="navbar-burger burger" data-target="navMenu"> <span class="navbar-burger burger" data-target="navMenu">
<span></span> <span></span>
<span></span> <span></span>
<span></span> <span></span>
</span> </span>
</div> </div>
<div id="navMenu" class="navbar-menu transparent"> <div id="navMenu" class="navbar-menu transparent">
<div class="navbar-start transparent"> <div class="navbar-start transparent">
<@menuTag method="tree"> <@menuTag method="tree">
<#if menus?? && menus?size gt 0> <#if menus?? && menus?size gt 0>
<#if settings.tree_menu_enable!false> <#if settings.tree_menu_enable!false>
@ -26,48 +25,46 @@
<#if menu.children?? && menu.children?size gt 0> <#if menu.children?? && menu.children?size gt 0>
<div class="navbar-item has-dropdown is-hoverable"> <div class="navbar-item has-dropdown is-hoverable">
<a class="sub-menu"> <a class="sub-menu">
${menu.name!} <i class="${menu.icon!}" aria-hidden="true"></i>${menu.name!}
</a> </a>
<div class="navbar-dropdown is-boxed"> <div class="navbar-dropdown is-boxed">
<#list menu.children as child> <#list menu.children as child>
<a class="navbar-item" <a class="navbar-item" target="${child.target!'_self'}" href="${child.url!}">
href="${child.url!}"> <i class="${child.icon!}" aria-hidden="true"></i>&nbsp;${child.name!}
${child.name!}
</a> </a>
</#list> </#list>
</div> </div>
</div> </div>
<#else> <#else>
<a class="navbar-item" href="${menu.url}" <a class="navbar-item" href="${menu.url!}" target="${menu.target!'_self'}"><i class="${menu.icon!}" aria-hidden="true"></i>${menu.name!}</a>
target="${menu.target!}">${menu.name}</a>
</#if> </#if>
</#list> </#list>
</div> </div>
<#else> <#else>
<#if menus?? && menus?size gt 0> <#if menus?? && menus?size gt 0>
<div class="navbar-start"> <div class="navbar-start">
<#list menus?sort_by('priority') as menu> <#list menus?sort_by('priority') as menu>
<a class="navbar-item" href="${menu.url}" <a class="navbar-item" href="${menu.url!}" target="${menu.target!'_self'}"><i class="${menu.icon!}" aria-hidden="true"></i>${menu.name!}</a>
target="${menu.target!}">${menu.name}</a>
</#list> </#list>
</div> </div>
</#if> </#if> </#if>
</#if>
</#if> </#if>
</@menuTag> </@menuTag>
</div> </div>
<div class="navbar-end"> <div class="navbar-end">
<#-- ${settings.links_top!}--> <#--${settings.links_top!}
<#-- <a class="navbar-item search" title="夜间模式" href="javascript:alert('开发中,敬请期待');">--> <a class="navbar-item search" title="夜间模式" href="javascript:alert('开发中,敬请期待');">
<#-- <i class="fas fa-adjust"></i>--> <i class="fas fa-adjust"></i>
<#-- </a>--> </a>-->
<a class="navbar-item search" title="文章搜索" onclick="openSearchPanel()" href="javascript:;"> <a class="navbar-item search" title="文章搜索" onclick="openSearchPanel()" href="javascript:;">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
</a> </a>
</div> </div>
</div> </div>
</div>
</nav> </nav>
<style> <style>
</style> </style>
@ -79,8 +76,6 @@
burger.classList.toggle('is-active'); burger.classList.toggle('is-active');
menu.classList.toggle('is-active'); menu.classList.toggle('is-active');
}); });
})(); })();
</script> </script>
</#macro> </#macro>

View File

@ -1,17 +1,14 @@
<#--<script src="//cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>--> <script src="${settings.cdn_jquery_js!}"></script>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<#include "../plugin/gallery.ftl"> <#include "../plugin/gallery.ftl">
<#include "../plugin/outdated-browser.ftl"> <#include "../plugin/outdated-browser.ftl">
<#include "../plugin/mathjax.ftl"> <#include "../plugin/mathjax.ftl">
<#include "../plugin/back-to-top.ftl"> <#include "../plugin/back-to-top.ftl">
<script src="${static!}/source/js/bundle.js"></script> <script src="${static!}/source/js/bundle.js"></script>
<#if is_index??> <#if is_index??>
<script src="${static!}/source/js/widget_pin.js"></script> <script src="${static!}/source/js/widget_pin.js"></script>
</#if> </#if>
<#if is_post??> <#if is_post??>
<script src="${static!}/source/lib/toc/toc.min.js"></script> <script src="${static!}/source/lib/toc/toc.min.js"></script>
<script> <script>
new Toc({ new Toc({
@ -36,6 +33,4 @@
if (!urlstatus) { if (!urlstatus) {
$(".navbar-start a").eq(0).addClass('is-active'); $(".navbar-start a").eq(0).addClass('is-active');
} }
</script> </script>

View File

@ -1,63 +1,63 @@
<#macro widget position> <#macro widget position>
<#if is_post?? || is_sheet?? > <#if is_post?? || is_sheet?? >
<div class="column is-4-tablet is-3-desktop is-3-widescreen is-3-fullhd <#if position=='right'>is-hidden-touch </#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>"> <div class="column is-4-tablet is-3-desktop is-3-widescreen is-3-fullhd <#if position=='right'>is-hidden-touch </#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>">
<#elseif is_index??> <#elseif is_index??>
<div class="column is-4-tablet is-4-desktop <#if position=='right'>is-hidden-touch is-hidden-desktop-only is-4-widescreen is-4-fullhd <#else>is-3-widescreen</#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>"> <div class="column is-4-tablet is-4-desktop <#if position=='right'>is-hidden-touch is-hidden-desktop-only is-4-widescreen is-4-fullhd <#else>is-3-widescreen</#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>">
<#else > <#else>
<div class="column is-4-tablet is-4-desktop is-3-widescreen is-3-fullhd <#if position=='right'>is-hidden-touch is-hidden-desktop-only</#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>"> <div class="column is-4-tablet is-4-desktop is-3-widescreen is-3-fullhd <#if position=='right'>is-hidden-touch is-hidden-desktop-only</#if> <#if position == 'left'>has-order-1<#else>has-order-3</#if> column-${position} <%= sticky_class(position) %>">
</#if>
<#if position == 'left'>
<#if settings.sidebar_profile!true>
<#include "../widget/profile.ftl">
</#if>
<#if settings.music!true>
<div class="card"
style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); padding: 5px; backgroud-color: white">
<link rel="stylesheet" href="${settings.cdn_aplayer_css!}">
<script src="${settings.cdn_aplayer_js!}"></script>
<div id="aplayer" class="aplayer" data-id="${settings.music_id!}" data-server="netease"
data-type="playlist"
data-fixed="false" data-listfolded="true" data-order="list" data-theme="#F58EA8" style="width: 100%"></div>
<script src="${settings.cdn_meting_js!}"></script>
</div>
</#if>
<#if settings.sidebar_categories!true>
<#include "../widget/category.ftl">
</#if>
<#if settings.sidebar_tagcloud!true>
<#include "../widget/tagcloud.ftl">
</#if>
<#if settings.sidebar_links!true>
<#include "../widget/links.ftl">
</#if>
</#if>
<#if position == 'right'>
<#if post??>
<#include "../widget/cate_posts.ftl">
<#include "../widget/tag_posts.ftl">
<#include "../widget/toc-post.ftl">
<#else>
<#if settings.sidebar_recentpost!true>
<#include "../widget/recent_posts.ftl">
</#if> </#if>
<#if position == 'left'> </#if>
<#if settings.sidebar_profile!true> <#if settings.sidebar_recentcomment!true>
<#include "../widget/profile.ftl"> <#include "../widget/recent_comments.ftl">
</#if> </#if>
<#if settings.music!true> </#if>
<div class="card" <#if position == 'left'>
style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); padding: 5px; backgroud-color: white"> <div class="column-right-shadow is-hidden-widescreen is-6-fullhd ">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css"> <#if settings.sidebar_recentpost!true>
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js"></script> <#include "../widget/recent_posts.ftl">
<div id="aplayer" class="aplayer" data-id="${settings.music_id!}" data-server="netease"
data-type="playlist"
data-fixed="false" data-listfolded="true" data-order="list" data-theme="#F58EA8" style="width: 100%"></div>
<script src="https://unpkg.com/meting@1.2/dist/Meting.min.js"></script>
</div>
</#if>
<#if settings.sidebar_categories!true>
<#include "../widget/category.ftl">
</#if>
<#if settings.sidebar_tagcloud!true>
<#include "../widget/tagcloud.ftl">
</#if>
<#if settings.sidebar_links!true>
<#include "../widget/links.ftl">
</#if>
</#if> </#if>
<#if position == 'right'> <#if settings.sidebar_recentcomment!true>
<#if post??> <#include "../widget/recent_comments.ftl">
<#include "../widget/cate_posts.ftl">
<#include "../widget/tag_posts.ftl">
<#include "../widget/toc-post.ftl">
<#else>
<#if settings.sidebar_recentpost!true>
<#include "../widget/recent_posts.ftl">
</#if>
</#if>
<#if settings.sidebar_recentcomment!true>
<#include "../widget/recent_comments.ftl">
</#if>
</#if> </#if>
<#if position == 'left'> <#-- <#include "../widget/archive.ftl">-->
<div class="column-right-shadow is-hidden-widescreen is-6-fullhd "> <#if settings.sidebar_tags!true>
<#if settings.sidebar_recentpost!true> <#include "../widget/tag.ftl">
<#include "../widget/recent_posts.ftl">
</#if>
<#if settings.sidebar_recentcomment!true>
<#include "../widget/recent_comments.ftl">
</#if>
<#-- <#include "../widget/archive.ftl">-->
<#if settings.sidebar_tags!true>
<#include "../widget/tag.ftl">
</#if>
</div>
</#if> </#if>
</div> </div>
</#macro> </#if>
</div>
</#macro>

View File

@ -15,6 +15,6 @@
<div class="blog-slider__pagination"></div> <div class="blog-slider__pagination"></div>
</div> </div>
<!-- partial --> <!-- partial -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script> <script src='${settings.cdn_jquery_js!}'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.5/js/swiper.min.js'></script> <script src='${settings.cdn_swiper_js!}'></script>

View File

@ -29,9 +29,9 @@
<@global.head /> <@global.head />
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bulma@0.7.5/css/bulma.min.css"> <link rel="stylesheet" href="${settings.cdn_bulma_css!}">
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.4.1/css/all.css"> <link rel="stylesheet" href="${settings.cdn_fontawesome_css!}">
<link href="https://fonts.googleapis.com/css?family=Fira+Sans&display=swap" rel="stylesheet"> <link href="${settings.cdn_google_fonts!}/css?family=Fira+Sans&display=swap" rel="stylesheet">
<style> <style>
body > .footer, body > .footer,
body > .navbar, body > .navbar,
@ -65,11 +65,11 @@
</#if> </#if>
<#if is_post?? || is_sheet?? || is_journal??> <#if is_post?? || is_sheet?? || is_journal??>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/lightgallery@1.6.8/dist/css/lightgallery.min.css"> <link rel="stylesheet" href="${settings.cdn_lightgallery_css!}">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/css/justifiedGallery.min.css"> <link rel="stylesheet" href="${settings.cdn_justifiedGallery_css!}">
</#if> </#if>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.css"> <link rel="stylesheet" href="${settings.cdn_outdatedbrowser_css!}">
<script src="//cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min.js"></script> <script src="${settings.cdn_pace_js!}"></script>
<link rel="stylesheet" href="${static!}/source/css/style.css"> <link rel="stylesheet" href="${static!}/source/css/style.css">
<link rel="stylesheet" href="${static!}/source/css/bundle.css"> <link rel="stylesheet" href="${static!}/source/css/bundle.css">
@ -81,7 +81,7 @@
</#if> </#if>
<#if is_index??> <#if is_index??>
<link rel="stylesheet" href="${static!}/source/css/widget_pin.css"> <link rel="stylesheet" href="${static!}/source/css/widget_pin.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.5/css/swiper.min.css"> <link rel="stylesheet" href="${settings.cdn_swiper_css!}">
</#if> </#if>
<#if settings.kanbanniang!true> <#if settings.kanbanniang!true>
@ -93,7 +93,7 @@
<div class="card-normal"> <div class="card-normal">
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="columns"> <div class="columns"><#--<#if is_sheet??>is-centered</#if>-->
<#if post?? > <#if post?? >
<#if is_post??> <#if is_post??>
<#if settings.share_type !=''> <#if settings.share_type !=''>
@ -104,9 +104,10 @@
</div> </div>
<@widget 'right' /> <@widget 'right' />
<#elseif is_sheet??> <#elseif is_sheet??>
<div class="column is-12-tablet is-12-desktop is-12-widescreen is-12-fullhd has-order-2 column-main"> <div class="column is-12-tablet is-9-desktop is-9-widescreen is-9-fullhd has-order-3 column-main">
<#nested /> <#nested />
</div> </div>
<@widget 'right' />
</#if> </#if>
<#else > <#else >
<#if is_index??> <#if is_index??>

View File

@ -1,4 +1,4 @@
<#if is_post?? || is_sheet??> <#if is_post?? || is_sheet??>
<script src="//cdn.jsdelivr.net/npm/lightgallery@1.6.8/dist/js/lightgallery.min.js" defer></script> <script src="${settings.cdn_lightgallery_js!}" defer></script>
<script src="//cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/js/jquery.justifiedGallery.min.js" defer></script> <script src="${settings.cdn_justifiedGallery_js!}" defer></script>
</#if> </#if>

View File

@ -1,24 +1,24 @@
<#if (is_post?? || is_sheet??) && settings.mathjax_enable!false> <#if (is_post?? || is_sheet??) && settings.mathjax_enable!false>
<script src="//cdn.jsdelivr.net/npm/mathjax@2.7.5/unpacked/MathJax.js?config=TeX-MML-AM_CHTML" defer></script> <script src="${settings.cdn_mathjax_js!}" defer></script>
<script> <script>
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
MathJax.Hub.Config({ MathJax.Hub.Config({
'HTML-CSS': { 'HTML-CSS': {
matchFontHeight: false matchFontHeight: false
}, },
SVG: { SVG: {
matchFontHeight: false matchFontHeight: false
}, },
CommonHTML: { CommonHTML: {
matchFontHeight: false matchFontHeight: false
}, },
tex2jax: { tex2jax: {
inlineMath: [ inlineMath: [
['$','$'], ['$', '$'],
['\\(','\\)'] ['\\(', '\\)']
] ]
} }
});
}); });
});
</script> </script>
</#if> </#if>

View File

@ -4,13 +4,13 @@
my browser now </a></p> my browser now </a></p>
<p class="last"><a href="#" id="btnCloseUpdateBrowser" title="Close">&times;</a></p> <p class="last"><a href="#" id="btnCloseUpdateBrowser" title="Close">&times;</a></p>
</div> </div>
<script src="//cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.js" defer> <script src="${settings.cdn_outdatedbrowser_js!}" defer></script>
<script> <script>
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
outdatedBrowser({ outdatedBrowser({
bgColor: '#f25648', bgColor: '#f25648',
color: '#ffffff', color: '#ffffff',
lowerThan: 'flex' lowerThan: 'object-fit' // display on IE11 or below
}); });
}); });
</script> </script>

View File

@ -5,8 +5,8 @@
</a> </a>
</#if> </#if>
</div> </div>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/css/share.min.css"> <link rel="stylesheet" href="${settings.cdn_share_css!}">
<script src="//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/js/social-share.min.js"></script> <script src="${settings.cdn_share_js!}"></script>
<style> <style>
<#if is_post??> <#if is_post??>
.social-share a { .social-share a {

View File

@ -1,8 +1,7 @@
<div> <div>
<div id="toc"></div> <div id="toc"></div>
</div> </div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" <script src="${settings.cdn_jquery_js!}"></script>
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script> <script>
// initToc() // initToc()
// function initToc() { // function initToc() {
@ -103,7 +102,7 @@
createPostDirectory(document.getElementById('post-article'), document.getElementById('toc'), false); createPostDirectory(document.getElementById('post-article'), document.getElementById('toc'), false);
}; };
//建立关联关系 //建立关联关系
function initRelationship() { function initRelationship() {
var win = $(window); var win = $(window);
var anchors = $('#toc').find('a'); var anchors = $('#toc').find('a');
@ -123,13 +122,11 @@
} }
}) })
}) })
} }
postDirectoryBuild(); postDirectoryBuild();
initRelationship(); initRelationship();
var dir = $("#toc"); var dir = $("#toc");
var postdiv = $(".article-content"); var postdiv = $(".article-content");
var offsetLength = dir.offset().top var offsetLength = dir.offset().top
@ -168,8 +165,8 @@
} }
}) })
}) })
} }
function tocFixed() { function tocFixed() {
var dir = $("#toc"); var dir = $("#toc");
var postdiv = $(".article-content"); var postdiv = $(".article-content");
@ -189,7 +186,6 @@
} }
}); });
} }
</script> </script>
<style> <style>
#toc { #toc {
@ -221,7 +217,6 @@
width: 3px; width: 3px;
opacity: .2; opacity: .2;
z-index: 1; z-index: 1;
} }
#toc li, #toc ul { #toc li, #toc ul {
@ -235,7 +230,6 @@
position: relative; position: relative;
} }
#toc > ul li::before { #toc > ul li::before {
position: relative; position: relative;
top: 0; top: 0;
@ -277,7 +271,6 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
#toc ul li ul li a { #toc ul li ul li a {
@ -301,8 +294,6 @@
width: 200px; width: 200px;
} }
.directory-fixed { .directory-fixed {
position: fixed; position: fixed;
top: 0rem; top: 0rem;

View File

@ -36,8 +36,8 @@
</p> </p>
<div class="content"> <div class="content">
<div class="post-comment-wrap"> <div class="post-comment-wrap">
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js"></script> <script src="${settings.cdn_vue_js!}"></script>
<script src="https://cdn.jsdelivr.net/npm/halo-comment-normal@1.1.1/dist/halo-comment.min.js"></script> <script src="${options.comment_internal_plugin_js!'//cdn.jsdelivr.net/npm/halo-comment-normal@1.1.1/dist/halo-comment.min.js'}"></script>
<script> <script>
// var configs = { // var configs = {
// autoLoad: true, // autoLoad: true,

View File

@ -25,13 +25,13 @@
<@global.head /> <@global.head />
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bulma@0.7.5/css/bulma.min.css"> <link rel="stylesheet" href="${settings.cdn_bulma_css!}">
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.4.1/css/all.css"> <link rel="stylesheet" href="${settings.cdn_fontawesome_css!}">
<#include "layout/plugin/style.theme.ftl"> <#include "layout/plugin/style.theme.ftl">
<link rel="stylesheet" <link rel="stylesheet"
href="//cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.css"> href="${settings.cdn_outdatedbrowser_css!}">
<link rel="stylesheet" href="${static!}/source/css/style.css"> <link rel="stylesheet" href="${static!}/source/css/style.css">
<link rel="stylesheet" href="${static!}/source/css/bundle.css"> <link rel="stylesheet" href="${static!}/source/css/bundle.css">

View File

@ -366,4 +366,138 @@ custom_links:
</a> </a>
</p>' </p>'
custom_cdn:
label: CDN优选
items:
cdn_google_fonts:
name: cdn_google_fonts
label: Google Fonts
type: text
default: 'https://fonts.googleapis.com'
placeholder: 'CDN网址'
cdn_jquery_js:
name: cdn_jquery_js
label: jQuery
type: text
default: '//cdn.bootcss.com/jquery/3.4.1/jquery.min.js'
placeholder: 'CDN网址'
cdn_fontawesome_css:
name: cdn_fontawesome_css
label: fontawesome-css(Font Awesome图标字体库)
type: text
default: '//cdn.bootcss.com/font-awesome/5.4.1/css/all.min.css'
placeholder: 'CDN网址'
cdn_busuanzi_js:
name: cdn_busuanzi_js
label: busuanzi(不蒜子网页计数器)
type: text
default: '//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'
placeholder: 'CDN网址'
cdn_canvas_nest_js:
name: cdn_canvas_nest_js
label: canvas-nest(线条)
type: text
default: '//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js'
placeholder: 'CDN网址'
cdn_bulma_css:
name: cdn_bulma_css
label: bulma-css(Bulma框架)
type: text
default: '//cdn.jsdelivr.net/npm/bulma@0.7.5/css/bulma.min.css'
placeholder: 'CDN网址'
cdn_outdatedbrowser_js:
name: cdn_outdatedbrowser_js
label: outdatedbrowser-js(浏览器兼容性提示插件)
type: text
default: '//cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.js'
placeholder: 'CDN网址'
cdn_outdatedbrowser_css:
name: cdn_outdatedbrowser_css
label: outdatedbrowser-css(浏览器兼容性提示插件)
type: text
default: '//cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.css'
placeholder: 'CDN网址'
cdn_pace_js:
name: cdn_pace_js
label: pace-js(浏览器加载效果插件)
type: text
default: '//cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min.js'
placeholder: 'CDN网址'
cdn_vue_js:
name: cdn_vue_js
label: vue-js(VUE框架评论模块用)
type: text
default: '//cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js'
placeholder: 'CDN网址'
cdn_swiper_js:
name: cdn_swiper_js
label: Swiper-js(触摸滑动插件)
type: text
default: '//cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.5/js/swiper.min.js'
placeholder: 'CDN网址'
cdn_swiper_css:
name: cdn_swiper_css
label: Swiper-css(触摸滑动插件)
type: text
default: '//cdnjs.cloudflare.com/ajax/libs/Swiper/4.3.5/css/swiper.min.css'
placeholder: 'CDN网址'
cdn_mathjax_js:
name: cdn_mathjax_js
label: MathJax(数学公式支持插件)
type: text
default: '//cdn.jsdelivr.net/npm/mathjax@2.7.5/unpacked/MathJax.js?config=TeX-MML-AM_CHTML'
placeholder: 'CDN网址'
cdn_aplayer_js:
name: cdn_aplayer_js
label: APlayer-js(音乐播放器)
type: text
default: '//cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js'
placeholder: 'CDN网址'
cdn_aplayer_css:
name: cdn_aplayer_css
label: APlayer-css(音乐播放器)
type: text
default: '//cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css'
placeholder: 'CDN网址'
cdn_meting_js:
name: cdn_meting_js
label: Meting-js(音乐播放器)
type: text
default: '//cdn.jsdelivr.net/npm/meting@1.2.0/dist/Meting.min.js'
placeholder: 'CDN网址'
cdn_justifiedGallery_js:
name: cdn_justifiedGallery_js
label: Justified Gallery-js(相册展示插件)
type: text
default: '//cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/css/justifiedGallery.min.js'
placeholder: 'CDN网址'
cdn_justifiedGallery_css:
name: cdn_justifiedGallery_css
label: Justified Gallery-css(相册展示插件)
type: text
default: '//cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/css/justifiedGallery.min.css'
placeholder: 'CDN网址'
cdn_lightgallery_js:
name: cdn_lightgallery_js
label: lightgallery-js(灯箱插件)
type: text
default: '//cdn.jsdelivr.net/npm/lightgallery@1.6.8/dist/js/lightgallery.min.js'
placeholder: 'CDN网址'
cdn_lightgallery_css:
name: cdn_lightgallery_css
label: lightgallery-css(灯箱插件)
type: text
default: '//cdn.jsdelivr.net/npm/lightgallery@1.6.8/dist/css/lightgallery.min.css'
placeholder: 'CDN网址'
cdn_share_js:
name: cdn_share_js
label: social-share-js(文章分享)
type: text
default: '//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/js/social-share.min.js'
placeholder: 'CDN网址'
cdn_share_css:
name: cdn_share_css
label: social-share-css(文章分享)
type: text
default: '//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/css/share.min.css'
placeholder: 'CDN网址'

View File

@ -9,8 +9,8 @@
}); });
document.querySelector('body > .navbar').style.transform = 'translateY(-100px)'; document.querySelector('body > .navbar').style.transform = 'translateY(-100px)';
['.column-main > .card', ['.column-main > .card',
'.column-left > .card, .column-right-shadow > .card', '.column-left > .card, .column-right-shadow > .card',
'.column-right > .card'].map(function (selector) { '.column-right > .card'].map(function (selector) {
$(selector).forEach(function (element) { $(selector).forEach(function (element) {
element.style.transition = '0s'; element.style.transition = '0s';
element.style.opacity = '0'; element.style.opacity = '0';
@ -25,8 +25,8 @@
}); });
document.querySelector('body > .navbar').style.transform = 'translateY(0)'; document.querySelector('body > .navbar').style.transform = 'translateY(0)';
['.column-main > .card', ['.column-main > .card',
'.column-left > .card, .column-right-shadow > .card', '.column-left > .card, .column-right-shadow > .card',
'.column-right > .card'].map(function (selector) { '.column-right > .card'].map(function (selector) {
var i = 1; var i = 1;
$(selector).forEach(function (element) { $(selector).forEach(function (element) {
setTimeout(function () { setTimeout(function () {

View File

@ -1,9 +1,17 @@
var swiper = new Swiper('.blog-slider', { var swiper = new Swiper('.blog-slider', {
spaceBetween: 30, autoplay: {
effect: 'fade', delay: 3000,
// autoHeight: true, stopOnLastSlide: false,
pagination: { disableOnInteraction: true,
},
spaceBetween: 30,
effect: 'fade',
mousewheel: {
invert: false,
},
// autoHeight: true,
pagination: {
el: '.blog-slider__pagination', el: '.blog-slider__pagination',
clickable: true, clickable: true,
} }
}); });

View File

@ -1,80 +1,79 @@
(function(window,document,undefined){ (function (window, document, undefined) {
var hearts = []; var hearts = [];
window.requestAnimationFrame = (function(){ window.requestAnimationFrame = (function () {
return window.requestAnimationFrame || return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame || window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame || window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame || window.oRequestAnimationFrame ||
window.msRequestAnimationFrame || window.msRequestAnimationFrame ||
function (callback){ function (callback) {
setTimeout(callback,1000/60); setTimeout(callback, 1000 / 60);
} }
})(); })();
init(); init();
function init(){ function init() {
css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}"); css(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}");
attachEvent(); attachEvent();
gameloop(); gameloop();
} }
function gameloop(){ function gameloop() {
for(var i=0;i<hearts.length;i++){ for (var i = 0; i < hearts.length; i++) {
if(hearts[i].alpha <=0){ if (hearts[i].alpha <= 0) {
document.body.removeChild(hearts[i].el); document.body.removeChild(hearts[i].el);
hearts.splice(i,1); hearts.splice(i, 1);
continue; continue;
} }
hearts[i].y--; hearts[i].y--;
hearts[i].scale += 0.004; hearts[i].scale += 0.004;
hearts[i].alpha -= 0.013; hearts[i].alpha -= 0.013;
hearts[i].el.style.cssText = "left:"+hearts[i].x+"px;top:"+hearts[i].y+"px;opacity:"+hearts[i].alpha+";transform:scale("+hearts[i].scale+","+hearts[i].scale+") rotate(45deg);background:"+hearts[i].color; hearts[i].el.style.cssText = "left:" + hearts[i].x + "px;top:" + hearts[i].y + "px;opacity:" + hearts[i].alpha + ";transform:scale(" + hearts[i].scale + "," + hearts[i].scale + ") rotate(45deg);background:" + hearts[i].color;
} }
requestAnimationFrame(gameloop); requestAnimationFrame(gameloop);
} }
function attachEvent(){ function attachEvent() {
var old = typeof window.onclick==="function" && window.onclick; var old = typeof window.onclick === "function" && window.onclick;
window.onclick = function(event){ window.onclick = function (event) {
old && old(); old && old();
createHeart(event); createHeart(event);
} }
} }
function createHeart(event){ function createHeart(event) {
var d = document.createElement("div"); var d = document.createElement("div");
d.className = "heart"; d.className = "heart";
hearts.push({ hearts.push({
el : d, el: d,
x : event.clientX - 5, x: event.clientX - 5,
y : event.clientY - 5, y: event.clientY - 5,
scale : 1, scale: 1,
alpha : 1, alpha: 1,
color : randomColor() color: randomColor()
}); });
document.body.appendChild(d); document.body.appendChild(d);
} }
function css(css){ function css(css) {
var style = document.createElement("style"); var style = document.createElement("style");
style.type="text/css"; style.type = "text/css";
try{ try {
style.appendChild(document.createTextNode(css)); style.appendChild(document.createTextNode(css));
} } catch (ex) {
catch(ex){
style.styleSheet.cssText = css; style.styleSheet.cssText = css;
} }
document.getElementsByTagName('head')[0].appendChild(style); document.getElementsByTagName('head')[0].appendChild(style);
} }
function randomColor(){ function randomColor() {
return "rgb("+(~~(Math.random()*255))+","+(~~(Math.random()*255))+","+(~~(Math.random()*255))+")"; return "rgb(" + (~~(Math.random() * 255)) + "," + (~~(Math.random() * 255)) + "," + (~~(Math.random() * 255)) + ")";
} }
})(window,document); })(window, document);