i18n
xaoxuu 6 years ago
parent 9c45c85659
commit 57bc4fecd6
  1. 42
      _config.yml
  2. 3
      layout/_partial/footer.ejs
  3. 19
      layout/_partial/head.ejs
  4. 6
      layout/_partial/meta.ejs
  5. 186
      layout/_partial/scripts.ejs
  6. 2
      layout/_third-party/aplayer.ejs
  7. 22
      layout/_third-party/comments.ejs
  8. 2
      layout/_widget/music.ejs
  9. 18
      source/js/app.js

@ -1,20 +1,39 @@
##########################################################################
############################## 主题基本信息 ################################
theme_info:
# 这一页的内容可以修改值,但是不要删除行。初次使用主题请务必阅读官方文档!!!
# 这一页的内容可以修改值,但是不要删除行。初次使用主题请务必阅读官方文档!!!
# 这一页的内容可以修改值,但是不要删除行。初次使用主题请务必阅读官方文档!!!
############################### 基本信息 ###############################
info:
name: Material X
version: 1.0-beta11
docs: https://xaoxuu.com/wiki/material-x/
# 主题的CDN地址,如果你的源码托管到国内CDN可以更改此链接。如需启用CDN,请在主目录的config中设置import,详见文档。
cdn: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@18.12.36/
##########################################################################
# 请务必阅读官方文档!!!
# 请务必阅读官方文档!!!
# 请务必阅读官方文档!!!
# 主题的CDN地址。如需启用CDN,请在主目录的config中设置,详见文档。
cdn: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@18.12.37/
############################### 主题样式 ###############################
# style: material # material: 导航栏和标题栏背景是主题色
style: pure # pure: 导航栏和标题栏背景是白色
# style: material # 导航栏和标题栏背景是主题色
style: pure # 导航栏和标题栏背景是白色
############################### 服务开关 ###############################
# 服务开关,如果你想禁用某些功能,直接设置为false或者注释掉,相关的js脚本就不会加载。
# 有些服务这里打开了也未必会生效,还需要额外的配置,详见文档。
services:
cdn: true
scrollreveal: true
nodewaves: true
busuanzi: true
# fastclick: true
leancloud_visitors: true
recommended_posts: true # 需要安装"hexo-recommended-posts": "^1.0.3",
comments: true
music: true
############################### 杂项 ###############################
# 这里的widgets字段是对widget的默认设置,如需修改请参照文档在主目录的config中写。
widgets:
# 文章分类的默认配置
@ -41,6 +60,7 @@ widgets:
post: true # layout: post 的页面是否显示
# 推荐文章
recommended_posts:
autoDisplay: false # 自动在文章底部显示推荐文章,如果你使用Material-X主题,这里要设置为false。

