Hexo基础

安装

安装node.js

https://nodejs.org/en/

安装Hexo

1
$ npm install -g hexo-cli

目录结构

目录结构如下:

1
2
3
4
5
6
7
8
9
10
.
|--_config.yml
|--db.json
|--package.json
|--node_modules
|--public
|--scaffolds
|--source
|----|_posts
|--themes

文件/目录 说明
_config.yum 网站的全局配置信息。
db.json 缓存文件
package.json 应用程序的信息。
node_modules 插件存放目录。
public 存放生成的静态文件。
scaffolds 布局模板文件夹。新建文章时,会根据这里的模板来创建文件。
source 存放用户资源的地方,如:文章、网页。
source/_posts 用户的文章存放目录。
themes 主题文件夹。

创建网站

1
2
3
$ hexo init blog
$ cd blog
$ npm install

指令

基础指令

指令 说明
init 新建一个网站
new 新建一篇文章
generate 生成静态文件
publish 发表草稿
server 启动服务器
默认情况下,访问网址为: http://localhost:4000/
deploy 部署网站
render 渲染文件
migrate 从其他博客系统迁移内容
clean 清除缓存文件 (db.json) 和已生成的静态文件 (public)
list 列出网站资料
help 查看帮助
version 显示 Hexo 版本
safe 在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。
debug 在终端中显示调试信息并记录到 debug.log
silent 隐藏终端信息
config 自定义配置文件的路径,执行后将不再使用 _config.yml
draft 显示 source/_drafts 文件夹中的草稿文章
cwd 自定义当前工作目录(Current working directory)的路径

指令缩写

hexo支持指令缩写,例如:hexo generate和hexo g是等效的。

标题 说明
d = deploy 部署
g = generate 生成静态页面
l = log 启动日记记录,使用覆盖记录格式
n = new 新建文章
o = output 设置输出路径
p = port 重设端口
s = server 启动服务器
w = watch 监视文件变动

组合指令

清除、生成、启动

1
hexo clean && hexo g -s

清除、生成、部署

1
hexo clean && hexo g -d

创建文章

1
$ hexo new post <title>

或者

1
$ hexo new <title>

将储存到 source/_posts 文件夹。

创建草稿

1
2
3
4
5
6
7
$ hexo new draft <title>

# 显示草稿
$ hexo s --draft

# 发布草稿(Test为文章标题)
# hexo publish [post] Test

将储存到 source/_drafts 文件夹。

创建网页

1
$ hexo new page <title>

将储存到 source/title 文件夹。

配置

修改主题

修改主题方法

将主题文件夹放入/themes文件夹中,修改全局配置信息_config.yml中的theme设定。

修改主题示例

选择主题

主题网站 https://hexo.io/themes/ 本示例选择的是next主题。

下载主题

1
2
$ cd blog
$ git clone https://github.com/iissnan/hexo-theme-next themes/next

启用主题

打开全局配置文件_config.yml,找到 theme 字段,并将其值更改为 next。

1
theme: next

Next主题官网

http://theme-next.iissnan.com

添加RSS

安装插件

1
$ npm install hexo-generator-feed

配置插件

在全局配置文件_config.yml中增加或修改如下代码:

1
plugins: hexo-generate-feed

设置RSS链接

修改/themes/主题文件夹/_config.yml,修改rss设定,如下:

1
rss: /atom.xml

添加Sitemap

安装插件

1
2
$ npm install hexo-generator-sitemap --save
$ npm install hexo-generator-baidu-sitemap --save

配置站点地图

修改全局配置文件_config.yml

1
2
3
4
5
# sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

由于有默认配置,此步骤可省略。

实现字数统计与阅读时常

检查node.js版本

1
$ node -v

安装插件

node.js版本<7.6
1
$ npm install hexo-wordcount@2 --save
node.js版本>7.6
1
$ npm install hexo-wordcount --save

修改主题配置文件

在/themes/主题文件夹/_config.yml中修改如下:

1
2
3
4
5
6
post_wordcount:
item_text: true
wordcount: true
min2read: true
totalcount: true
separated_meta: true

配置站内搜索

安装插件

1
$ npm install hexo-generator-searchdb --save

修改全局配置文件

修改/_config.yml,新增如下:

1
2
3
4
5
search:
path: search.xml
field: post
format: html
limit: 10000

修改主题配置文件

修改/themes/主题文件夹/_config.yml,启用本地搜索功能:

1
2
3
# Local search
local_search:
enable: true

博文置顶

1
2
$ npm uninstall hexo-generator-index --save
$ npm install hexo-generator-index-pin-top --save

然后在需要置顶的文章的Front-matter中加上top: true即可。比如下面这篇文章:

1
2
3
4
5
6
title: 文档集合
date: 2018-08-16 21:50:46
tags:
- 文档
categories: 运维
top: true

设置置顶标志

打开:/blog/themes/next/layout/_macro 目录下的post.swig文件,定位到

标签下,插入如下代码:

1
2
3
4
5
{% if post.top %}
<i class="fa fa-thumb-tack"></i>
<font color=7D26CD>置顶</font>
<span class="post-meta-divider">|</span>
{% endif %}

