Ubuntu 和 CentOS 下安装 Hexo
Hexo 是一款非常便捷的静态博客系统。关于 Hexo 的安装、配置和使用,请参考Hexo 官网
Hexo 静态文件的编译依赖了 Node.js,所以需要先安 Node.js。
Ubuntu 安装 Node.js
更新源
安装Node.js
更新NPM包镜像源
全局安装 n 管理器
安装最新Node
CentOS 安装 Node.js
使用 wget 下载 node.js 运行包
解压安装包,Node 安装包 包含了 node 和 npm
进入目录
创建软链接
1
2ln -s /usr/local/node-v10.16.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-v10.16.0-linux-x64/bin/npm /usr/local/bin/npm不创建软链接,执行 node 和 npm 命令会报 找不到命令。
查看 Node.js 和 npm 版本
配置淘宝 npm 镜像
安装 Git
安装 git 是为了从 GitHub 下载主题。
安装 Hexo
安装 Hexo 客户端
安装 Hexo 服务端
卸载 Hexo
Hexo 使用
创建个空目录,进入空目录里执行初始化
Hexo 初始化会在该文件夹创建所需要的文件。如果执行 hexo init 提示找不到可执行的命令,就为 hexo 创建软链接,如下:
启动服务器
编译和发布
Nginx 指向 Hexo
因 Hexo 生成的是静态页面文件,可以使用 Nginx 指向Hexo的public目录。
在 nginx 配置文件配置监听的端口、域名和根目录,修改文件后可以动态加载静态而不用重启服务。
这样就不用在终端使用 hexo server 来启动服务,可以解决关闭终端服务就停止。
HEXO 主题
hexo-theme-icarus
个人喜欢这个主题,准备用于替换。hexo-theme-next
简洁、优雅的 Hexo 主题,用于参考。hexo-theme-yilia
非常简洁的主题,有较长时间没有更新维护了。hexo 官方主题库
官方主题库里也是个人用户上传的,多翻了下没找到喜欢的。
Hexo问题及解决
- 问题:Hexo中文乱码?
解决:把md文档保存为utf-8编码格式,重新生成部署。不要使用Windows自带的文本编辑器,使用EditPlus另存为,选择编码格式。
2. 问题:Nvm安装成功后,使用nvm
命令却提示command not found
解决:
1. 进入nvm安装到文件目录:#cd ~/.nvm
。
2. 查看目录是不否有.bash_profile
文件:#ls -al
。
3. 没有则创建文件:#touch .bash_profile
。
4. 执行语句:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
。
5. 更新配置环境:source .bash_profile
。
6. 验证是否成功,输出命令:#nvm
。
- 问题:npm 提示 command not found
解决:设置环境变量:ln -s /opt/node/bin/npm /usr/bin/npm
字符转换
Hexo 博客文章经常涉及代码语句,或 Linux 命令需要杠杠参数的,默认会被转义为 unicode 编码的中文字符,在阅读或复制语句使用时就会异常。
解决文章中英文单引号转 unicode 中文单引号,英文双引号转 unicode 中文双引号,杠杠转 unicode 中文单杠的问题。
找到 node_modules/marked/lib/marked.js 文件,打开查找如下代码块,注释掉不需要转换的字符1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22/**
* Smartypants Transformations
*/
InlineLexer.prototype.smartypants = function(text) {
if (!this.options.smartypants) return text;
return text
// em-dashes
.replace(/---/g, '\u2014')
// en-dashes, -- 转义为 -
//.replace(/--/g, '\u2013')
// opening singles, 开单引号转义
//.replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
// closing singles & apostrophes 闭单引号
//.replace(/'/g, '\u2019')
// opening doubles 开双引号
//.replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
// closing doubles 闭双引号
//.replace(/"/g, '\u201d')
// ellipses
.replace(/\.{3}/g, '\u2026');
};
相关参考
Ubuntu 和 CentOS 下安装 Hexo
http://blog.gxitsky.com/2017/12/25/Open-Source-hexo-install/