Hexo深坑之旅(5)—Materia主題優(yōu)化

前言:上一次已經(jīng)將hexo成功部署到了Mac上,接著就該選擇主題了。之前在Windows上采用的是 jacman主題,而這一次在Hexo官網(wǎng)主題庫中發(fā)現(xiàn)了一個更為精美的主題—— Materia

文章須知:
在 Hexo 中,通常有兩份配置文件,一個是站點根目錄下的 _config.yml;另外一個是主題目錄下的 _config.yml。為了描述方便,在以下說明中,將前者稱為 站點配置文件,后者稱為 主題配置文件。
此外推薦閱讀hexo官方文檔Materia官方文檔,本文更多的對于前兩者的補充和解釋。

安裝Materia

方法一:Github

你可以在 Github 下載 穩(wěn)定的發(fā)布版本。

方法二:NPM

打開終端,cd 到 hexo 所在的目錄,執(zhí)行命令:

$ npm install hexo-material

安裝完畢后,首先在 hexo 目錄下的 themes 文件夾中新建一個文件夾 material ,之后在 hexo 目錄下的 node_modules 文件夾中找到 hexo-material 文件夾,然后把里面的全部文件復制到 materia 文件夾里。

hexo目錄結構:
|-- _config.yml
|-- node_modules
|-- package.json
|-- scaffolds
|-- scripts
|-- source
   |-- _drafts
   |-- _posts
|-- themes

注意?。?!
需要將 materia 主題下的配置文件 _config.template.yml 重命名為
_config.yml。
然后打開站點配置文件,查找 theme 參數(shù)并修改為 materia

theme: material

查找 language 參數(shù)并修改為 zh-CN

language: zh-CN

現(xiàn)在,運行 $ hexo s 并訪問 http://localhost:4000 確保站點正確運行。

基本配置

!!!注意

  • Material 主題中相對應的圖標可在 Material icons 查詢。

  • Material 主題中圖片調(diào)用地址為 /source/img/ 例:" /img/favicon.png "

Material 主題配置文件(節(jié)選)
# Head info
head:
    favicon: "/img/favicon.png" #網(wǎng)站的 favicon
    high_res_favicon: "/img/favicon.png"  #高清 favicon
    apple_touch_icon: "/img/favicon.png" #iOS 主屏按鈕圖標
    keywords: blog web 前端 #網(wǎng)站關鍵詞

# Jump Links Settings
url:
    rss:   #設置生成的 rss 或 atom url
    daily_pic: "https://zhouxiaoyu1994.github.io/FCC2017/resume/index.html"  #設置 daily_pic 模塊 點擊時跳轉(zhuǎn)的 url
    logo: "https://github.com/zhouxiaoyu1994"  #設置 logo 點擊時跳轉(zhuǎn)的 url


# ---------------------------------------------------------------
# Style Settings
# ---------------------------------------------------------------

# Schemes 
scheme: Paradox #主題外觀(默認)
#scheme: Isolation  #主題外觀(極簡)

# UI & UX: slogan, color, effect
uiux:
    slogan: "前端作品集"  #顯示在 blog_info 模塊中的標語,你可以設置單行標語或者多行標語:
    theme_color: "#0097A7"  #主題主要顏色。主題的大部分地方使用此顏色。
    theme_sub_color: "#00838F" #主題輔助顏色。
    hyperlink_color: "#00838F" #超鏈接顏色。
    button_color: "#757575" #按鈕顏色,例如 toTop 或 menu_button。
    android_chrome_color: "#0097A7" #安卓 Chrome 瀏覽器的地址欄顏色。
    nprogress_color: "#29d" #頁面加載時頂部加載進度條的顏色。
    nprogress_buffer: "800" #頁面加載時頂部加載進度條的緩沖時間。

# JS Effect Switches
js_effect: #用來控制 Material 主題中自帶的多種 js 特性。
    fade: true #頁面加載時部分模塊的漸顯效果,默認為 true。
    smoothscroll: false #頁面平滑滾動特效,默認為 false。

