Fork me on GitHub

在用Hexo+GithubPages搭建博客时遇到的坑

hexo+github

开发时踩坑记录



这不是一篇教程,主要还是记录了我从0搭建过程中遇到的坑
另外网上教程那么多,我何必多此一举呢?

开发这个博客时主要参考:

Hexo中文文档
Next主题官方文档
GitHub+Hexo 搭建个人网站详细教程
Hexo+Next主题美化

解决Hexo d命令报错

1
2
3
4
5
6
FATAL bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://github.com': Invalid argument
Error: bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://github.com': Invalid argument

或者显示没有发现git仓库,当时忘截图了,大概就是这个意思

将原来_config.yml中的deploy中repo格式改为下列形式

1
2
3
4
deploy:
type: git
repo:git@github.com:your_github_user_name/your_github_user_name.github.io.git
branch: master

重新生成ssh key并添加到github

1
$ ssh-keygen -t rsa -C 948805382@qq.com(换成你的邮箱地址)

接着出现的一些步骤都可以回车跳过:

复制ssh密匙要将C:\Users\puzhiwei.ssh\id_rsa.pub中内容全部复制到GitHub

添加过程见参考资料3

验证ssh key:

1
$ ssh -T git@github.com

可能会先弹出让你输入yes的选项,输入yes后,出现

1
Hi puzhiweizuishuai! You've successfully authenticated, but GitHub does not provide shell access.

即链接成功

初始化本地git仓库

设置Git的user name和email:

1
2
$ git config --global user.name "puzhiweizuishuai"(换成你的用户名)
$ git config --global user.email "948805382@qq.com"(换成你的邮箱地址)

在本地的hexo init生成的文件夹中初始化git仓库:

1
$ git init

做完以上这些步骤,说明你的仓库可以使用ssh方式来上传下载代码,而不需要输入用户名和密码了

网站部署

1
2
3
$ hexo clean  //清除缓存文件db.json和已生成的静态文件public
$ hexo g //生成网站静态文件到默认设置的public文件夹
$ hexo d //部署网站到设定的仓库

菜单栏汉化

第一次以为直接在hexo的配置文件里改就行,如将home改成主页,

后来发现这样是错误的查找官方文档后将hoex配置文件里的language文件修改为

1
language: zh-Hans

但菜单栏还是不改变
最后查找资料发现要将主题中language文件修改为zh-CN
并将hoex修改为

1
language: zh-CN

才能变成中文

去掉低栏的logo和注意事项

用Next主题搭建起来的博客,在底部会有一个特别烦人的官方logo

对于强迫症的我必须要改掉、改掉、改掉!

解决方案

1.首先,找到 \themes\next\layout_partials\下面的footer.swig文件,打开会发现,如下图的语句:

第一个框 是下面侧栏的“日期 XXX”如果想加东西,一定要在双大括号外面写。如:xxx,当然你要是想改彻底可以变量都删掉,看个人意愿。

第二个,是图一当中 “由Hexo驱动” 的Hexo链接,先给删掉防止跳转,如果想跳转当然也可以自己写地址,至于中文一会处理。注意删除的时候格式不能错,只把

1
<a>...</a>

标签这部分删除即可,留着两个单引号’’,否则会出错哦。

第三个框也是最后一个了,这个就是更改图一后半部分“主题-Next.XX”,这个比较爽直接将

1
<a>..</a>

都删掉,同样中文“主题”一会处理,删掉之后在上一行 ‘-’后面可以随意加上你想显示的东西

2.接下来,处理剩余的中文信息。找到这个地方\themes\next\languages\ 下面的语言文件zh-CN.yml(这里以中文为例,有的习惯用英文的配置文件,道理一样,找对应位置即可)
这个是我修改后的:

1
2
3
footer:
powered: " %s "
theme: 吐槽

添加地址栏图片

