使用Hexo搭建个人博客
1. 使用 Hexo 搭建博客
安装环境:操作系统 Linux CentOS7
1.1 Hexo 安装
Hexo 依赖于 node.js 以及 git,因此需要提前配置安装环境:
node.js 下载链接: https://nodejs.org/en/
git 下载链接: https://git-scm.com/
1 | ## Step 1 install node.js with nvm |
安装过程中可能会遇到一些问题,按照相应问题的描述进行解决即可。
1.2 Hexo 的配置
安装 Hexo 完成后,创建一个文件夹并执行以下命令 Hexo 将会在指定文件夹中新建所需要的文件。
1 | $ mkdir /path/to/bolg |
安装完成后,会在 bolg
文件夹下生成以下文件:
1 | ├── _config.yml |
各个文件/文件夹说明:
文件 | 说明 | 备注 |
---|---|---|
_config.yml | 网站的 配置 信息 | – |
package.json | 应用程序的信息 | EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。 |
scaffolds | 模版 文件夹 | 新建文章时,Hexo 会根据 scaffold 来建立文件。 |
source | 资源文件夹是存放用户资源的地方 | 除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。 |
themes | 主题 文件夹。Hexo 会根据主题来生成静态页面。 | Hexo 会根据主题来生成静态页面。 |
1.2.1 网站信息的配置
通过修改config.yml
文件来管理网站的 配置 信息。网站信息主要包含以下内容:
网站
参数 | 描述 |
---|---|
title |
网站标题 |
subtitle |
网站副标题 |
description |
网站描述 |
author |
作者名字 |
language |
网站使用的语言 |
timezone |
网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York , Japan , 和 UTC 。 |
其中,description
主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author
参数用于主题显示文章的作者。
网址
参数 | 描述 | 默认值 |
---|---|---|
url |
网址 | |
root |
网站根目录 | |
permalink |
文章的 永久链接 格式 | :year/:month/:day/:title/ |
permalink_defaults |
永久链接中各部分的默认值 |
如果网站存放在子目录中,例如 http://yoursite.com/blog
,则需将 url
设为 http://yoursite.com/blog
并把 root
设为 /blog/
。
目录
参数 | 描述 | 默认值 |
---|---|---|
source_dir |
资源文件夹,这个文件夹用来存放内容。 | source |
public_dir |
公共文件夹,这个文件夹用于存放生成的站点文件。 | public |
tag_dir |
标签文件夹 | tags |
archive_dir |
归档文件夹 | archives |
category_dir |
分类文件夹 | categories |
code_dir |
Include code 文件夹 | downloads/code |
i18n_dir |
国际化(i18n)文件夹 | :lang |
skip_render |
跳过指定文件的渲染,您可使用 glob 表达式来匹配路径。 |
文章
参数 | 描述 | 默认值 |
---|---|---|
new_post_name |
新文章的文件名称 | :title.md |
default_layout |
预设布局 | post |
auto_spacing |
在中文和英文之间加入空格 | false |
titlecase |
把标题转换为 title case | false |
external_link |
在新标签中打开链接 | true |
filename_case |
把文件名称转换为 (1) 小写或 (2) 大写 | 0 |
render_drafts |
显示草稿 | false |
post_asset_folder |
启动 Asset 文件夹 | false |
relative_link |
把链接改为与根目录的相对位址 | false |
future |
显示未来的文章 | true |
highlight |
代码块的设置 |
默认情况下,Hexo生成的超链接都是绝对地址。例如,如果您的网站域名为
example.com
,您有一篇文章名为hello
,那么绝对链接可能像这样:http://example.com/hello.html
,它是绝对于域名的。相对链接像这样:/hello.html
,也就是说,无论用什么域名访问该站点,都没有关系,这在进行反向代理时可能用到。通常情况下,建议使用绝对地址。
分类 & 标签
参数 | 描述 | 默认值 |
---|---|---|
default_category |
默认分类 | uncategorized |
category_map |
分类别名 | |
tag_map |
标签别名 |
日期 / 时间格式
Hexo 使用 Moment.js 来解析和显示时间。
参数 | 描述 | 默认值 |
---|---|---|
date_format |
日期格式 | YYYY-MM-DD |
time_format |
时间格式 | H:mm:ss |
分页
参数 | 描述 | 默认值 |
---|---|---|
per_page |
每页显示的文章量 (0 = 关闭分页功能) | 10 |
pagination_dir |
分页目录 | page |
扩展
参数 | 描述 |
---|---|
theme |
当前主题名称。值为false 时禁用主题 |
deploy |
部署部分的设置 |
1.2.2 Hexo 命令操作
1 | $ hexo init [folder] ## 新建网站 |
选项 | 描述 |
---|---|
-d , --deploy |
文件生成后立即部署网站 |
-w , --watch |
监视文件变动 |
1 | $ hexo publish [layout] <filename> ## 发表草稿 |
选项 | 描述 |
---|---|
-p , --port |
重设端口 |
-s , --static |
只使用静态文件 |
-l , --log |
启动日记记录,使用覆盖记录格式 |
1 | $ hexo deploy || hexo d ## 部署网站 |
参数 | 描述 |
---|---|
-g , --generate |
部署之前预先生成静态文件 |
1 | $ hexo render <file1> [file2] ... ## 渲染文件 |
参数 | 描述 |
---|---|
-o , --output |
设置输出路径 |
1 | hexo migrate <type> ## 从其他博客系统 迁移内容 |
1 | $ hexo --safe ## 在安全模式下,不会载入插件和脚本 |
1.2.3 网站迁移
Hexo 的迁移功能主要可以实现 RSS–> Hexo, Jekyll –> Hexo, Octopress –> Hexo, WordPress –> Hexo 以及 Joomla –> Hexo 等的迁移功能,具体参考 迁移。
1.2.4 文章的写作
我们使用 $ hexo new [layout] <title>
创建好文章后就可以进行写作了。我们可以在命令中指定文章的布局(layout),默认为 post
,可以通过修改 _config.yml
中的 default_layout
参数来指定默认布局。
布局(Layout)
Hexo 有三种默认布局:post
、page
和 draft
,它们分别对应不同的路径,我们自定义的其他布局和 post
相同,都将储存到 source/_posts
文件夹。
布局 | 路径 |
---|---|
post |
source/_posts |
page |
source |
draft |
source/_drafts |
如果我们不想文章被处理,可以将 Front-Matter 中的
layout:
设为false
。
文件名称
Hexo 默认以标题做为文件名称,编辑 new_post_name
参数来改变默认的文件名称,举例来说,设为 :year-:month-:day-:title.md
可让我们更方便的通过日期来管理文章。
变量 | 描述 |
---|---|
:title |
标题(小写,空格将会被替换为短杠) |
:year |
建立的年份,比如, 2015 |
:month |
建立的月份(有前导零),比如, 04 |
:i_month |
建立的月份(无前导零),比如, 4 |
:day |
建立的日期(有前导零),比如, 07 |
:i_day |
建立的日期(无前导零),比如, 7 |
草稿
Hexo 的一种特殊布局:draft
,这种布局在建立时会被保存到 source/_drafts
文件夹,可通过 publish
命令将草稿移动到 source/_posts
文件夹,该命令的使用方式与 new
十分类似,也可在命令中指定 layout
来指定布局。
1 | $ hexo publish [layout] <title> |
草稿默认不会显示在页面中,可在执行时加上 --draft
参数,或是把 render_drafts
参数设为 true
来预览草稿。
模版(Scaffold)
在新建文章时,Hexo 会根据 scaffolds
文件夹内相对应的文件来建立文件,例如:
1 | $ hexo new photo "My Gallery" |
在执行这行指令时,Hexo 会尝试在 scaffolds
文件夹中寻找 photo.md
,并根据其内容建立文章,以下是您可以在模版中使用的变量:
变量 | 描述 |
---|---|
layout |
布局 |
title |
标题 |
date |
文件建立日期 |