# Reading experience
reading: #用于設置閱讀體驗。
    entry_excerpt: 80 #首頁文章輸出摘要的字符長度。默認為 80。

# Thumbnail Settings
thumbnail:
    purecolor: #填入顏色代碼。如果文章內(nèi)無設置縮略圖,此項又不為空,則使用純色縮略圖。
    random_amount: 19 #隨機圖片數(shù)量,根據(jù) 主題所在文件夾/source/img/random 中的圖片數(shù)量設置。Material 主題默認提供了 19 張 Material 風格的縮略圖。

# Background Settings
# bing available parameter:
#     new | color= | type=
#         color available value: black, blue, brown, green, multi, orange, pink, purple, red, white, yellow
#         type available value: A (animal), C (culture), N (nature), S (space), T (travel)
background:
    #purecolor: "#F5F5F5" #填入顏色代碼。則站點使用純色背景。
    bgimg: "/img/bg.png" #背景地址,默認調(diào)用 主題文件夾 -> source -> img 中的 bg.png。可更換此圖片或者自己填入 url。
    bing: #用于啟用“必應美圖”的圖片作為背景。
        enable: false
        parameter:

# Images Settings
img:
    logo: "/img/logo.png" #顯示于 blog_info 模塊中。
    avatar: "/img/avatar.png"  #你的頭像設置。
    daily_pic: "/img/daily_pic.png"     #顯示于 daily_pic 模塊中。
    sidebar_header: "/img/sidebar_header.png"   #顯示于 sidebar 頂部。
    footerico: "/img/footer/footer_ico-"    #設置 footer 中 SNS 圖標的路徑。
    random_thumbnail: "/img/random/material-"   #隨機縮略圖的路徑。
    footer_image:   #你可以在側(cè)邊欄底部放置任何你想要的圖片。
        #upyun_logo:
            #link: "https://www.upyun.com/"
            #src: "/img/upyun_logo.svg"

# Custom Fonts #用于設置站點的字體。
fonts: Roboto, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微軟雅黑", Arial, sans-serif

# Card Elevation Level  
card_elevation: 2   #用來設置主題卡片陰影。


# ---------------------------------------------------------------
# Menu Settings
# ---------------------------------------------------------------

# SNS Menu
sns:    #用于填寫你的 SNS 信息,其中 email 會顯示在側(cè)邊欄,其他信息會以按鈕的形式顯示在 footer。
    email: 363993481@qq.com
    facebook: 
    twitter: 
    googleplus: 
    instagram:
    tumblr:
    bilibili:
    telegram:
    weibo: "http://weibo.com/p/1005055736438053/home?from=page_100505&mod=TAB&is_all=1#place"
    github: "https://github.com/zhouxiaoyu1994"
    linkedin: "http://www.linkedin.com/in/%E4%BF%8A%E9%98%B3-%E5%91%A8-811333136/"
    zhihu: "https://www.zhihu.com/people/zhou-xiao-yu-1994/activities"
    jianshu: "http://www.itdecent.cn/u/87b03448aa56"

# SNS Share Switch
sns_share:  #用于定義分享菜單中的項目, false 的項將不會顯示在分享菜單中。
    twitter: true
    facebook: true
    googleplus: false
    weibo: true
    linkedin: true
    qq: true
    telegram: false