加入后就可以在浏览器的标签栏或者是收藏夹里面现实网站的缩略图标了。
在themes/next/的_config.yml中配置:

1
2
Put your favicon.ico into `hexo-site/source/` directory.
favicon: /images/favicon.ico

然后把图标放到根目录的source/images/下面。

添加文章末尾的版权声明

在路径\themes\next\layout_macro中添加passage-end-tag.swig文件,其内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{% if theme.passage_end_tag.enabled %}+
<br/>
<div style="border: 1px solid black" weight="50%" height="50%">
<div style="margin-left:10px">
<span style="font-weight:blod">版权声明</span>
<br/>
<p style="font-size: 10px;line-height: 30px">


<a href="https://puzhiweizuishuai.github.io" style="color:#258FC6">
史上最帅社会主义接班人
</a>
创作并维护的<a href="https://puzhiweizuishuai.github.io" style="color:#258FC6">不挂英语</a><br/>
博客采用<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/" style="color:#258FC6">
创作共用保留署名-非商业-禁止演绎4.0国际许可证</a>。<br/>
本文首发于<a href="https://puzhiweizuishuai.github.io/" style="color:#258FC6">不挂英语</a>
博客( <a href="https://puzhiweizuishuai.github.io/" style="color:#258FC6">https://puzhiweizuishuai.github.io/</a> ),
版权所有,侵权必究。</p>
</div>
</div>

修改 post.swig 文件

在\themes\next\layout_macro\post.swig中,post-body之后,post-footer之前添加如下代码:

1
2
3
4
5
<div>
{% if not is_index %}
{% include 'passage-end-tag.swig' %}+
{% endif %}
</div>

在主题配置文件中添加字段

在主题配置文件 _config.yml中添加以下字段开启此功能:

1
2
3
# 文章末尾添加“本文结束”标记
passage_end_tag:
enabled: true

换电脑了怎么办

我查找了网上很多教程,最后采用了新建一个仓库,保存原文件的做法
具体如下
由于在建立博客时账号设置什么的你应该已经搞定了,我就不多说了
接下来只必要的和可能遇到的错误

建立远程库
这个很简单,我也就不写了
直接从建立本地库开始

1.找到博客所在的文件夹

2.git init (在本机上新建一个git仓库)

3.git add -A (将文件的修改,文件的删除,文件的新建,添加到暂存区,即保存所有的修改)

4.git remote add origin xxxxxxxxx xxxxxx 就是你仓库的地址,具体的地址可以去Github上copy。关联远程仓库。

5.git commit -m “firstCommit” (提交文件,将暂存区的内容提交至Git本地数据库)

6.git pull –rebase origin master 更新远程更新到本地

7.git push origin master(git push -u origin master) 将本地repo于远程的origin的repo合并,第一次用-u,系统要求输入账号密码
此时可能会出现如下错误

1
2
3
4
5
6
7
8
To github.com:PuZhiweizuishuai/puzhiweiblog.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:PuZhiweizuishuai/puzhiweiblog.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决方案为:git push origin master -f,强行让本地分支覆盖远程分支。

8.后期执行

1
2
3
4
5
git add .   // 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 

git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注

git push origin master // 第一次推送后,直接使用该命令即可推送修改

即可完成仓库更新

这样换电脑后直接克隆这个仓库里的文件,重新安装运行环境就行了

End

其他问题机本上参考官方文档就可以解决,我就不多写了,毕竟太懒,有什么问题可以在评论里回复我


+ +
-------------本文结束感谢您的阅读-------------

本文标题:在用Hexo+GithubPages搭建博客时遇到的坑

文章作者:史上最帅社会主义接班人

发布时间:2018年05月12日 - 21:05

最后更新:2018年05月13日 - 22:05

原始链接:https://www.buguagaoshu.com/2018/05/12/在用Hexo-GithubPages搭建博客时遇到的坑/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

打赏链接还是要有的,万一真的有人打赏呢