Hexo搭建博客小记

Hexo是一个静态博客系统,可以很方便用markdown写博客, 然后deploy到github pages。在修改,发布,定制主题与插件中遇到了一些或大或小的错误,有同样遇到问题的同学可以做一下参考。


安装环境

懒得敲命令的话, 直接到node.js官网下载安装包安装. 然后Hexo官网上安装命令在照着做一遍.

检测node.js版本

1
$ node -v

安装hexo

1
$ npm install hexo-cli -g

配置github

_config.yml文件中更改下面的. (github的SSH方式地址, 换成自己的)

1
2
3
deploy:
type: git
repo: git@github.com:xxxxx/xxxxxx.github.io.git

配置好之后需要先生成generate, 然后可以启动本地服务器看看. 也可以直接发布deploy到github.

生成静态页面

1
$ hexo generate

发布到github

1
$ hexo deploy

启动本地服务

1
$ hexo server

deploy时报错ERROR Deployer not found: git

解决办法

1
$ npm install hexo-cli -g

deploy时报错Error: Permission denied (publickey).

这种情况就是要在github添加publickey, 允许SSH方式上传代码.步骤如下.官方链接地址 解决办法

1)生成key(xxxx换成你自己github用户名)

1
$ ssh-keygen -t rsa -C “xxxxxxxxx”

2)打印key.(第一步生成时会在控制台打印出地址)

1
$ cat /Users/xuneng/.ssh/id_rsa.pub

3)进入到该github项目的设置, 把打印出的key的所有字符串拷贝到Deploy keys中保存即可.(勾选允许可写操作)
在github对应项目中添加key

4)测试github SSH连通性

1
$ ssh -T git@github.com

ok

deploy时报错:error deployer not found:git

问题出现的原因是你更换了theme,导致git提交的内容与服务器上完全不匹配。
解决办法:(在博客目录中执行)

1
$ npm install hexo-deployer-git --save

然后再提交就ok了.


添加评论框

很多人用多说, 因为对国内的账号支持比较好(关于hexo配置多说, 可参考这里).

我个人用的landscape-plus主题, 默认配置了多说与分享. 只需要在themes/landscape-plus/_config.yml中找到duoshuo_shortname: xxxxx (最后的xxxxx替换成自己申请的多说账号用户名即可)


修改侧边栏顺序

右边侧边栏排列顺序看着很不顺眼, 想把最近文章放到最上面怎么办?

  1. 依旧是在themes/landscape-plus/_config.yml下.
  2. 找到
1
2
3
4
5
6
7
widgets:
- recent_posts
- tag
- category
- tagcloud
- archive
- links

其中recent_posts代表的就是最近文章分类, 其他的顾名思义. (主题中会遍历这几个设置项, 依次显示)

ok.


添加”关于我”页面

执行命令hexo new page "about", 会生成source/about/index.md文件

  1. 依旧是在themes/landscape-plus/_config.yml
  2. 找到
1
2
3
4
5
menu:
首页: /
归档: /archives
关于我: /about
rss: /atom.xml

在归档下面复制一行, 改为”关于我”, 路径依照命令写/about即可!


懒人必备, 一键写文章发布脚本

写个文章一堆命令记不住呀, 很烦, 怎么办?
于是花了点时间写了2个shell脚本.

一键生成模版文章, 并用喜爱的编辑器打开

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
cd /Users/xuneng/Sites/hexo/xn545945/source
echo "跳转路径为"
pwd
echo -n "请输入文件名:"
read filename
cp myTemple.md _posts/$filename.md
echo "文件 $filename.md 已经创建"
open /Users/xuneng/Desktop/MacDown.app _posts/$filename.md

说明: 事先我创建了一个 /source/myTemple.md模版, 里面自己随意存储一些信息, 如文章标题分类等. 然后将其复制到_posts/目录下. 最后用MacDown编辑器打开(我的编辑器是放到桌面上的)
中途需要输入文件名, 确保不要和以前的重复.

一键发布到Github

1
2
3
4
5
6
7
#!/bin/bash
cd /Users/xuneng/Sites/hexo/xn545945
echo "跳转路径为"
pwd
echo "开始生成并发布到github"
hexo deploy -g

如果想在本地预览, 将上面最后一句替换成hexo server -g即可.

将脚本保存成xxx.sh文件, 每次./xxx.sh执行一下即可.

转载请注明出处,有疑问欢迎留言!