Hexo 靜態(tài)站點(diǎn)具有一定的局限性碗暗,需要借助第三方插件來(lái)擴(kuò)展站點(diǎn)的功能惫叛。
網(wǎng)上很多教程都是直接添加某些代碼,但現(xiàn)在很多也已經(jīng)merge到源碼了山害,所以修改就比較方便了,true
or false
沿量,開(kāi)啟或關(guān)閉功能浪慌,有些功能可能還需要在第三方服務(wù)上注冊(cè)賬號(hào),獲取API
和APK
朴则。
利用Hexo搭建博客的人很多眷射,但不都是千篇一律的,有些好的還是要借鑒的佛掖,更好的是能夠有自己的風(fēng)格~~~
RSS
什么是RSS妖碉?
簡(jiǎn)易信息聚合(也叫聚合內(nèi)容)是一種RSS基于XML標(biāo)準(zhǔn),在互聯(lián)網(wǎng)上被廣泛采用的內(nèi)容包裝和投遞協(xié)議芥被。RSS(Really Simple Syndication)是一種描述和同步網(wǎng)站內(nèi)容的格式欧宜,是使用最廣泛的XML應(yīng)用。RSS搭建了信息迅速傳播的一個(gè)技術(shù)平臺(tái)拴魄,使得每個(gè)人都成為潛在的信息提供者冗茸。發(fā)布一個(gè)RSS文件后,這個(gè)RSS Feed中包含的信息就能
直接被其他站點(diǎn)調(diào)用
匹中,而且由于這些數(shù)據(jù)都是標(biāo)準(zhǔn)的XML格式夏漱,所以也能在其他的終端和服務(wù)中使用,是一種描述和同步網(wǎng)站內(nèi)容的格式顶捷」掖拢——百度百科
1 生成RSS文件
安裝hexo-generator-feed
插件
$ npm install --save hexo-generator-feed
打開(kāi)站點(diǎn)配置文件
,字段Extensions服赎,添加如下
# Extensions
## Plugins: http://hexo.io/plugins/
plugins: hexo-generate-feed
打開(kāi)主題配置文件
葵蒂,字段rss交播,添加如下
rss: /atom.xml
配置完成,執(zhí)行下列命令践付,可以看到/public
文件夾中多了一個(gè)atom.xml
文件
$ hexo g
發(fā)布之后秦士,在側(cè)邊欄會(huì)生成一個(gè)RSS圖標(biāo)
2 RSS遷移
安裝hexo-migrator-rss
插件
$ npm install --save hexo-migrator-rss
執(zhí)行下列命令,從 RSS 遷移所有文章永高。source
可以是文件路徑或網(wǎng)址隧土。
$ hexo migrate rss <source>
評(píng)論系統(tǒng)
NexT支持多款評(píng)論系統(tǒng)
如果想要取消某個(gè)頁(yè)面or文章的評(píng)論,在文章的屬性中增加
comments: false
1 Valine
一款基于Leancloud的快速命爬、簡(jiǎn)潔且高效的無(wú)后端評(píng)論系統(tǒng)次洼。
支持匿名評(píng)論
- 效果圖:
-
獲取
APP ID
和APP KEY
進(jìn)入應(yīng)用 > 設(shè)置 > 應(yīng)用Key,可以看到
APP ID
和APP KEY
-
配置
打開(kāi)
主題配置文件
遇骑,字段Valine# Valine. # You can get your appid and appkey from https://leancloud.cn # more info please open https://valine.js.org valine: enable: true appid: # 填寫(xiě)獲取的APP ID appkey: # 填寫(xiě)獲取的APP KEY notify: true # 郵件提醒 verify: true # 驗(yàn)證碼 placeholder: Just go go # 評(píng)論提示語(yǔ) avatar: mm # 頭像卖毁,具體看Valine官網(wǎng) guest_info: nick,mail,link # 評(píng)論者相關(guān)屬性 pageSize: 10 # 分頁(yè)
2 暢言
需要實(shí)名登錄,最不能接受的是還要綁定手機(jī)
-
獲取
APP ID
和APP KEY
比較麻煩的是站點(diǎn)需要備案落萎,沒(méi)有備案只能使用15天
有種投機(jī)取巧的方式亥啦,自行搜索
進(jìn)入 >
后臺(tái)總覽
,就可以看到了 -
配置
打開(kāi)
主題配置文件
练链,字段changyanchangyan: enable: true appid: # 填寫(xiě)獲取的APP ID appkey: # 填寫(xiě)獲取的APP KEY
?
訪問(wèn)統(tǒng)計(jì)
頁(yè)腳設(shè)計(jì):/themes/next/layout/_partials/footer.swig
文章設(shè)置:/themes/next/layout/_macro/post.swig
1 不蒜子統(tǒng)計(jì)
進(jìn)入主題配置文件
翔脱,字段busuanzi
相關(guān)設(shè)置文件/themes/next/layout/_third-party/analytics/busuanzi-counter.swig
busuanzi_count:
# count values only if the other configs are false
enable: true
# custom uv span for the whole site 整個(gè)網(wǎng)站訪問(wèn)用戶量
site_uv: true
site_uv_header: 本站訪客數(shù)
site_uv_footer: 人次
# custom pv span for the whole site 整個(gè)網(wǎng)站訪問(wèn)總次數(shù)
site_pv: true
site_pv_header: 本站總訪問(wèn)量
site_pv_footer: 次
# custom pv span for one page only 一篇文章的閱讀次數(shù)
page_pv: true
page_pv_header: 本文總閱讀量
page_pv_footer: 次
2 LeanCloud統(tǒng)計(jì)
leancloud_visitors: # 文章閱讀次數(shù)統(tǒng)計(jì)
enable: true
appid: # 填寫(xiě)獲取的APP ID
appkey: # 填寫(xiě)獲取的APP KEY
3 字?jǐn)?shù)統(tǒng)計(jì)
-
安裝插件
$ npm install --save hexo-wordcount
-
配置
post_wordcount: item_text: true wordcount: false # 文章字?jǐn)?shù) min2read: false # 閱讀時(shí)長(zhǎng)預(yù)計(jì) totalcount: true # 全站字?jǐn)?shù) separated_meta: false # 分行
博文置頂
修改插件hero-generator-index
,文件node_modules/hexo-generator-index/lib/generator.js
// var posts = locals.posts.sort(config.index_generator.order_by);
// 改為
var posts = locals.posts;
posts.data = posts.data.sort(function(a, b) {
if(a.top && b.top) { // 兩篇文章top都有定義
if(a.top == b.top) return b.date - a.date; // top值一樣則按照文章日期降序排
else return b.top - a.top; // 否則按照top值降序排
}
else if(a.top && !b.top) { // 只有一篇文章top有定義媒鼓,將排在最前面
return -1;
}
else if(!a.top && b.top) {
return 1;
}
else return b.date - a.date; // 都沒(méi)定義按照文章日期降序排
});
文章屬性添加top
值届吁,數(shù)值越大越靠前
top: # 數(shù)值
文章搜索
-
安裝插件
$ npm install hexo-generator-searchdb --save
-
站點(diǎn)配置文件
,添加search: path: search.xml field: post format: html limit: 10000
-
主題配置文件
绿鸣,字段local_search# Local search # Dependencies: https://github.com/flashlab/hexo-generator-search local_search: enable: ture # if auto, trigger search by changing input # if manual, trigger search by pressing enter key or search button trigger: auto # show top n results per article, show all results by setting to -1 top_n_per_article: 1
?
添加掛件
-
安裝插件
$ npm install -save hexo-helper-live2d
-
安裝掛件
$ npm install --save live2d-widget-model-xxx # xxx為掛件名
-
配置
站點(diǎn)配置文件
疚沐,添加live2d: enable: true scriptFrom: local model: # 掛件模型 use: live2d-widget-model-hijiki display: # 位置 # position: right width: 80 height: 160 bottom: -120 mobile: # 手機(jī)顯示 show: false
?
在線聯(lián)系
基于DaoVoice實(shí)現(xiàn)
-
注冊(cè)賬號(hào)
邀請(qǐng)碼
832ef3b6
-
獲取API
應(yīng)用設(shè)置 > 安裝到網(wǎng)站
-
配置
文件
/themes/next/layout/_partials/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:') + "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: # 你獲取的API
-
效果
當(dāng)有人發(fā)信息給你的時(shí)候亮蛔,你可以通過(guò)DaoVoice在線交流,也可以關(guān)注DaoVoice小程序擎厢,綁定你的賬號(hào)
添加音樂(lè)
網(wǎng)易云音樂(lè)外鏈
-
? 單曲
復(fù)制代碼究流,粘貼在你想要的位置,可以是文章 或者是 側(cè)邊欄
歌單
自己的歌單是沒(méi)有生成外鏈动遭。分享 動(dòng)態(tài) 外鏈
-
效果
可以縮放
Aplayer
-
引入js文件
-
APlayer.min.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/aplayer/1.6.0/APlayer.min.js"></script>
位置
themes/next/layout/_partials/head.swig
-
Meting.min.js
<script src="https://cdn.jsdelivr.net/npm/meting@1.0.1/dist/Meting.min.js"></script>
位置
themes/next/layout/_partials/footer.swig
-
-
添加音樂(lè)
-
音樂(lè)平臺(tái)
<div class="aplayer" data-id="" data-server=""></div>
參數(shù)解釋:
- data-id: 歌曲/專輯/歌單 ID
- data-server: 音樂(lè)平臺(tái)芬探,支持如下參數(shù)
- netease (網(wǎng)易云音樂(lè))
- tencent (qq音樂(lè))
- xiami (蝦米音樂(lè))
- kugou (酷狗音樂(lè))
- baidu (百度音樂(lè))
- data-type: 請(qǐng)求類型,支持如下參數(shù)
song (單曲)
album (專輯)
playlist (歌單)
-
search (搜索)
?
-
音樂(lè)外鏈(參數(shù)名可能與Aplayer中的不一樣)
<div class="aplayer" data-title="" data-author="" data-url="" data-pic="" data-lrc=""></div>
參數(shù)解釋:
data-title: 歌名
data-author: 歌手
data-url: 音樂(lè)鏈接
data-pic: 音樂(lè)封面
-
data-lrc: 歌詞
?
-
其他參數(shù)
- data-mode: 播放模式
- random (隨機(jī))
- single (單曲)
- circulation (列表循環(huán))
- order (列表)
- data-autoplay: 自動(dòng)播放
false
-
true
?
- data-mode: 播放模式
-
-
推薦
Aplayer自定義比iframe還好厘惦,可以加載有版權(quán)問(wèn)題的音樂(lè)偷仿,墻裂推薦!!炎疆!
(????)??嗨!一下
這部分純屬玩樂(lè)国裳,有點(diǎn)酷炫形入,我把它設(shè)置在了頭像上,可以點(diǎn)擊試一試
音樂(lè)有點(diǎn)鬼畜缝左,想不有什么好的亿遂,節(jié)奏可以配上該動(dòng)畫(huà)
參考來(lái)自:Hexo high一下小功能
-
資源
js:http://oxv1k8kvi.bkt.clouddn.com/High.js
可以自行下載來(lái)看一下
里面的音樂(lè)地址和css可以替換一下
-
配置
文件
/themes/next/layout/_partials/head.swig
,添加<script type="text/javascript" src="http://oxv1k8kvi.bkt.clouddn.com/High.js"></script>
然后渺杉,在你想要點(diǎn)擊實(shí)現(xiàn)
high一下
功能的地方蛇数,添加<a title="(????)??嗨!一下" style="underline: none" rel="alternate" class="mw-harlem_shake_slow wobble shake" href="javascript:shake()"> XXX </a>
?