Hexo是啥
Hexo 是由 Node.js 驱动的一款快速、简单且功能强大的博客框架。可以快速将 Markdown 格式的文档生成静态页面。是越来越笨重的 Wordpress 和麻烦的空间管理的替代方案。
安装 Hexo
首先翻看一遍 Hexo 官方文档
环境准备
安装 Node.js & Git
该命令执行后,自动装好node和npm。
1 | brew install node |
配置 Git
按照Github提示,创建SSH秘钥:
1 | $ mkdir ~/.ssh #创建ssh命令 |
此时,pdcopy命令已经将id_rsa.pub内容复制到剪切板。
登录 github:https://github.com/settings/ssh 点击Add an SSH Key,Title 部分填写一个所用电脑的名称,然后在Key部分填写之前通过pdcopy命令复制的内容。生成 key https://help.github.com/articles/generating-ssh-keys/
1 | $ git config --global user.name "yourusername" |
测试
可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:
1 | $ ssh -T git@github.com |
如果是下面的反馈:
1 | The authenticity of host 'github.com (207.97.227.239)' can't be established. |
不要紧张,输入yes就好,然后会看到:
1 | Hi cnfeat! You've successfully authenticated, but GitHub does not provide shell access. |
安装 Hexo
1 | $ npm install -g hexo-cli |
好了,这个时候如果报错,记得加 sudo
1 | $ sudo npm install -g hexo-cli |
配置 Hexo
进入想要存放博客的文件夹,初始化设置:
1 | $ hexo init |
初始化成功后,文件夹里会有这些东西:
1 | . |
配置文件的详细说明请查看官方文档。
本地访问博客
生成静态文件:
1 | $ hexo generate |
启动本地服务:
1 | $ hexo server |
这时提示
1 | Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. |
然后在浏览器打开 http://0.0.0.0:4000/,就可以看到迁移好的博客啦!
挑选主题
可参考 有那些好看的 Hexo 主题?
下载主题:1
git clone https://github.com/xxxx themes/xxx
1 | $ cd your-hexo-site |
启用主题:克隆/下载 完成后,打开 站点配置文件 “_config.yml”,找到 theme 字段,并将其值更改为下载的主题名字。
剩下的就根据主题使用文档,按照自己的喜好修改了。
安装插件
站内搜索
hexo-generator-search插件为 Hexo3 提供搜索功能。
安装:
1 | $ npm install hexo-generator-search --save |
Feed
hexo-generator-feed 可以生成Atom 1.0 或 RSS 2.0 feed。
安装:
1 | $ npm install hexo-generator-feed --save |
Sitemap
说明
安装:
1 | $ npm install hexo-generator-seo-friendly-sitemap --save |
配置 Github 并上传
新建跟用户名同名的 repository,以“.github.io” 为后缀
创建成功后,点击界面右侧的Settings,打开页面后找到GitHub Pages,点击Launch automatic page generator,生成 page。
然后在网站配置文件 _config.yml文件中,找到Deployment,修改配置:
1 | deploy: |
如果使用 git 方式部署,执行1
npm install hexo-deployer-git --save
命令来安装插件。
安装成功后,在当前目录进行 deploy 操作
1 | hexo d |
上传成功后,访问 yourname.github.io ,测试是否可以正常访问。
绑定域名
在 Github 里生成 CNAME 文件
为了绑定域名,首先在 Hexo 的 “source” 文件夹中新建一个CNAME文件(没有后缀),文件内容为你要设置的域名。目的是将你的域名(如 uegeek.com )指向 Github 服务器。
Deploy 到 Github上去后大概需要几分钟生效。
到 DNSPod 新建域名,并添加 CNAME 记录指向 kidult00.github.io 。
当打开 uegeek.com 看到改头换面的博客后,内心默默地原谅自己拖延了两年 T.T
Hexo设置
站点设置
1 | # Hexo Configuration |
模版设置
1 | . |
常用命令
发表新文章
1 | $ hexo n #写文章 |
其中my new post为文章标题,执行命令后,会在项目\source_posts中生成my new post.md文件,用编辑器打开编写即可。
当然,也可以直接在\source_posts中新建一个md文件,我就是这么做的。
写完后,推送到服务器上,执行
1 | $ hexo g #生成 |
用Hexo发表文章的Markdown语法
1 | title: postName #文章页面上的显示名称,可以任意修改,不会出现在URL中 |
常用命令
1 | hexo new "postName" #新建文章 |
常用复合命令
1 | hexo d -g #生成加部署 |
简写
1 | hexo n == hexo new |
Hexo备份
已有人写了插件,hexo-git-backup,按步骤操作即可;
1 | $ npm install hexo-git-backup --save |
修改站点配置文件 _config.yml.
1 | backup: |
使用
1 | hexo backup |
or
1 | hexo b |
Hexo部署在VPS
1 | $ npm install hexo-deployer-rsync --save |
根据 Hexo rsync 部署文档 在 Hexo 中的 _config.yml 中添加 Deploy 的配置,以下是我在自己项目中的配置代码
1 | deploy: |
*必须先在 VPS 上创建好了想要存放 Hexo 静态文件的目录, rsync 不能创建不存在的目录
我看网上有的朋友说光在 Hexo 中使用 rsync 不够,在 VPS 也需要下载 rsync 服务,但是我在阿里云上就没有下载 rsync 服务。如果你在 Hexo 中用 rsync 部署的时候一直报错,那就在 VPS 上下载 rsync 服务,看能否解决一直出错的原因,命令如下
1 | $ yum -y install rsync |
如果rsync 报下面的错误
1 | rsync error: some files could not be transferred (code 23) at main.c(702) |
解决方法: rsync的source有些文件没有读权限,所以报错。
1 | chmod +r ./* -R |
再次同步,即可OK.