Hexo搭建个人博客
文章目录
这不完全是一篇搭建个人博客的教程,因为Hexo的文档其实写得非常清楚了。但是,我们按照教程来不一定很顺利。所以,这主要还是一个小白的经验之谈。
Hexo
我为什么选择Hexo呢?
- 网上很多人推荐使用Hexo
- 我本来也打算用Jekyll,但是由于网络原因Ruby的开发环境的安装包我下载不下来。
什么?还有其他的比Hexo好用,为什么不用?别问,问就是Hexo是最好用的。
安装Hexo
准备
这两我都是用得很少,一般都是现学现用。安装也不难,这就不多说了。
Git配置
由于最终我们的是将网站部署到GitHub Pages
,所以这里需要配置Git,将Git和GitHub关联上,以便之后将文件push到GitHub。
鼠标右击,选择Git Bash Here打开Git命令行。
配置user.name和user.email
1 2
git config --global user.name '你的GitHub用户名' git config --global user.email '你的GitHub注册邮箱'
生成SSH密钥
1
ssh-keygen -t rsa -C '你的GitHub注册邮箱'
然后直接连续回车就OK,默认不需要设置密码
复制公钥
打开.ssh文件夹中的id_rsa.pub文件(用文本编辑器打开就好了),复制里面的内容。(我的在这个目录下:C:\Users\Admin\.ssh)
Title的内容随意,Key里面粘贴第4步中复制的内容,然后点击
Add SSH Key
检查
打开Git Bash,输入
1
ssh git@github.com
显示
You've successfully authenticated
这样的话,就是成功了。
安装
|
|
打开一个新的命令行窗口输入
|
|
能显示出一些帮助信息就说明装成功了
建站
初始化网站
找一个你想放网站文件的地方,然后执行下列命令
|
|
<folder>换成你想要的文件夹名字。完成后,能看到指定文件夹的目录如下:
|
|
到目前为止,网站就建好了。但是我们要在本地看效果还需要将网站部署到本地服务器。
服务器
安装hexo-server
1
npm install hexo-server --save
启动
1
hexo server
这里一定要切换到网站文件夹下启动
。最终看到输出
Hexo is running at http://localhost:4000
就是启动好了。打开浏览器输入http://localhost:4000就能看到Hexo默认主题
landscape
的页面
GitHub Pages
我们现在已经在本地部署过搭建的网站了。为了让其他人也能看到,我们要个人网站部署到GitHub Pages。
这个教程在Hexo也是有的,有两种方式。我比较推荐第一种,就是使用Travis CI 。
info
为什么选第一种?
主要还是我按第二种,GitHub上只存了Hexo生成的页面,但是我想源文件也想存下来,当然我们也可以将源文件也上传到GitHub,达到跟第一种类似的效果。但是,持续集成服务,免费的,它不香吗?
如果你按官方教程后最终发现这个:
User pages must be built from the
master
branch.
那么下面的内容就有用了。因为Hexo的教程是将Hexo的文件放master,然后生成的html放gh-pages的,以前可能是没问题,但是现在GitHub规定你必须将页面放到master。
info
2020年11月20日更新,现在不仅可选分支,甚至可以选分支下/doc目录
GitHub新建一个 repository。命名为
<你的 GitHub 用户名>.github.io
。选择Public,勾上Initialize this repository with a README然后选择一个地方新建一个空的文件夹。进入文件夹,右键鼠标,选择Git Bash Here打开Git命令行。将刚才建的repository clone下来:
1
git clone git@github.com:<你的GitHub用户名>/<你的GitHub用户名>.github.io.git
然后新建一个分支用来存放Hexo生成前的文件。(我的分支名就blog)
1
git branch <分支名字>
然后切换到分支
1
git checkout <分支名字>
将之前建站的文件夹<folder>下的所有文件及文件夹复制到第2步种新建的文件夹下面。
将第3步种的文件提交到分支,填写注释
1 2
git add . git commit -m '<注释>'
将文件push到GitHub
1 2
git remote add origin git@github.com:<你的GitHub用户名>/<你的GitHub用户名>.github.io.git git push -u origin master
上传成功后就能在GitHub上之前建的repository的分支看到了。
将 Travis CI 添加到你的 GitHub 账户中。
前往 GitHub 的 Applications settings,配置 Travis CI 权限,使其能够访问你的 repository。
你应该会被重定向到 Travis CI 的页面。如果没有,请 手动前往。
在浏览器新建一个标签页,前往 GitHub 新建 Personal Access Token,只勾选
repo
的权限并生成一个新的 Token。Token 生成后请复制并保存好。回到 Travis CI,前往你的 repository 的设置页面,在 Environment Variables 下新建一个环境变量,Name 为
GH_TOKEN
,Value 为刚才你在 GitHub 生成的 Token。确保 DISPLAY VALUE IN BUILD LOG 保持 不被勾选 避免你的 Token 泄漏。点击 Add 保存。在你的 Hexo 站点文件夹(现在这个站点文件夹为应该为
<你的 GitHub 用户名>.github.io
中新建一个.travis.yml
文件:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
sudo: false language: node_js node_js: - 10 # use nodejs v10 LTS cache: npm branches: only: - blog # build blog branch only script: - hexo generate # generate static files deploy: provider: pages skip-cleanup: true github-token: $GH_TOKEN keep-history: true target_branch: master on: branch: blog local-dir: public
这里的内容和Hexo官网的有点区别。这里指定了build的为<分支名字>(我的是**blog**}),目标是master
将
.travis.yml
推送(推送方法和之前的文件推送到GitHub类型)到 repository 分支中。Travis CI 应该会自动开始运行,并将生成的文件推送到同一 repository 下的master
分支下。推送之后等一会,Travis CI 上就能看到build信息。等Travis CI build完之后。就能在
https://<你的 GitHub 用户名>.github.io
查看你的站点了。可能需要等一会儿。发布成功的话,你应该可以在repository的setting的GitHub Pages下看到Your site is published at https://<你的 GitHub 用户名>.github.io
。
Hexo主题
到此,我们已经将网站发布到GitHub Pages了。但是默认的landscape
,真的不符合我的审美。我们可以取Hexo主题网站挑选,也可以去GitHub上搜索hexo-theme
。我就是去GitHub上挑选的star比较高的Next主题,所以我就以Next
主题为例。
安装
安装
切换到站点文件夹,按我上的的教程此时应该是
|
|
配置_config.yml
|
|
配置
一开始Next主题的很多配置都是关闭的,所以我们可以通过查看文档,然后修改主题的_config.yml
来开启和配置一些功能。下面只讲我遇到过问题的。
Post Wordcount
这是一个统计文字的功能,但是我安装步骤弄好之后。页面显示的字数和阅读时间都没正确显示出来。我看GitHub上关于没有正确显示字数的issue都是因为Next升级到6.x
之后,将统计的插件从hexo-wordcount
换到了hexo-symbols-count-time
。而我的都是最新的,最终我在Hexo上找到了解决办法。
在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。
这个命令就是
|
|
我运行完这个之后就正确显示了。
Comment Systems
评论系统我选的Gitalk。嗯,我比较喜欢GitHub那一套。
具体过程,按照Gitalk的文档来就行。
需要注意的就是这个配置next/_config.yml
|
|
这里填的是 Repository的名字,不是SSH URL。这个填错了页面上会显示Error
。
另外,评论系统你得发布到GitHub才能正常使用。
CC license
协议详情见Creative Commons
将这个配置开启可以在文章最后加一个版权声明
next/_config.yml:
|
|
推送主题修改到GitHub
因为我们是将Next主题直接clone到我们自己的Repository下。所以,我们推送的文件中,有个.git的文件夹。嵌套仓库可能会出问题。注意命令行的提示信息,会有类似让你执行下面这条命令的提示
|
|
这条真的有用,执行完就可以提交了。如果不行,你就多试几次,亲测有效。
使用
标签和分类
这个我们在Next的文档中就能弄好了。
发布文章
在站点文件夹下执行如下命令
|
|
这条指令其实就是在source/_posts文件夹下建了名为<title>.md的文件。
用一个markdown的编辑器打开这个文件就可以开始写文章了。
文章的头部一段内容可以包含标签,分类。本篇文章就是这就这样的
|
|
默认的情况下,文章是全部展开的,我们可以在文章的任何地方添加
|
|
控制哪些内容需要点击**阅读全文»**查看。