# Sidebar Customize
sidebar:
    dropdown:   #用于設置 Paradox 側(cè)邊欄用戶下拉菜單,默認為空。
        Email Me:
            link: "mailto:363993481@qq.com"
            icon: email
        簡書:
            link: "http://www.itdecent.cn/u/87b03448aa56"
            icon: book
        Linkedin:
            link: "http://www.linkedin.com/in/%E4%BF%8A%E9%98%B3-%E5%91%A8-811333136/"
            icon: Linkedin
    homepage:
        use: true #設置 true 時會在側(cè)邊欄顯示 “主頁” 按鈕.
        icon: home  #在 “主頁” 前面顯示一個 Material 圖標。為空和被注釋時則不顯示.
        divider: false
    archives:
        use: true
        icon: inbox
        divider: false
    categories:
        use: true
        icon: chrome_reader_mode
        divider: false   
    pages:
        標簽云:  #該獨立頁面的名稱,請自行修改。
            link: "/tags"   #link 的參數(shù)為相對路徑,對應 hexo 目錄下的 source 文件夾內(nèi)的相應文件夾。
            icon: cloud   #icon 的參數(shù)為自定義的 Material 圖標,可用圖標可在 Material icons 查詢。
            divider: false  #設置成 true 后會在該條目底部增加一條分割線
        映像:
            link: "/gallery"
            icon: images
            divider: false
        前端作品集:
            link: "https://zhouxiaoyu1994.github.io/FCC2017/resume/index.html"
            icon: 
            divider: false
        友情鏈接:
            link: "/links"
            icon: 
            divider: false
    article_num:  #在主題的側(cè)邊欄顯示文章總數(shù)。
        use: false #設置成 true 時會在側(cè)邊欄顯示文章總數(shù)。
        divider: false
    footer:   #配置側(cè)邊欄的底部
        divider: false
        theme: false  #設置成 true 后會在側(cè)邊欄底部增加一個指向 Material 主題的鏈接。
        support: false
        feedback: false
        material: false

# Qrcode for redirect at other device
qrcode: true  #用于在文章頁中顯示二維碼,掃描二維碼即可直接打開文章。需要 hexo-helper-qrcode 支持,使用 npm install hexo-helper-qrcode --save 進行安裝。

插件拓展

友情鏈接

Material 主題自帶有友情鏈接模塊 links

創(chuàng)建頁面

在 hexo 目錄下的 source 文件夾內(nèi)創(chuàng)建一個名為 links(只是建議,可根據(jù)自己喜好修改)的文件夾。
然后在文件內(nèi)創(chuàng)建一個名為 index.md 的 Markdown 文件。
在 index.md 文件內(nèi)寫入如下內(nèi)容即可。

---
title: links
date:
layout: links
---

!!!注意: title 可修改,layout 不可修改。

添加數(shù)據(jù)

同樣在在 hexo 目錄下的 source 文件夾內(nèi)創(chuàng)建一個名為 _data(禁止改名)的文件夾。然后在文件內(nèi)創(chuàng)建一個名為 links.yml 的文件。
在 links.yml 文件內(nèi)寫入如下內(nèi)容即可。

Name:    #將 Name 改為友情鏈接的名字,例如 Viosey。
    link: http://example.com  #友情鏈接的地址。
    avatar: http://example.com/avatar.png   #友情鏈接的頭像。
    descr: "這是一個描述"   #為友情鏈接描述。

添加多個友情鏈接,只需要根據(jù)上面的格式重復填寫即可。

修改主題配置

打開主題配置文件,在 pages 參數(shù)下寫入如下內(nèi)容:

pages:
        友情鏈接:
            link: "/links"
            icon: 
            divider: false

圖庫

Material 主題自帶有圖庫模塊 gallery

創(chuàng)建頁面

在 hexo 目錄下的 source 文件夾內(nèi)創(chuàng)建一個名為 gallery(只是建議,可根據(jù)自己喜好修改)的文件夾。然后在文件內(nèi)創(chuàng)建一個名為 index.md 的 Markdown 文件。
在 index.md 文件內(nèi)寫入如下內(nèi)容即可。

---
title: gallery
date:
layout: gallery
---
添加數(shù)據(jù)

同樣在在 hexo 目錄下的 source 文件夾內(nèi)創(chuàng)建一個名為 _data(禁止改名)的文件夾。然后在文件內(nèi)創(chuàng)建一個名為 gallery.yml 的文件。
在 gallery.yml 文件內(nèi)寫入如下內(nèi)容即可。