@ -10,7 +10,6 @@
<%}%>
<br>
<div>博客内容遵循 <a target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" class="licenses">知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议</a></div>
<div>本站使用 <a href="https://xaoxuu.com/wiki/material-x/" target="_blank" class="codename">Material X</a> 作为主题,
总访问量为 <span id="busuanzi_value_site_pv"><i class="fas fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span> 次。
<div>本站使用 <a href="https://xaoxuu.com/wiki/material-x/" target="_blank" class="codename">Material X</a> 作为主题<% if (theme.services && theme.services.busuanzi == true) { %>,总访问量为 <span id="busuanzi_value_site_pv"><i class="fas fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span> 次<% } %>。
</div>
</footer>

@ -43,6 +43,11 @@
<% }) %>
<% } %>
<!-- link -->
<% if (theme.services && theme.services.nodewaves == true) { %>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-waves@0.7.6/dist/waves.min.css">
<% } %>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.6.3/css/all.min.css">
<% if (config.import && config.import.link){ %>
<% (config.import.link||[]).forEach(function(item){ %>
<link rel="<%= item.rel %>" href="<%- item.href %>"
@ -54,17 +59,17 @@
<% }) %>
<% } %>
<!-- style.css -->
<% if (config.import && config.import.style == true) { %>
<%- css(theme.theme_info.cdn + 'css/style.css') %>
<% } else if (config.import && config.import.style && config.import.style.length > 0){ %>
<%- css(config.import.style) %>
<% if (theme.services && theme.services.cdn == true) { %>
<%- css(theme.info.cdn + 'css/style.css') %>
<% } else { %>
<%- css('style.css') %>
<% } %>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.6.3/css/all.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-waves@0.7.6/dist/waves.min.css">
<% if (config.import && config.import.css && config.import.css.length > 0) { %>
<%- css(config.import.css) %>
<% } %>
<script>
function setLoadingBarProgress(num) {

@ -40,14 +40,14 @@
<%- partial('categories',{post:post}) %>
<% } %>
<% if(!isPostList){ %>
<% if (config.leancloud_visitors && config.leancloud_visitors.app_id && config.leancloud_visitors.app_key) { %>
<% if(!isPostList && theme.services){ %>
<% if (theme.services.leancloud_visitors == true && config.leancloud_visitors && config.leancloud_visitors.app_id && config.leancloud_visitors.app_key) { %>
<div class="browse leancloud"><i class="fas fa-eye fa-fw" aria-hidden="true"></i>
<span id="<%= url_for(page.path) %>" class="leancloud_visitors" data-flag-title="<%= page.title %>">
<span class="leancloud-visitors-count"><i class="fas fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span>
</span>
</div>
<% } else { %>
<% } else if (theme.services.busuanzi == true) { %>
<div class="browse busuanzi"><i class="fas fa-eye fa-fw" aria-hidden="true"></i>
<span id="busuanzi_value_page_pv"><i class="fas fa-spinner fa-spin fa-fw" aria-hidden="true"></i></span>
</div>

@ -1,24 +1,4 @@
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/node-waves@0.7.6/dist/waves.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/scrollreveal@4.0.5/dist/scrollreveal.min.js"></script>
<!-- 访问统计 -->
<script async src="https://cdn.jsdelivr.net/gh/xaoxuu/cdn-busuanzi@2.3/js/busuanzi.pure.mini.js"></script>
<!-- fastclick -->
<script src="https://cdn.jsdelivr.net/npm/fastclick@1.0.6/lib/fastclick.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
FastClick.attach(document.body)
}, false)
</script>
<% if (config.import && config.import.js == true) { %>
<%- js([theme.theme_info.cdn + 'js/app.js', theme.theme_info.cdn + 'js/search.js']) %>
<% } else if (config.import && config.import.js && config.import.js.length > 0) { %>
<%- js(config.import.js) %>
<% } else { %>
<%- js(['js/app.js', 'js/search.js']) %>
<% } %>
<% if (theme.search && theme.search.enable) { %>
<script>
var GOOGLE_CUSTOM_SEARCH_API_KEY = "<%- theme.search.google_api_key %>";
@ -35,69 +15,45 @@
if(!ROOT.endsWith('/'))ROOT += '/';
</script>
<% } %>
<% if ((page.layout == 'post' && page.comments != false) || page.comments == true) { %>
<% if (config.disqus_shortname){ %>
<script>
var disqus_shortname = '<%= config.disqus_shortname %>';
<% if (page.permalink){ %>
var disqus_url = '<%= page.permalink %>';
<% } %>
(function(){
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/<% if (page.comments) { %>embed.js<% } else { %>count.js<% } %>';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
<% if (theme.services) { %>
<% if (theme.services.scrollreveal == true) { %>
<script src="https://cdn.jsdelivr.net/npm/scrollreveal@4.0.5/dist/scrollreveal.min.js"></script>
<script type="text/javascript">
$(function() {
const $reveal = $('.reveal');
if ($reveal.length === 0) return;
const sr = ScrollReveal({ distance: 0 });
sr.reveal('.reveal');
});
</script>
<% } %>
<% if (config.livere_uid){ %>
<% if (theme.services.nodewaves == true) { %>
<script src="https://cdn.jsdelivr.net/npm/node-waves@0.7.6/dist/waves.min.js"></script>
<script type="text/javascript">
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s);
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script');
$(function() {
Waves.attach('.flat-btn', ['waves-button']);
Waves.attach('.float-btn', ['waves-button', 'waves-float']);
Waves.attach('.float-btn-light', ['waves-button', 'waves-float', 'waves-light']);
Waves.attach('.flat-box', ['waves-block']);
Waves.attach('.float-box', ['waves-block', 'waves-float']);
Waves.attach('.waves-image');
Waves.init();
});
</script>
<% } %>
<% if (config.valine){ %>
<% if (config.valine.enable && config.valine.app_id && config.valine.app_key){ %>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<% if (config.import && config.import.js == true) { %>
<script src="https://cdn.jsdelivr.net/gh/xaoxuu/volantis@1.0/js/volantis.min.js"></script>
<% } else { %>
<%- js('js/volantis.js') %>
<% if (theme.services.busuanzi == true) { %>
<script async src="https://cdn.jsdelivr.net/gh/xaoxuu/cdn-busuanzi@2.3/js/busuanzi.pure.mini.js"></script>
<% } %>
<% if (theme.services.fastclick == true) { %>
<!-- fastclick -->
<script src="https://cdn.jsdelivr.net/npm/fastclick@1.0.6/lib/fastclick.min.js"></script>
<script>
var GUEST_INFO = ['nick','mail','link'];
var guest_info = '<%= config.valine.guest_info %>'.split(',').filter(function(item){
return GUEST_INFO.indexOf(item) > -1
});
var notify = '<%= config.valine.notify %>' == true;
var verify = '<%= config.valine.verify %>' == true;
var valine = new Valine();
valine.init({
el: '#valine_container',
notify: notify,
verify: verify,
guest_info: guest_info,
appId: "<%= config.valine.app_id %>",
appKey: "<%= config.valine.app_key %>",
placeholder: "<%= config.valine.placeholder %>",
pageSize:'<%= config.valine.pageSize %>',
avatar:'<%= config.valine.avatar %>',
lang:'<%= config.valine.lang %>',
highlight:'<%= config.valine.highlight %>'
})
document.addEventListener('DOMContentLoaded', function() {
FastClick.attach(document.body)
}, false)
</script>
<% } %>
<% } %>
<% } %>
<% if (theme.services.leancloud_visitors == true) { %>
<!-- leancloud_visitors -->
<% if (config.leancloud_visitors && config.leancloud_visitors.app_id && config.leancloud_visitors.app_key) { %>
<script src="https://cdn.jsdelivr.net/gh/xaoxuu/cdn-leancloud@18.12.24/js/av-core-mini-0.6.4.js"></script>
@ -204,3 +160,85 @@
});
</script>
<% } %>
<% } %>
<%
var displayComments = false;
if (page && theme.services) {
if ((config.disqus_shortname || config.livere_shortname || config.valine) && theme.services.comments == true && page.comments != false) {
displayComments = true;
}
}
%>
<% if (displayComments == true) { %>
<% if ((page.layout == 'post' && page.comments != false) || page.comments == true) { %>
<% if (config.disqus_shortname){ %>
<script>
var disqus_shortname = '<%= config.disqus_shortname %>';
<% if (page.permalink){ %>
var disqus_url = '<%= page.permalink %>';
<% } %>
(function(){
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/<% if (page.comments) { %>embed.js<% } else { %>count.js<% } %>';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<% } %>
<% if (config.livere_uid){ %>
<script type="text/javascript">
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s);
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script');
</script>
<% } %>
<% if (config.valine){ %>
<% if (config.valine.enable && config.valine.app_id && config.valine.app_key){ %>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<% if (theme.services && theme.services.cdn == true) { %>
<script src="https://cdn.jsdelivr.net/gh/xaoxuu/volantis@1.0/js/volantis.min.js"></script>
<% } else { %>
<%- js('js/volantis.js') %>
<% } %>
<script>
var GUEST_INFO = ['nick','mail','link'];
var guest_info = '<%= config.valine.guest_info %>'.split(',').filter(function(item){
return GUEST_INFO.indexOf(item) > -1
});
var notify = '<%= config.valine.notify %>' == true;
var verify = '<%= config.valine.verify %>' == true;
var valine = new Valine();
valine.init({
el: '#valine_container',
notify: notify,
verify: verify,
guest_info: guest_info,
appId: "<%= config.valine.app_id %>",
appKey: "<%= config.valine.app_key %>",
placeholder: "<%= config.valine.placeholder %>",
pageSize:'<%= config.valine.pageSize %>',
avatar:'<%= config.valine.avatar %>',
lang:'<%= config.valine.lang %>',
highlight:'<%= config.valine.highlight %>'
})
</script>
<% } %>
<% } %>
<% } %>
<% } %>
<% if (theme.services.cdn == true) { %>
<%- js([theme.info.cdn + 'js/app.js', theme.info.cdn + 'js/search.js']) %>
<% } else { %>
<%- js(['js/app.js', 'js/search.js']) %>
<% } %>
<% } %>
<% if (config.import && config.import.js && config.import.js.length > 0) { %>
<%- js(config.import.js) %>
<% } %>

@ -1,3 +1,4 @@
<% if (theme.services && theme.services.music == true) { %>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.7.0/dist/APlayer.min.css">
<div class="aplayer"
data-theme="<%- aplayer_theme %>"
@ -11,3 +12,4 @@
</div>
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.7.0/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@1.1.0/dist/Meting.min.js"></script>
<% } %>

@ -1,14 +1,26 @@
<!-- 显示推荐文章和评论 -->
<% if (page && ((theme.recommended_posts && theme.recommended_posts.autoDisplay == false && page.recommended_posts != false) || (page.comments && (config.disqus_shortname || config.livere_shortname || config.valine)) )) { %>
<%
var displayRecommentedPosts = false;
var displayComments = false;
if (page && theme.services) {
if (theme.services.recommended_posts == true && theme.recommended_posts && theme.recommended_posts.autoDisplay == false && page.layout == 'post' && page.recommended_posts != false) {
displayRecommentedPosts = true;
}
if ((config.disqus_shortname || config.livere_shortname || config.valine) && theme.services.comments == true && page.comments != false) {
displayComments = true;
}
}
%>
<% if (displayRecommentedPosts || displayComments) { %>
<article class="post white-box comments">
<section class="article typo">
<% if (theme.recommended_posts && theme.recommended_posts.autoDisplay == false && page.recommended_posts != false) { %>
<% if (displayRecommentedPosts) { %>
<%- partial('recommended_posts', {page: page, site: site}) %>
<% } %>
<% if (page.comments) { %>
<% if (displayComments) { %>
<h4><i class="fas fa-comments fa-fw" aria-hidden="true"></i>&nbsp;评论</h4>
<% if (config.disqus_shortname) { %>
<section id="comments">
@ -17,7 +29,6 @@
</div>
</section>
<% } %>
<% if (config.livere_uid){ %>
<section id="comments">
<div id="lv-container" data-id="city" data-uid="<%= config.livere_uid %>">
@ -25,7 +36,6 @@
</div>
</section>
<% } %>
<% if (config.valine){ %>
<% if (config.valine.enable && config.valine.app_id && config.valine.app_key){ %>
<div class="subtitle">

@ -38,7 +38,7 @@ if (theme.widgets.music && theme.widgets.music.display) {
}
%>
<% if (needDisplay == true) { %>
<% if (theme.services && theme.services.music == true && needDisplay == true) { %>
<section class='<%- item.widget %>'>
<%- partial('header', {item: item, defIcon: '', defTitle: ''}) %>
<div class='content <%= theme.style %>'>

@ -135,21 +135,6 @@ var customSearch;
});
}
function setWaves() {
Waves.attach('.flat-btn', ['waves-button']);
Waves.attach('.float-btn', ['waves-button', 'waves-float']);
Waves.attach('.float-btn-light', ['waves-button', 'waves-float', 'waves-light']);
Waves.attach('.flat-box', ['waves-block']);
Waves.attach('.float-box', ['waves-block', 'waves-float']);
Waves.attach('.waves-image');
Waves.init();
}
function setScrollReveal() {
const $reveal = $('.reveal');
if ($reveal.length === 0) return;
const sr = ScrollReveal({ distance: 0 });
sr.reveal('.reveal');
}
function setTocToggle() {
const $toc = $('.toc-wrapper');
if ($toc.length === 0) return;
@ -206,8 +191,7 @@ var customSearch;
setHeaderMenu();
setHeaderMenuPhone();
setHeaderSearch();
setWaves();
setScrollReveal();
setTocToggle();
// $(".article .video-container").fitVids();

Loading…
Cancel
Save