lanbos'blog

hexo其他问题

本文记录了一些hexo在使用过程中的一些较为高级使用方式。

草稿功能

1.使用情景

我习惯把自己的blog当做个人的私人笔记,虽然很多人不建议这么做,因为有各种其他的代替品如:为知笔记,印象笔记等,但是很多笔记不具备分享功能,或者分享功能会另外收费。blog天生具备的传播性很适合作为需要分享的笔记的载体,但之前了解的hexo只是普通的blog功能,作为个人笔记的话又缺少私密性。最近发现的hexo原本具有的草稿功能可以完美解决这个问题。

2.创建草稿

首先进入source/目录,之前发布的正式blog都是在_posts目录下新建的markdown文件,若是想创建一篇草稿的话需要创建一个新的目录_draft,创建的草稿不会发布到github上,而且不设置的话hexo甚至不会处理草稿。

3.预览草稿

作为个人笔记的话当然草稿是需要自己能看到但是别人是无法看到的。首先打开_config.yml,设置render_draftsfalse。然后重新启动hexo服务。变化命令为

1
hexo s -p 5000 --draft

再预览的话就草稿就能显示出来了。再运行:

1
hexo d -g

会发现草稿不会提交到github上,但是可以在本地预览。若是想把草稿正式发布到blog上,一种做法是把草稿复制一份到_posts,然后再执行发布命令。或者用publish命令把草稿发布到正式blog中。

hexo命令备忘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#新建blog
hexo n <title>
#新建草稿
hexo n draft <title>
#发布草稿到正式blog
hexo publish <title>
#启动服务
hexo s -p5000
#启动服务并预览草稿
hexo s -p5000 --draft
#blog静态化
hexo g
#blog静态化并发布
hexo d -g

hexo同时发布到coding和github

1.情景

github国内众所周知的原因不太稳定,国内有很多优秀的代码托管工具,我一直在用的是淘宝开源的git@osc(码云),但是奈何之前git@osc没有github的pages功能,看到了这篇博文,知道了coding平台支持pages的功能。

2.在coding上的配置

登录coding,注册登录就不提了,首先新建一个和自己用户命相同的公开项目,然后就是设置ssh:

1.打开个人中心的SSH公匙
2.如果之前配置过GitHub的公匙的话直接打开,.ssh文件夹里面的_rsa.pub,比如我的是pvphero_rsa.pub,然后将里面的内容全部复制,填写到ssh_rsa公匙处,公匙的名称可以随便起,然后点击’添加’,再接着输入密码就可以完成添加了

添加后测试一下

1
ssh -T git@git.coding.net

如果出现下面的提示则表示公匙添加成功了:

1
Hello shenzhenwei You've connected to Coding.net by SSH successfully!

2.hexo配置

首先配置_config.yml文件

1
2
3
4
5
deploy:
type: git
repo:
github: https://github.com/lanbos/lanbos.github.io.git,master
coding: https://git.coding.net/lanbos/lanbos.git,master

3.万网域名双线解析

进入万网/阿里云后台,域名解析:

添加两条CNAME,分别解析,解析路线选择默认至Coding,海外IP至GitHub。

hexo单页运行js代码

其实这是markdown语法的功能,但放在这里的话也算hexo的一点小奇技淫巧,有时候在某篇blog中需要运行单独的js,或者css、html,直接按照html语法写入就可以了,比如可以这么写:

1
2
3
4
5
6
7
8
9
10
11
# 标题
内容
<p>html内容</p>
<style>
p{
color:red;
}
</style>
<script>
alert("test");
</script>

这种混写的方式html、css、js代码都会生效,但是需要尽量少用,否则会破坏markdown文件的可读性。在标题处加入layout: false会使整片文章不引用公共的主题样式。

代替多说的评论系统

多说最近总报错,disqus又被墙,查了一下,网上说友言比较好,用了一下非常简单,只需要注册让后拷贝代码到页面模板的对应位置即可,只不过这种免费的评论系统能维持多长时间就不知道了。

rsync将blog部署到自己的服务器

  1. _config.yml中进行如下配置,服务器端需要安装rsync