hexo+github搭建个人博客
hexo 博客搭建步骤
环境准备
- github帐号,以及git bash客户端;
- 安装了node.js、npm
创建仓库
在你的github中新创建一个仓库,仓库名字必须是username.github.io,例如我的是bolen.github.io
配置SSH key
如果你之前在本机用过github,并且以及产生ssh key则可忽略此步骤。
配置此步骤是在github服务器端记录git bash客户端电脑的公钥,这样就不用每次提交代码都填写用户名和密码了。
gitbash执行如下命令:
1 | $ ls ~/.ssh |
如果之前产生过公钥就会有如上图所示文件,如果提示No such file or directory 说明你是第一次使用git,则产生公钥:
1 | ssh-keygen -t rsa -C "邮件地址" |
然后查看并复制public key:
在github中添加此公钥:
settings–> SSH and GPG keys –> New SSH key,将上面的公钥粘贴到此处。
测试github key添加是否成功
gitbash中如下命令:
$ ssh -T git@github.com
如果提示Are you sure you want to continue connecting (yes/no)?
,输入yes,然后会看到类似下面的信息:
Hi bolenzhang! You’ve successfully authenticated, but GitHub does not provide shell access.
说明你的SSH key已配置成功。
此时你还需要配置:
$ git config --global user.name "bolenzhang"// 换成你自己的github用户名
$ git config --global user.email "xxx@163.com"// 填写你的github注册邮箱
Hexo相关操作
hexo简介
Hexo是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持Markdown格式,有众多优秀插件和主题。
官网: http://hexo.io
github: https://github.com/hexojs/hexo
由于github pages存放的都是静态文件,博客存放的不只是文章内容,还有文章列表、分类、标签、翻页等动态内容,hexo将这些md文件都放在本地,每次写完文章后调用写好的命令来批量完成相关页面的生成,然后再将有改动的页面提交到github。
hexo安装
$ npm install -g hexo
初始化
在电脑里新建一个文件夹用以存放博客相关内容,我的是C:\Users\bolen\myblog.
1 | $ cd C:\Users\bolen\myblog |
hexo会自动下载一些文件到这个目录,包括node_modules.
1 | $ hexo g # 生成html文件到public目录 |
此时打开浏览器访问 http://localhost:4000 即可看到内容,如果碰到浏览器刷不出来此页面的情况,请坚持4000端口是否被占用。
第一次初始化的时候hexo会呈现一篇名为Hello World的文章,默认主题。
修改主题
默认的主题比较丑,大家可以更换自己喜欢的主题,官方主题,
首先下载这个主题:
1 | $ cd C:\Users\bolen\myblog\hexo |
然后将/hexo/themes中的_config.yml中的theme: landscape改为theme:yilia,然后重新执行hexo g
来重新生成。
如果出现一些莫名其妙的问题,可以先执行hexo clean
来清理一下public的内容,然后再来重新生成和发布。
上传到github
- 配置
_config.yml
中有关deploy的部分:
1 | deploy: |
- 安装插件
1 | npm install hexo-deployer-git --save |
提交代码
此时打开git bash 输入
hexo d
就会将本次有改动的代码全部提交。
写博客
到hexo根目录然后执行:
创建new post
hexo new ‘文章名’
hexo会帮我们在_posts
下生成相关md文件. 当然你也可以直接自己新建md文件,用这个命令的好处是帮我们自动生成了时间。这里一定要注意新建的时候不要用windows自带的记事本,我曾被这里坑了很久! 另外MarkDown的编辑器推荐用Atom或Typora。
注意: Hexo对MarkDown文档头有严格的规范,官方称为 Front-matter, 即两个—中间的部分,一般完整格式如下:
1 | --- |
需要额外注意的是:每个: 一定要有一个空格。更多Front-matter规范参见官方文档:
那么hexo new page 'postName'
命令和hexo new 'postName'
有什么区别呢?
1 | hexo new page "my-second-blog" |
生成如下:
最终部署时生成:hexo\public\my-second-blog\index.html
,但是它不会作为文章出现在博文目录。
推送到github
然后执行hexo d -g命令即可生成博文了,有时需要先执行hexo clean。
Hexo命令
常用命令:
1 | hexo new "postName" #新建文章 |
部署文件需要三步
1 | hexo c |
有时不需要hexo g
常见问题
如何显示博文摘要
在合适的位置加上<!--more-->
即可
如何显示分类、标签
默认没有启用 /tags
和 /categories
页面,如果需要启用请在博客目录下的source
文件夹中分别建立tags
和 categories
文件夹每个文件夹中分别包含一个index.md
文件。内容为:
1 | layout: tags (或categories) |
因为主题中已经内置了这两个页面的模板,所以他们会被正确的解析出来。
其实上面可以简化位hexo new page indexs/categories,就会在source文件夹下自动生存所需的两个文件夹以及index.md,只是index.md需要用上述的内容格式填写。
如何建立自我介绍页面(About页面)
首先在主目录找到
_config.yml
,找到url添加about_dir: about
到这个板块。然后在/source
里面建立about文件夹。在about文件夹里建立index.md。编辑index.md就和发布其他的文章一样,格式都一样。
如何修改主题的颜色
包括颜色在内的很多变量都在
jacman/source/css/_base/variable.styl
文件中,可以修改成你喜欢的。
为什么开启了微博秀后,显示是空白的,没有内容展示?
每次修改参数都会这样,需要多刷新几次或者上传到服务器上就好了。