EasyHexo👉 輕鬆使用 Hexo 搭建你的博客javascript
EasyHexo GitHub Repo👉 EasyHexo/Easy-Hexocss
本篇做者:yi-yunhtml
這篇文章並無劃定適宜人羣,只是但願你能夠經過此篇教程找到適合你的配置,或者經過個人博客找到一些靈感。這就是這篇教程的意義。java
另外,須要說明的是,個人博客使用的主題是 Next 6.3
版本。react
學習以前,還但願你能先學一點 Yaml 基礎知識 以及 Stylus 基礎知識。不會的話多動手也能夠作到,並不須要熟練掌握。git
root
目錄,即包括你的 themes/
、source/
等文件夾的博客根目錄。我的不喜歡這個設計因此改了github
themes\next\source\css\_common\components\post\post-reward.styl
,將 hover
註釋便可themes\next\source\css\_custom\custom.styl
中添加劇疊樣式(推薦)//二維碼不抖動
#wechat:hover p, #alipay:hover p {
animation: none;
}
複製代碼
themes\next\source\css\_custom\custom.styl
中添加代碼//打賞按鈕修改
#rewardButton span {
height: 35px;
width: 35px;
//line-height:30px;
font-size: 15px;
font-family: "PingFang SC", "Microsoft YaHei", Georgia, sans-serif;
background: #34495e;
border-radius: 5px;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
transition: 0.2s ease-out;
&:hover {
background: #649ab6;
-webkit-box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
-moz-box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
}
}
複製代碼
themes\next\languages\zh-CN.yml
文件,將打賞字樣改成reward:
donate: <i class="fa fa-qrcode fa-2x" style="line-height:35px;"></i>
wechatpay: 微信支付
alipay: 支付寶
複製代碼
PS: 這裏語言文件的名字跟不一樣主題有關係,有可能不是
zh-CN.yml
web
busuanzi
統計功能主題配置文件中搜索 busuanzi
增長shell
busuanzi_count:
enable: true
site_uv: true #total visitors
site_uv_icon: user
site_uv_header: 訪問用戶:
site_uv_footer: 人
site_pv: true #total views
site_pv_icon: eye
site_pv_header: 訪問次數:
site_pv_footer: 次
post_views: true
post_views_icon: eye
複製代碼
themes\next\layout\_third-party\analytics\busuanzi-counter
變動爲npm
<i class="fa fa-{{ theme.busuanzi_count.site_uv_icon }}"></i> 
{{ theme.busuanzi_count.site_uv_header }}
<span class="busuanzi-value" id="busuanzi_value_site_uv"></span>
{{ theme.busuanzi_count.site_uv_footer }}
<i class="fa fa-{{ theme.busuanzi_count.site_pv_icon }}"></i> 
{{ theme.busuanzi_count.site_pv_header }}
<span class="busuanzi-value" id="busuanzi_value_site_pv"></span>
{{ theme.busuanzi_count.site_pv_footer }}
複製代碼
PS: busuanzi
由於在 2018.10.12 左右七牛雲域名過時,致使沒法顯示人數,若是你的主題是舊版本,請在第二步的文件中更新爲 src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"
雖然是異步,但訪問速度太慢,常常加載不出來
在主題配置文件中搜索 rating
便可
點擊此連接註冊帳號,設置站點後,點擊左側設置, site
建議選私人,rate
選擇顏色保存便可
複製 ID 到配置文件,選擇顏色
添加代碼,搜索 rating
,對比代碼
{% if theme.rating.enable %}
<div class="wp_rating">
+ <div style="color: rgba(0, 0, 0, 0.75); font-size:13px; letter-spacing:3px">(>看完記得五星好評哦<)</div>
<div id="wpac-rating"></div>
</div>
{% endif %}
複製代碼
修改文章底部留白 添加以下代碼:
.post-widgets {
padding-top: 0px;
}
.post-nav {
margin-top: 30px;
}
複製代碼
原理:去除友鏈,將友鏈換成近期文章
添加以下代碼:
{% if theme.recent_posts %}
<div class="links-of-blogroll motion-element {{ "links-of-blogroll-" + theme.recent_posts_layout }}">
<div class="links-of-blogroll-title">
<i class="fa fa-history fa-{{ theme.recent_posts_icon | lower }}" aria-hidden="true"></i>
{{ theme.recent_posts_title }}
</div>
<ul class="links-of-blogroll-list">
{% set posts = site.posts.sort('-date') %}
{% for post in posts.slice('0', '5') %}
<li>
<a href="{{ url_for(post.path) }}" title="{{ post.title }}" target="_blank">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
複製代碼
在主題配置文件中配置
recent_posts_title: 近期文章
recent_posts_layout: block
recent_posts: true
複製代碼
在 themes\next\source\js\src
新建 copy.js
,代碼以下:
function addLink() {
var body_element = document.body; var selection;
selection = window.getSelection();
if (window.clipboardData) { // Internet Explorer
var pagelink ="\r\n\r\n 原文出自[ Yi-Yun博客 ](yi-yun.github.io) \n除特別聲明外,均採用CC BY-NC-SA 4.0許可協議\n轉載請保留原文連接: "+document.location.href+"";
var copytext = selection + pagelink;
window.clipboardData.setData ("Text", copytext);
return false;
}
else {
var pagelink = "<br/>原文出自[ Yi-Yun博客 ](yi-yun.github.io)<br/>除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議<br/>轉載請保留原文連接: "+document.location.href+"";
var copytext = selection + "<br/>"+pagelink;
var newdiv = document.createElement('div');
newdiv.style.position='absolute';
newdiv.style.left='-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function() { body_element.removeChild(newdiv);},0);
}
}
document.oncopy = addLink;
複製代碼
在 next\layout\_layout.swig
文件中,添加引用(注:在 swig
文件末尾添加):
<script type="text/javascript" src="/js/src/copy.js"></script>
複製代碼
不少靈感都是逛博客得到的
首先在 DaoVoice 註冊個帳號,點擊->邀請碼是 cbaf2df2
。
點擊左側應用設置->安裝到網站
在代碼中找到app_id
head.swig
在 themes\next\layout\_custom\head.swig
添加以下代碼
{% if theme.daovoice %}
<script> (function(i,s,o,g,r,a,m){i["DaoVoiceObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;a.charset="utf-8";m.parentNode.insertBefore(a,m)})(window,document,"script",('https:' == document.location.protocol ? 'https:' : 'http:') + "//widget.daovoice.io/widget/0f81ff2f.js","daovoice") daovoice('init', { app_id: "{{theme.daovoice_app_id}}" }); daovoice('update'); </script>
{% endif %}
複製代碼
文件末尾添加以下代碼
# Online contact
daovoice: true
daovoice_app_id: # 這裏填你剛纔得到的 app_id
複製代碼
至此,網頁的在線聯繫功能已經完成,hexo s
可查看頁面,窗口和位置可自行配置
個人配置
在用戶界面點擊右上角頭像便可掃碼綁定,即時通訊可在微信小程序中
安裝依賴
npm install --save hexo-helper-live2d
npm install --save live2d-widget-model-wanko
複製代碼
站點配置
# hexo-helper-live2d配置,參考https://github.com/EYHN/hexo-helper-live2d/blob/master/README.zh-CN.md
live2d:
enable: true
scriptFrom: local
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/
tagMode: false
debug: false
model:
scale: 1
use: live2d-widget-model-wanko
display:
superSample: 2 # 超採樣等級
width: 100
height: 100
position: left # 位置
mobile:
show: false
react:
opacityDefault: 0.9 # 默認透明度
opacityOnHover: 0.5 # 鼠標移上透明度
複製代碼
添加 JavaScript 代碼 在 themes\next\source\js\src
文件夾下建立 crash_cheat.js
,添加代碼:
var OriginTitle = document.title;
var titleTime;
document.addEventListener('visibilitychange', function () {
if (document.hidden) {
$('[rel="icon"]').attr('href', "/img/TEP.ico");
document.title = '╭(°A°`)╮ 頁面崩潰啦 ~';
clearTimeout(titleTime);
}
else {
$('[rel="icon"]').attr('href', "/favicon.ico");
document.title = '(ฅ>ω<*ฅ) 噫又好了~' + OriginTitle;
titleTime = setTimeout(function () {
document.title = OriginTitle;
}, 2000);
}
});
複製代碼
引用
在themes\next\layout\_layout.swig
文件中,添加引用(注:在swig末尾添加):
<script type="text/javascript" src="/js/src/crash_cheat.js"></script>
複製代碼
修改 themes\next\layout\_macro\passage-end-tag.swig
文件
<div>
{% if not is_index %}
<div style="text-align:center;color: #ccc;font-size:14px;">-------------本文結束<i class="fa fa-paw"></i>感謝您的閱讀-------------</div>
{% endif %}
</div>
複製代碼
更改主題配置文件中的圖標名字便可
icon:
name: user
animated: true
color: "#808080"
複製代碼
找到本身相應的 Scheme
下的相關文件,個人是 Pisces
。
themes\next\source\css\_schemes\Pisces\_layout.styl
themes\next\source\css\_schemes\Pisces\_sidebar.styl
找到 background
屬性更改成 background: rgba(255,255,255,0.7)
即爲透明度30%的白色
找到 themes\next\source\js\src\util.js
function updateSidebarHeight(height) {
height = height || 'auto';
$('.site-overview, .post-toc').css('max-height', height);
}
複製代碼
可在 height
後加50
在 hexo/themes/[your theme]/layout
文件夾下找到你的 footer
文件
<span id="timeDate">載入天數...</span>
<span id="times">載入時分秒...</span>
<script>
var now = new Date();
function createtime() {
var grt= new Date("02/14/2018 12:49:00");
//此處修改你的建站時間或者網站上線時間
now.setTime(now.getTime()+250);
days = (now - grt ) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum);
hnum = Math.floor(hours);
if(String(hnum).length ==1 ){
hnum = "0" + hnum;
}
minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
mnum = Math.floor(minutes); if(String(mnum).length ==1 )
{
mnum = "0" + mnum;
}
seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
snum = Math.round(seconds);
if(String(snum).length ==1 ){snum = "0" + snum;}
document.getElementById("timeDate").innerHTML = "本站已安全運行 "+dnum+" 天 ";
document.getElementById("times").innerHTML = hnum + " 小時 " + mnum + " 分 " + snum + " 秒";
}
setInterval("createtime()",250);
</script>
複製代碼
注:這個腳本源於
anime.js
的官網,由hexo-theme-melody
的開發者Molunerfinn
最早引出。
下載這個腳本,放在 themes/next/source/js/src
修改代碼
{% if theme.fireworks %}
<canvas class="fireworks" style="position: fixed;left: 0;top: 0;z-index: 1; pointer-events: none;" ></canvas>
<script type="text/javascript" src="//cdn.bootcss.com/animejs/2.2.0/anime.min.js"></script>
<script type="text/javascript" src="/js/src/fireworks.js"></script>
{% endif %}
複製代碼
打開主題配置文件,在裏面最後寫下:
fireworks: true
複製代碼
看我的喜愛修改,不必定要改的如出一轍
更改 index.swig
文件 your-hexo-site\themes\next\layout
{% block title %} {{ config.title }} {% endblock %}
{% block title %} {{ theme.keywords }} - {{ config.title }}{{ theme.description }} {% endblock %}
{% block title %}{{ theme.description }}-{{ title }}{% if theme.index_with_subtitle and subtitle %} – {{ subtitle }}{% endif %}{% endblock %}
複製代碼
編輯站點配置文件,修改其中的 permalink
字段改成 permalink: :title.html
便可。
修改代碼
{{ __('footer.powered', '<a class="theme-link" href="http://hexo.io" rel="external nofollow">Hexo</a>') }}
<a class="theme-link" href="https://github.com/iissnan/hexo-theme-next" rel="external nofollow">
複製代碼
同理,sidebar.swig也做以下修改
<a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank" rel="external nofollow">
<a href="{{ link }}" target="_blank" rel="external nofollow">{{ name }}</a>
複製代碼
好久之前的事情了...有些參考連接找不到了,並且找不到原創...
好了,本文就到這裏。若是對 Hexo 有什麼疑問,歡迎在評論區中提問,我會盡力回答。或者你也能夠選擇更優秀的方式 issue 提問!
若是你想學學 Hexo,能夠到 EasyHexo 學習。
謝謝你們!
🎉🎉🎉