随时随地blog
假设在一台新的机子上,如何继续编写更新hexo呢?
一、配置编写环境
参见hexo环境搭设,配置 git, nodejs, npm.
- 使用git clone ,得到blog 的编译目录 ./blog
- 进入blog目录,并使用
npm install
完成hexo环境的搭建。
1.1 升级本地环境
对于本地环境的升级操作,以下内容来自于网络,并很有可能已经过时了。
cnpm i hexo-cli -g
cnpm install -g cnpm-check
npm-check
npm-check -u
更新,并–save在了package.json
里cnpm install -g npm-upgrade
npm-upgrade
npm update -g
npm update --save
因为安装一个插件,遵从npm audit
给出的报告使用npm i hexo@5.2.0
更新了单独的文件。
1.2 从头搭建环境
当环境很久没有更新时,不如从头搭建。利用hexo init [DIRNAME]
创建新的环境,只需要将已经使用的插件重新安装,相关主题、配置、POST考进目录就好了。—这是在git clone
npm install
各种老旧插件出错后得到的明悟。
二、 开始编写blog
hexo new [layout] <title>
新建文章- 文章中使用
[连接名称](posts/abbrlink_num)
建立文章间的链接。因为我的设置中是 permalink: posts/:abbrlink/
2.1 hexo 中的一些使用技巧
1. md中的图片
hexo中默认图片的引用方法与本地的markdown方法不一致。
在Typora中,图片根据我的设置是从文件同名附件目录./${filename}
中调用的:
1 |  |
而在hexo中,可以修改配置文件_config.yml
,根据官方文档设置post_asset_floder:true
,这样会从同名目录中引用图片,和Trpora 的图片设置类似。同时,注意修改文件引用语法:
1 | {% asset_img xxxx.jpg "图片的文字描述" %} |
引起的问题就是在typora中不再能明确的得到预览图片。
解决
同时使用hexo 和 Typora 的人还是很多的,有篇文章[1]声称解决了此问题,试试看:
1 | npm install hexo-image-link --save |
然后可以使用默认的markdown语法本地显示图片。用hexo server -debug
验证下。

! [挑个图片看看](随时随地blog/2.png)
成功了,但引入了另一个问题,增加的插件似乎判断"
"格式并直接替代,但没有判断此代码是不是在代码块中,造成代码块中的演示也被替换成了图片。于是我只能在代码块的叹号!后面加个空格。
2. 简要标记
可以使用<!--more-->
标记,使得文章在主页中简略显示。
3. 标题级别
1 | # 一级标题 |
一级标题在HEXO中无法从左侧的树状菜单点击。默认将文章TITLE作为一级标题,文内标题从二级开始启用。
4. 调试、生成
1 | $ hexo server |
hexo会在http://localhost:4000/
生成服务,并监测文件变动自动更新。也就是说可以在编写过程中时时在本地看到生成后的效果。
1 | $ hexo generate |
这个命令会在public
目录下生成静态文件,可以将此文件下的文件发布到需要的地方。
5. 自动部署
1 | $ hexo generate --deploy |
以上两个命令都可以生成并部署生成的静态页面到github , 要实现自动部署,需要做以下设置:
-
修改
_config.yml
中的参数1
2deploy:
type: git -
安装
hexo-deploer-git
1
$ npm install hexo-deployer-git --save
并修改配置为:
1
2
3
4
5deploy:
type: git
repo: <repository url>
branch: gh-pages
message:
简写:
1 | $ hexo g -d |
三、git同步
git st
git add ...
git ci -m "commit message"
git push <origin> <branches>
git mv xxx yyy
改名字,而且要在.git
目录存在的那一级目录下执行命令。- git命令的简写来自“廖雪峰的git教程”
在~/.gitconfig
文件中,设置如下:
[user]
name = justin-xjp
email = dont@mail.me
[color]
ui = true
[alias]
st = status
co = checkout
ci = commit
br = branch
unstage = 'reset HEAD'
last = 'log -1'
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
直接git push origin dev
的话,会提示
Warning: Permanently added the RSA host key for IP address xxx…
大概是说SSH连接缺失公钥,需要将目前计算机的公钥添加到github网站。然后就可以顺利更新。