Hexo的搭建
本篇博客记录了如何简单搭建Hexo,并对搭建好的Hexo主题博客进行设置,包括主题,布局,风格等等。
搭建
下载NodeJS客户端,我选用的版本是 8.9.4 。 当前9.0以上的版本和npm存在兼容性的问题,所以我还是用原来的版本吧。
1 | node -v |
v8.9.4
然后安装 hexo 1
npm install -g hexo-cli
发布到github
Permission denied (publickey).
在使用 git push
时候报以下错误。
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
原因:电脑公钥(publickey)未添加至github,所以无法识别。
因而需要获取本地电脑公钥,然后登录github账号,添加公钥至github就OK了。
设置Git的user name和email
git config --global user.name "yourname" git config --global user.email "youremail"
生成密钥 1
2生存密钥:
ssh-keygen -t rsa -C "youremail" -f your_file
然后再登录github,进入个人设置settings--->ssh and gpg keys-->new ssh key 添加新生成的公钥即可。
hexo Error: Host key verification failed.
今天电脑重装系统,我决定将这个hexo文件夹整个拷贝到新电脑,配置好本地环境后,再部署的时候遇到了问题。
hexo Error: Host key verification failed.
fatal: Could not read from remote repository.
很明显没有在本地配置github的环境和账户。接下来步骤可参考https://help.github.com/articles/connecting-to-github-with-ssh/
所以打开Git Bash
,检查是否已经存在了SSH keys。
1
2
3
4
5
6
7
8
9
10
11
12# 查看.ssh目录下是否已经有私钥和公钥
ls -al ~/.ssh
# 如果有,删除。并重新生成
ssh-keygen -t rsa -C "your_github_email"
ssh-agent -s
ssh-add ~/.ssh/id_rsa
# 这里会出错,如果出错了输入下面的指令。
# eval `ssh-agent -s`
# ssh-add
# 拷贝公钥
clip < ~/.ssh/id_rsa.pub
然后到github.com个人中心的settings的SSH
keys页面,点击New SSH Key
添加公钥。
添加完毕后,测试是否连接成功。 1
ssh -T git@github.com
**Host key verification failed.**
fatal: Could not read from remote repository.
这是由于.ssh文件夹下缺少了known_hosts
文件。输入以下命令即可。
1
ssh git@github.com
最后输入指令部署即可。 1
hexo d -g
主题
本博客更换到了 NexT
主题UI,直接clone下来最新代码到 themes/next
目录即可。
1 | cd hexo-site |
修改 Hexo 的配置文件,改成next主题: 1
theme: next
查看next的安装包依赖 hexo 本地是否满足,一般都要升级依赖包,见下文。
如果本地预览和部署的文件有差异,猜测是由依赖包不符引起的,需要升级,并且部署前将
.deploy_git
文件夹删除。
添加访问统计
我喜欢在自己的布局文件的侧栏添加访问量。
路径为:/themes/jacman/layout/_partial/sidebar.ejs
.
添加本站访问人数和访问人次总数。 1
2
3
4
5
6
7
8
9
10<div class="linkslist">
<span id="busuanzi_container_site_uv">
本站访客数<span id="busuanzi_value_site_uv"></span>人次
</span>
</div>
<div class="linkslist">
<span id="busuanzi_container_site_pv">
本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
</div>
文章按照更新时间排序
找到主配置文件 _config.yml,然后修改或者添加
index_generator
的 order_by
为
-updated
即可:
1 | index_generator: |
重新生成页面:
1
hexo g
hexo s
命令失效
我将hexo整个文件夹上传到github服务器,在另一台电脑下载下来,运行hexo s
失效,从显示结果来看,不存在此命令。
这是由于Hexo3将hexo-server
独立出来了,如果需要本地调试,需要先安装server。
1
2npm install hexo-server --save
npm install
WARN No layout: index.html
这种情况的出现是由于主题配置出错。查看themes
文件夹下是否有相关文件夹并且文件夹下是否有文件;_config.yml
内theme
是否和主题名称对应。
升级依赖包
1 | npm i hexo-cli -g |
查看更新到的版本。
1
hexo vesion
检查更新。
1
2npm install -g npm-check
npm-check
1
2npm install -g npm-upgrade
npm-upgrade
一路回车确认安装即可。
接下来在本地生产环境安装
1
npm install --save
操作
启动本地server
有时候本地server启动后会遇到端口被占用情况,可以在
node_modules\hexo-server\index.js
文件中设置
或者在启动命令行中加入 -p <port>
启动选项。
1 | hexo.config.server = Object.assign({ |
发布新文章
执行 new
命令, 生成指定名称的文章至
hexo\source_posts\postName.md
。
1 | hexo new [layout] "postName" |
其中layout是可选参数,默认值为post。有哪些layout呢,请到scaffolds目录下查看,这些文件名称就是layout名称。
当然你可以添加自己的layout,方法就是添加一个文件即可,同时你也可以编辑现有的layout,比如post的layout默认是
hexo\scaffolds\post.md
。
新文件的开头是属性,采用统一的 yaml
格式,用三条短横线分隔。 可以直接修改 title(标题名字)、
date(时间)等。 description
是文章概要,该项为空时hexo默认在首页会显示全部文章内容,如果文章比较长就会显的内容很乱;写让该项后hexo会显示摘要和“阅读全文”连接。下面是文章正文。
title: postName #文章页面上的显示名称,可以任意修改,不会出现在URL中
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: #文章分类目录,可以为空,注意:后面有个空格, 用格式
- [tag1,tag2]
tags: #文章标签,可空,多标签请用格式[tag1,tag2,tag3],注意:后面有个空格
- tag1
- tag2
description: #概要信息
---
正文。
草稿
草稿默认不会显示在页面上,链接也搜索不到。会在
source/_drafts
目录下生成一个 new-draft.md
文件。
1
hexo new draft "new draft"
如果预览草稿,可 1.
或者如下方式启动server:hexo server --drafts
2.
更改配置文件(*_config.yml*)render_drafts: true
,但是deploy前需要求改掉。
下面这条命令可以把草稿变成文章,或者页面: 1
hexo publish [layout] <filename>