Hexo的配置和使用
Hexo是一个开源的静态博客生成器,用node.js开发,作者是台湾大学生tommy351。Hexo的安装使用必须依赖node.js和Git,以下内容简要说明其步骤。
1、安装node.js
1) 下载与安装
下载地址Node.js, 解压之后,在环境变量Path中添加上述node.js的路径(假设为D:\Dev\Node
)。设置成功后,打开命令行,可以看看node.js的版本:
1 | $ npm --version |
2) npm的配置
配置npm的代理,缓存地址等。(以下配置为全局配置(--global
)便于copy到U盘携带。)
1 | # 设置缓存位置 |
或者直接打开<node>/etc/npmrc
文件(没有就新建)进行编辑:
1 | cache=D:\Dev\node\npm-cache |
配置完成,运行npm config list
命令看看配置的情况。如果正确,node.js已经安装配置完成,可以安装Hexo。
2、Git的安装与配置
Git的安装与配置,网上有很多教程,这里不再详细说明。无论是msi安装还是绿色解压安装,均需要在Path环境变量中设置路径。如果以下命令返回版本号,则git安装完成:
1 | $ git --version |
说明: 1)使用 git 的版本对发布有重要影响,版本2.13.3.windows.1/1.95.msysgit.1可以正常工作,版本 2.7.2.windows.1无法正常工作。 2)在使用代理服务器时,可能需要导入CA认证文件。 1
git config --global http.sslCAInfo /ssl/certs/your.cert.CA.crt
3、Hexo的安装和使用
1)安装 Hexo的安装分为3个过程,首先安装hexo-cli
1
$ npm install -g hexo-cli
hexo-cli
安装完成。
第二步,安装hexo 1
$ npm install hexo --save
1
hexo init xxx
1
$ npm install
1
$ hexo -v (或 hexo version)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16hexo-cli: 1.1.0
os: Windows_NT 10.0.17134 win32 x64
http_parser: 2.8.0
node: 8.11.3
v8: 6.2.414.54
uv: 1.19.1
zlib: 1.2.11
ares: 1.10.1-DEV
modules: 57
nghttp2: 1.32.0
napi: 3
openssl: 1.0.2o
icu: 60.1
unicode: 10.0
cldr: 32.0
tz: 2017c
3)Hexo的基本使用
- 创建一个网站:
hexo init blog
;注意:不能使用当前目录作为网站目录。如果使用hexo init .
,会出现ERROR Local hexo not found in D:\Dev\Project\blog
的错误。 - 创建页面:
hexo new newpage
,newpage就是新页面的标题,支持中文; - 开始用markdown写
- 在blog目录内安装Hexo的git插件:
1
$ npm install hexo-deployer-git --save
4)Hexo的配置
Hexo的配置内容还是比较简单,核心是修改配置文件_config.yml
,关于配置部分还是查阅相关的文档比较靠谱。
- 页面生成与发布
Hexo支持同时向多个gits提交,以下以Github为例。 1. 在Github上建一个新的库,例如:yourname.github.io
,其URL地址为:https://github.com/yourname/youname.github.io.git
2. 修改blog
中的_config.yml
中的deploy
字段: 1
2
3
4
5
6deploy:
type: git
repo:
- https://xxxx@git.oschina.net/xxxx/xxxx.git
- https://github.com/yourname/youname.github.io.git
branch: masterhexo d -g
,接着在提示框中输入github的用户名和密码就ok了。 4. 访问https://github.com/yourname/youname.github.io.git
试试。
4、Hexo+Next使用Latex
1)基本配置 打开配置文件themes/next/_config.yml
,找到# MathJax Support
,将enable
改为true
即可 1
2
3
4
5mathjax:
enable: true
per_page: true
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMMLLatex
的页面头部添加: 1
mathjax: true
2)mathjax
的CDN可以使用如下链接,不过cloudflare的访问速度... 1
#cdn: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML
Latex字符 | 转义后字符 |
---|---|
\ | \\ |
_ | \_ |
4)添加公式自动编号支持,next 6.3.0
已经内置支持
使用时,在需要添加公式编号的位置\label{公式名称}
,引用时$ref{公式名称}
。注意,自动编号的公式需要使用equation
关键字。 1
2
3
4
5
6
7
8$$
\begin{equation} \theta_j := \theta_j +
\alpha \sum \limits_{i=1}^n(y^{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)}
\label{mini-BGD}
\end{equation}
$$
公式$(\ref{mini-BGD})$
效果: \[ \begin{equation} \theta_j := \theta_j + \alpha \sum \limits_{i=1}^n(y^{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)} \label{mini-BGD} \end{equation}\]
公式\((\ref{mini-BGD})\)
以下内容,来自next
官方文档:
对于多行公式,在 equation
环境中,你可以使用 aligned
、cases
、array
环境把公式分成多行,
1 | $$ |
\[ \begin{equation} f(x)= \begin{cases} 0& x=0\\ 1& x \neq 0 \end{cases} \end{equation}\label{eq1} \]
要对齐多个公式,我们需要使用 align
环境。align 环境中的每个公式都有自己的编号:
1 | $$ |
\[ \left\{ \begin{align} a &= b + c \label{eq3} \\ x &= yz \label{eq4}\\ l &= m - n \label{eq5} \end{align} \right. \]
在 align
环境中,如果你不想给某个或某几个公式编号,那么在这些公式后面使用 \nonumber
命令即可。例如:
1 | $$\begin{align} |
有时,你可能会希望采用更加奇特的方式来标记和引用你的公式,你可以通过使用 \tag{}
命令来实现,例如:
1 | $$ x+1 \over \sqrt{1-x^2} \tag{i}\label{eq_tag}$$ |
\[ x+1 \over \sqrt{1-x^2} \tag{i}\label{eq_tag}\] 公式\((\ref{eq_tag})\)
5、修改Next主题“分类”菜单下日期格式
原时期格式为MM-DD
格式,希望将年份一起显示成为YYYY-MM-DD
。
1)打开themes/next/layout/_macro/post-collapse.swig
,将第27行日期格式由MM-DD
改为YYYY-MM-DD
: 1
{{ date(post.date, 'YYYY-MM-DD') }}
themes/next/source/css/_common/components/post/post-collapse.styl
,第96行: 1
2.post-title {
margin-left: 110px; # 此处原来是60px,修改为110px
6、插件
可以在package.json
中查看所有插件,除基本功能插件外,目前安装的插件如下: 1
2npm install hexo-generator-search --save # 站内搜索
# npm install hexo-pdf --save # 支持显示pdf,未安装themes/next/_config.yml
,搜索copyright
,将post_copyright
的enable
改为true
。
8、修改标签显示图标
打开themes/next/layout/_macro/post.swig
,搜索rel="tag">#
,将之改为<i class="fa fa-tag"></i>
。
本文参考这篇文档,向作者表示感谢。