jas0nhuang

製作 Hexo主題 - 小小 (四) 其它功能

Hexo主題的基本架構、外觀差不多完成,最後還要加上一些其它頁面及功能像是: 標籤頁(tags)、關於(about)、留言(comments)、RSS……等。

標籤頁 tags

這個部分真的有一點點複雜,搞了好久才把頁面生出來,但是它的運作原理猴子還是沒能完全理解,可能沒有足夠程式設計的基礎,每個功能、頁面之間的連結始終搞不太清楚,總之,靠著股溝還是硬把主題裡面的標籤頁面建立好了,下面是製作過程:

先建立tags頁面 hexo new page tags,這會在blog根目錄建立./source/tags/index.md檔案。

建立模版檔是最搞不清楚的部分,本來以為 layout/tag.ejs會是主選單裡標籤連結所使用的模版,也就是點入標籤連結就會連到 layout/tag.ejs然後產生 tag列表頁面,但原來不是,這個 layout/tag.ejs是個別標籤所使用的模版,也就是點入某個標籤,如:Hexo、Theme、Git……等等,就會運用此模版產生頁面。

選單裡標籤連結所使用的模版要再自已創建 layout/_partial/tags.ejs檔案。
還要在剛剛建立的 tags/index.md頁面上修改front-matter部分。

title: tags
date:
type: "tags"
layout: "_partial/tags"

關於 about

hexo new page about建立頁面,自介不自介隨便。

留言區 comments

又有一絲絲的慾望要自已弄個留言版程式,想想還是算了,慢慢不那麼菜再來搞,這裡還是用現成的服務。
以下主要照著 MOxFIVE大大的文章为 Hexo主题添加评论模块完成。是說, MOxFIVE大大的網站有點花俏……

申請 Disqus帳號。
修改 ./layout/layout.ejs檔案,加上以下段落啟用評論

<% if (!is_home() && page.comments){ %>
<%- partial('_partial/comments', {
shortname: theme.disqus.shortname
}) %>
<% } %>

建立 _partial/comments.ejs模版

<section id="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '<%= shortname%>';

/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</section>

修改_config.yml檔,加入以下內容:

disqus: 
shortname: JAS0NHUANG

還是記得要把 JAS0NHUANG換成你自已 Disqus的 shortname。

最後到不想要開啟留言功能的頁面,例如標籤頁面),在 tags/index.md檔的 Front-matter裡加上 comments: false就好了。

RSS

這好像一定要裝一個外掛:hexo-generator-feed,在部落格根目錄裡運行:npm install hexo-generator-feed --save

編輯 主題目錄裡的 _config.yml:

menu:
RSS: /atom.xml

#RSS
plugin:
- hexo-generator-feed
#RSS plugin config
feed:
type: atom
path: atom.xml
limit:10

好像這樣就可以了,先來試試。
喔,好像還要把 Hexo根目錄裡 _config.yml檔的 yoursite.com改成網站位址

CC

在 footer裡加上版權宣告圖示及連結。
創用CC官網下載CC圖檔,然後在 footer裡加上以下程式碼:

<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">
<img src="<%- theme.cc %>" alt="CC" height="16">
</a>

在每篇文章的 Front-matter裡指定永久連結。