轉(zhuǎn)載:Github Pages + Hexo搭建博客(二)
此篇博客主要講解Hexo的站點(diǎn)配置、主題配置和使用以及博客文章的發(fā)布。
在Hexo中有兩份主要的配置文件,其名稱都是_config.yml。其中,一份位于站點(diǎn)根目錄下,主要包含Hexo本身的配置,我們稱之為全局配置文件;另一份位于主題目錄下,這份配置由主題作者提供,主要用于配置主題相關(guān)的選項,我們稱之為主題配置文件。
hexo的官方網(wǎng)站:https://hexo.io/,里面有hexo的詳細(xì)說明文檔,不過是英文的。沒關(guān)系,英語不好的請往下看。
注意:配置文件中每個字段后面的冒號是英文格式的,且在其后要加一個空格再寫值
比如:
title: Myblog
編輯hexo目錄下的_config.yml文件,具體配置如下
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/
# Site 站點(diǎn)信息配置,根據(jù)自己的需要進(jìn)行修改
title: Line's Blog? ? #站點(diǎn)名,會在瀏覽器頁面標(biāo)簽左上角顯示
subtitle: Love Coding,Enjoy Life? #副標(biāo)題
description: fzy-line? #對站點(diǎn)的描述,給搜索引擎看的,可以自定義
author: Line? #網(wǎng)站作者
language: zh-Hans? #網(wǎng)站語言
timezone: Asia/Shanghai? #時區(qū)
avatar: /images/logo.jpg? #網(wǎng)站logo,會在瀏覽器頁面標(biāo)簽左上角顯示
# URL 博客地址,與申請的GitHub一致
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://fzy-line.github.io/
root: /
#博客鏈接格式
permalink: :year/:month/:day/:title/
permalink_defaults:
# Directory? #目錄設(shè)置,一般不修改
source_dir: source? #資源文件夾,放在里面的文件會上傳到github中
public_dir: public? #公共文件夾,存放生成的靜態(tài)文件
tag_dir: tags? #標(biāo)簽文件夾,默認(rèn)是tags。實際存放在source/tags中。
archive_dir: archives? #檔案文件夾,默認(rèn)是archives。
category_dir: categories? #分類文件夾,默認(rèn)是categories。實際存放在source/categories中。
code_dir: downloads/code? #代碼文件夾,默認(rèn)是downloads/code
i18n_dir: :lang? #國際化文件夾,默認(rèn)跟language相同
skip_render:? #跳過指定文件的渲染,您可使用 glob 來配置路徑。
# Writing? 這是文章布局、寫作格式的定義,一般不修改
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace:
# Category & Tag? #分類和標(biāo)簽,一般不修改
default_category: uncategorized
category_map:
tag_map:
# Date / Time format? #日期、時間格式,一般不修改
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
# Pagination? #可根據(jù)自己需要修改
## Set per_page to 0 to disable pagination
per_page: 6? #分頁,每頁文章數(shù)量
pagination_dir: page
# Extensions? #擴(kuò)展
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next? #博客主題
# Deployment 這里配置站點(diǎn)部署到Github,上一節(jié)中已經(jīng)講過
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: git@github.com:你的Github用戶名.github.io.git
branch: master
Hexo 安裝主題的方式非常簡單,只需要將主題文件拷貝至站點(diǎn)目錄的 themes 目錄下, 然后修改下配置文件即可。
hexo官方主題下載地址:https://hexo.io/themes/,里面有多種多樣的主題模板供大家選擇。
這里推薦一款很火的主題:next,下面的配置也是以這個主題為例。如果你使用的是其他的主題,那么請你自己根據(jù)說明文檔進(jìn)行配置。
next主題的官網(wǎng),有很詳細(xì)的配置文檔:http://theme-next.iissnan.com/
next下載地址:https://github.com/iissnan/hexo-theme-next
到Gtihub下載此主題后解壓,打開可以看到里面很多主題相關(guān)的文件,我們將此文件夾改名為next,然后將它復(fù)制到站點(diǎn)目錄的/themes/目錄下。
hexo默認(rèn)是使用的landscape主題,我們可以在站點(diǎn)目錄下的/themes/目錄下看到landscape文件夾。
我們的themes文件夾里可以放很多主題的文件夾,但是實際上我們的網(wǎng)站采用哪一個主題,這是需要我們進(jìn)行配置的,打開編輯全局配置文件,找到下面的內(nèi)容:
# Extensions? #擴(kuò)展
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next? #博客主題,默認(rèn)是landscape
在theme字段這里填上你下載的主題的文件夾的名字,例如我們使用next主題就填上next。這樣配置文件就和我們的主題文件關(guān)聯(lián)起來了。
主題配置文件位于站點(diǎn)目錄下的/themes/next/目錄下,打開編輯,這里我們只貼出需要修改的地方進(jìn)行介紹,如下:
(1)配置基本信息
# 網(wǎng)站圖標(biāo),將其放在hexo站點(diǎn)/source/目錄下
favicon: /logo.jpg
# 關(guān)鍵詞,例如下面是我寫的
keywords: "Python,Life,Android"
# 網(wǎng)站建立時間,顯示在頁面底部
since: 2016
# 網(wǎng)站版權(quán)聲明,顯示在頁面底部
copyright: true
(2)選擇外觀樣式
目前 NexT 支持三種 Scheme,他們是:
Muse - 默認(rèn) Scheme,這是 NexT 最初的版本,黑白主調(diào),大量留白
Mist - Muse 的緊湊版本,整潔有序的單欄外觀
Pisces - 雙欄 Scheme,小家碧玉似的清新
找到主題配置文件的如下三行,其中#號表示注釋,要啟用哪一種樣式就把#號去掉即可。
# Schemes
#scheme: Muse
#scheme: Mist
scheme: Pisces
(3)設(shè)置菜單
菜單內(nèi)容的設(shè)置格式是:item name: link。其中 item name 是一個名稱,這個名稱并不直接顯示在頁面上,它將用于匹配圖標(biāo)以及翻譯。
menu:
home: /
archives: /archives
categories: /categories
tags: /tags
about: /about
#sitemap: /sitemap.xml
#commonweal: /404.html
此設(shè)定格式是 item name: icon name,其中 item name 與上一步所配置的菜單名字對應(yīng),icon name 是 Font Awesome 圖標(biāo)的 名字。而 enable 可用于控制是否顯示圖標(biāo),你可以設(shè)置成 false 來去掉圖標(biāo)。
menu_icons:
enable: true
#KeyMapsToMenuItemKey: NameOfTheIconFromFontAwesome
home: home
about: user
categories: th
schedule: calendar
tags: tags
archives: archive
sitemap: sitemap
commonweal: heartbeat
$ hexo clean #用于清除緩存
$ hexo generate #生成靜態(tài)網(wǎng)頁
$ hexo server #開啟本地預(yù)覽
訪問:http://localhost:4000/查看效果,如下圖:
到這里會發(fā)現(xiàn)點(diǎn)擊左側(cè)菜單的分類、標(biāo)簽和關(guān)于會提示找不到頁面。
這是因為我們只是創(chuàng)建了菜單,還沒有創(chuàng)建相應(yīng)的頁面。
新建頁面的hexo命令是:
$ hexo new page "pageName"
我們新建分類、標(biāo)簽、關(guān)于頁面:
$ hexo new page 'categories'
$ hexo new page 'tags'
$ hexo new page 'about'
分別執(zhí)行完這三條命令后,我們會發(fā)現(xiàn)站點(diǎn)目錄下的/source/目錄下多了三個文件夾:categories,tags,about,每個文件夾里面都會生成一個index.md文件,如下:
默認(rèn)都只會生成title和date字段,我們要為其添加上type字段,并賦值。
注意:博客文章的抬頭信息中每個字段后面的冒號是英文格式的,而且其后要加一個空格再寫值
categories下的index.md:
---
title: categories
date: 2016-12-02 23:28:27
type: categories
---
tags下的index.md:
title: tags
date: 2016-12-02 23:31:23
type: tags
about下的index.md:
title: about
date: 2016-12-02 23:31:23
type: about
這樣我們的這幾個頁面也就沒有問題了。至此,基本的配置也就完成了,接下來介紹如何寫博客與發(fā)布博客。
$ hexo new "postName" #新建文章
實例:
新建博客《我的第一篇博客》
$ hexo new "我的第一篇博客"
到站點(diǎn)目錄下的/source/_posts/目錄下可以看到生成了名為:我的第一篇博客.md的文件,這是Markdown格式的文件,可以用sublime text3或者notepad++等編輯器打開,也可以下載一個MarkdownPad來編輯Markdown文件。
Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語言,通過簡單的標(biāo)記語法,它可以使普通文本內(nèi)容具有一定的格式。
如果你沒有使用過Markdown編輯器,那請你自己去學(xué)習(xí)一下Markdown語法。
Markdown 語法說明(簡體中文版):http://www.appinn.com/markdown/
Hexo默認(rèn)新建的文章抬頭已有title、date、tags等屬性,可能缺乏categories和meta標(biāo)簽,想要指定目錄就需要添加categories屬性,而meta標(biāo)簽則是為了便于搜索引擎的收錄。如下:
---
title: 我的第一篇博客
date: 2016-12-02 23:44:20
tags: #文章標(biāo)簽 可以省略
---
tags字段是文章的標(biāo)簽,可以指定標(biāo)簽也可以不指定,如果要指定多個標(biāo)簽需要這樣做:
tags: [Linux,Http,網(wǎng)絡(luò)]
我們可以添加上categories字段,對博客進(jìn)行分類管理,然后點(diǎn)擊主頁左側(cè)菜單的分類就可看到具體的分類。例如:
categories: Linux
如何實現(xiàn)上圖的閱讀全文功能?
在自己喜歡的位置添加一個:?
<!--more-->
即可,主題會自動識別這個標(biāo)簽,生成對應(yīng)的閱讀全文按鈕。
以上是文章摘要
<!--more-->
以下是余下全文
$ hexo clean? #清除緩存 網(wǎng)頁正常情況下可以忽略此條命令
$ hexo generate? #生成靜態(tài)頁面至public目錄
寫好之后可以現(xiàn)在本地預(yù)覽,確定無誤之后再部署到Github上。
$ hexo server? #開啟預(yù)覽訪問端口(默認(rèn)端口4000,'ctrl + c'關(guān)閉server)
$ hexo deploy? #將.deploy目錄部署到GitHub
需要說明的是:
我們博客文章的編寫都是Markdown文件,但是發(fā)布到github上的其實是html文件,將Markdown轉(zhuǎn)換成html這個工作我們只要輸入hexo generate命令即可,hexo會幫我們完成轉(zhuǎn)換。
hexo n "我的博客" == hexo new "我的博客"
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
下一篇博客主要講解如何優(yōu)化next主題,使用主題提供的一些第三方功能。