Name:   #圖片名字,例如 Material
    full_link: http://example.com/full-image.png  #為完整圖片的地址。
    thumb_link: http://example.com/thumb-image.png  #為圖片縮略圖的地址,如果沒有縮略圖也可使用完整圖片的地址。
    descr: "這是一個描述"    #圖片描述。
修改主題配置

打開主題配置文件,在 pages 參數(shù)下寫入如下內(nèi)容:

圖庫:   #可改名
       link: "/gallery"
       icon: images
       divider: false

!!!注意 !!!注意 !!!注意
之前按照這樣設置完圖庫模塊后,發(fā)現(xiàn)不能正確加載圖片的縮略圖。

img.png

去Material主題 官方demo 查看、對比了一番,發(fā)現(xiàn)是因為缺少了一些CSS樣式。
img1.png

知道問題后就比較簡單了,首先找到生成
gallery 頁面的文件(/material/layout/_widget/page-gallery.ejs)。
打開文件,在添加相應css代碼:style="cursor: pointer;outline: 0px;display: block;background-image: url(<%= site.data.gallery[i].thumb_link %>);"

<!-- Main -->
        <div id="main">
            <% if (site.data.gallery) { %>
                <% for (var i in site.data.gallery) { %>
                    <article class="thumb">
                        <a href="<%= site.data.gallery[i].full_link %>" class="image lazy" data-original="<%= site.data.gallery[i].thumb_link %>" style="cursor: pointer;outline: 0px;display: block;background-image: url(<%= site.data.gallery[i].thumb_link %>);"><img class="lazy" data-original="<%= site.data.gallery[i].thumb_link %>" alt="<%= i %>" /></a>
                        <h2><%= i %></h2>
                        <p><%= site.data.gallery[i].descr %></p>
                    </article>
                <% } %>
            <% } %>
        </div>

標簽云

Material 主題自帶有標簽云模塊 tags

創(chuàng)建頁面

在 hexo 目錄下的 source 文件夾內(nèi)創(chuàng)建一個名為 tags(只是建議,可根據(jù)自己喜好修改)的文件夾。然后在文件內(nèi)創(chuàng)建一個名為 index.md 的 Markdown 文件。
在 index.md 文件內(nèi)寫入如下內(nèi)容即可。

---
title: tags
date:
layout: tags
---

topPost

使用該插件可以將指定文章置頂。需要按照先下載安裝 $ npm install hexo-helper-post-top --save
之后在您需要置頂文章的 .md 中,添加 top: true 即可置頂。

本地搜索

使用本地搜索需要安裝 hexo-generator-search 插件。
然后在 站點配置文件中添加

search:
path: search.xml
field: all

不蒜子

使用 不蒜子 瀏覽次數(shù)統(tǒng)計,僅需在 主題配置文件 中將 busuanzi: enable: 的值設置為 true。

- enable:         默認為 false。  
- all_site_uv:     默認為 false。 #可統(tǒng)計全站的獨立訪客人數(shù),即可在 blog_info 模塊的 Menu 菜單中看到。  
- post_pv:       默認為 false。   # 統(tǒng)計每篇文章的頁面瀏覽次數(shù),在文章頁的 分享按鈕 菜單中可看到。
- busuanzi_pure_mini_js:       統(tǒng)計 js。  #調(diào)用不蒜子統(tǒng)計 js 文件,可將該文件保存至你的 WebServer 或 CDN 中,然后在這里填入 URL。

結語

至此,Hexo深坑之旅也算告一段落了。作為一個輕量級博客管理工具 Hexo 無疑是非常強大的,不論是其便捷性、靈活性,還是可塑性,都是十分優(yōu)秀和精致。不過說到底他也只是一個工具,博客的核心始終還是文章,不能本末倒置。如今博客的框架已經(jīng)大致完成,雖然還不是特別完善,但是也該把精力投入到學習和寫作當中去了,至于 hexo 的其他優(yōu)化只用等到用到時,再進行更新。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容