开启数学公式支持

参考 数学公式

发布到Github

配置Github

配置github SSH Keys

创建GitHub Pages

新建一个库,名字为:yourname.github.io

配置Hexo

配置全局配置文件

配置 /_config.yml ,增加或修改

1
2
3
4
deploy:
- type: git
repo:
codning: https://github.com/yourname/yourname.github.io.git

发布Hexo到Github

1
$ hexo clean && hexo g -d

检查

打开 https://yourname.github.io ,看下是否可以正常访问。

使用Encrypt插件给Hexo博客文章加密

参考 使用Encrypt插件给Hexo博客文章加密

常见问题

大小写引起404

问题描述

在Hexo中,可以通过categories修改分类,但是当分类进行过大小写的操作修改后,上传到github后会引发404的错误,原因是git默认忽略了大小写,导致找不到新生成的目录。

解决办法

将git上的库重新删除,然后重新上传。

操作步骤

修复Bug

修改Hexo根路径下的.git目录下的config文件,将其中的ignorecase的属性,由true修改为false。

删除github上的库

新建文件夹
1
$ mkdir blog2
克隆
1
2
$ cd blog2
$ git clone https://github.com/yourname/yourname.github.io.git
删除文件

删除blogs目录下除.git之外的所有文件或文件夹。

提交修改
1
2
3
$ git add .
$ git commit -m 'delete all hexo generated files'
$ git push origin master

重新上传

本地hexo生成文件
重新提交
1
2
3
4
5
6
$ hexo generate
$ cp -R /hexopath/public/* /blog2/yourname.github.io
$ cd /blog2/yourname.github.io
$ git add .
$ git commit -m "update"
$ git push origin master

站内链接

站内文章链接

1
2
{% post_link 文章标题 %}
{% post_link 文章标题 链接名称 %}

锚点跳转

1
2
<a name="Anchor"/>
[锚点名称](#Anchor)

数学公式

分类 功能 符号 举例
行内公式 将公式插入到本行内 \(公式内容\) \(xyz\)
独行公式 将公式插入到新的一行内,并且居中 \[公式内容\] \[xyz\]
上标、下标与组合 上标符号 ^ \(x^4\)
上标、下标与组合 下标符号 _ \(x_1\)
上标、下标与组合 组合符号 {} \({16}_{8}O{2+}_{2}\)
汉字、字体与格式 汉字形式 \(V_{\mbox{初始}}\)
汉字、字体与格式 字体控制 \(\displaystyle \frac{x+y}{y+z}\)
汉字、字体与格式 下划线符号 \(\tag{11}\)
汉字、字体与格式 上大括号 \(\overbrace{a+b+c+d}^{2.0}\)
汉字、字体与格式 下大括号 \(a+\underbrace{b+c}_{1.0}+d\)
汉字、字体与格式 上位符号 \(\vec{x}\stackrel{\mathrm{def}}{=}{x_1,\dots,x_n}\)
占位符 两个quad空格 -
占位符 quad空格 \(x \quad y\)
占位符 大空格 \ \(x \ y\)
占位符 中空格 : \(x : y\)
占位符 小空格 , \(x , y\)
占位符 没有空格 `` \(xy\)
占位符 紧贴 ! \(x ! y\)
定界符与组合 括号 ()() () () () \(()\big(\big) \Big(\Big) \bigg(\bigg) \Bigg(\Bigg)\)
定界符与组合 中括号 [] \([x+y]\)
定界符与组合 大括号 { } \({x+y}\)
定界符与组合 自适应括号 \(\left(x\right)\)\(\left(x{yz}\right)\)
定界符与组合 组合公式 {上位公式 下位公式} \({n+1 \choose k}={n \choose k}+{n \choose k-1}\)
定界符与组合 组合公式 {上位公式 下位公式} \(\sum_{k_0,k_1,\ldots>0 \atop k_0+k_1+\cdots=n}A_{k_0}A_{k_1}\cdots\)
四则运算 加法运算 + \(x+y=z\)
四则运算 减法运算 - \(x-y=z\)
四则运算 加减运算 \(x \pm y=z\)
四则运算 减甲运算 \(x \mp y=z\)
四则运算 乘法运算 \(x \times y=z\)
四则运算 点乘运算 \(x \cdot y=z\)
四则运算 星乘运算 \(x \ast y=z\)
四则运算 除法运算 \(x \div y=z\)
四则运算 除法运算 / \(x/y=z\)
四则运算 分式表示 \(\frac{x+y}{y+z}\)
四则运算 分式表示 {分子} \({x+y} \over {y+z}\)
四则运算 绝对值表示 || \(&#124;x+y&#124;\)
高级运算 平均数运算 \(\overline{xyz}\)
高级运算 开二次方运算 \(\overline{xyz}\)
高级运算 开方运算 \(\sqrt[3]{x+y}\)
高级运算 对数运算 \(\log(x)\)
高级运算 极限运算 \(\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)
高级运算 极限运算 \(\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)
高级运算 求和运算 \(\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)
高级运算 求和运算 \(\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}\)
高级运算 积分运算 \(\int^{\infty}_{0}{xdx}\)
高级运算 积分运算 \(\displaystyle \int^{\infty}_{0}{xdx}\)
高级运算 微分运算 \(\frac{\partial x}{\partial y}\)
高级运算 矩阵表示 } \end{matrix} \(\left[ \begin{matrix} 1 &2 &\cdots &4\5 &6 &\cdots &8\\vdots &\vdots &\ddots &\vdots\13 &14 &\cdots &16\end{matrix} \right]\)
逻辑运算 等于运算 = \(x+y=z\)
逻辑运算 大于运算 > \(x+y>z\)
逻辑运算 小于运算 < \(x+y<z\)
逻辑运算 大于等于运算 \(x+y \geq z\)
逻辑运算 小于等于运算 \(x+y \leq z\)
逻辑运算 不等于运算 \(x+y \neq z\)
逻辑运算 不大于等于运算 \(x+y \ngeq z\)
逻辑运算 不大于等于运算 \(x+y \not\geq z\)
逻辑运算 不小于等于运算 \(x+y \nleq z\)
逻辑运算 不小于等于运算 \(x+y \not\leq z\)
逻辑运算 约等于运算 \(x+y \approx z\)
逻辑运算 恒定等于运算 \(x+y \equiv z\)
集合运算 属于运算 \(x \in y\)
集合运算 不属于运算 \(x \notin y\)
集合运算 不属于运算 \(x \not\in y\)
集合运算 子集运算 \(x \subset y\)
集合运算 子集运算 \(x \supset y\)
集合运算 真子集运算 \(x \subseteq y\)
集合运算 非真子集运算 \(x \subsetneq y\)
集合运算 真子集运算 \(x \supseteq y\)
集合运算 非真子集运算 \(x \supsetneq y\)
集合运算 非子集运算 \(x \not\subset y\)
集合运算 非子集运算 \(x \not\supset y\)
集合运算 并集运算 \(x \cup y\)
集合运算 交集运算 \(x \cap y\)
集合运算 差集运算 \(x \setminus y\)
集合运算 同或运算 \(x \bigodot y\)
集合运算 同与运算 \(x \bigotimes y\)
集合运算 实数集合
集合运算 自然数集合
集合运算 空集 \(\emptyset\)
数学符号 无穷 \(\infty\)
数学符号 虚数 \(\imath\)
数学符号 虚数 \(\jmath\)
数学符号 数学符号 \(\hat{a}\)
数学符号 数学符号 \(\check{a}\)
数学符号 数学符号 \(\breve{a}\)
数学符号 数学符号 \(\tilde{a}\)
数学符号 数学符号 {a} \(\bar{a}\)
数学符号 矢量符号 \(\vec{a}\)
数学符号 数学符号 \(\acute{a}\)
数学符号 数学符号 \(\grave{a}\)
数学符号 数学符号 \(\mathring{a}\)
数学符号 一阶导数符号 \(\dot{a}\)
数学符号 二阶导数符号 \(\ddot{a}\)
数学符号 上箭头 \(\uparrow\)
数学符号 上箭头 \(\Uparrow\)
数学符号 下箭头 \(\downarrow\)
数学符号 下箭头 \(\Downarrow\)
数学符号 左箭头 \(\leftarrow\)
数学符号 左箭头 \(\Leftarrow\)
数学符号 右箭头 \(\rightarrow\)
数学符号 右箭头 \(\Rightarrow\)
数学符号 底端对齐的省略号 \(1,2,\ldots,n\)
数学符号 中线对齐的省略号 \(x_1^2 + x_2^2 + \cdots + x_n^2\)
数学符号 竖直对齐的省略号 \(\vdots\)
数学符号 斜对齐的省略号 \(\ddots\)

上标

1
<sup>2</sup>

下标

1
<sub>2</sub

转义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- &#45; &minus; — 减号
! &#33; — 惊叹号Exclamation mark
” &#34; &quot; 双引号Quotation mark # &#35; — 数字标志Number sign $ &#36; — 美元标志Dollar sign
% &#37; — 百分号Percent sign
& &#38; &amp; Ampersand
‘ &#39; — 单引号Apostrophe
( &#40; — 小括号左边部分Left parenthesis
) &#41; — 小括号右边部分Right parenthesis
* &#42; — 星号Asterisk
+ &#43; — 加号Plus sign
< &#60; &lt; 小于号Less than
= &#61; — 等于符号Equals sign
> &#62; &gt; 大于号Greater than
? &#63; — 问号Question mark
@ &#64; — Commercial at
[ &#91; --- 中括号左边部分Left square bracket
\ &#92; --- 反斜杠Reverse solidus (backslash)
] &#93; — 中括号右边部分Right square bracket
{ &#123; — 大括号左边部分Left curly brace
| &#124; — 竖线Vertical bar
} &#125; — 大括号右边部分Right curly brace
坚持原创技术分享,您的支持将鼓励我继续创作!
0%