avatar

Hexo遇到的那些坑

搭建

搭建很简单,但你要有一种从头再来的勇气,比如我最开始安装在C盘并且部署成功,然后电脑历经一次加固态硬盘两次重装系统,于是CDEFGH盘都装了一遍hexo,目前在H盘,只不过是从头再来嘛…

关于搭建

搭建的教程、文档实在太多太多,这里给出一些参考文档:

Easy Hexo   by:ChungZH的Easy Hexo小队

参照文档搭建即可,基本不会报错。在这之前,你应该先分清hexo根目录下的配置文件_config和theme主题目录下的_config,你的自定义修改不生效的原因十有八九皆出于此。下面简述搭建遇到的坑。

关于部署

1 如何写部署配置

根目录下的_config.yml

1
2
3
4
5
6
7
8
9
10
11
12
deploy:
type: git
repo: https://github.com/xxx/xxx.github.io.git
branch: master

github+coding双部署:
deploy:
type: git
repo:
github: git@github.com:xxx/xxx.github.io.git
coding: git@git.dev.tencent.com:xxx/xxx.coding.me.git
branch: master

2 添加SSH keys

每次重新搭建就这个最坑,其实也挺简单。
打开Git Bash,依次输入以下指令:

1
2
3
4
5
6
7
git config --global user.name "Your Username" (输入你的Github用户名)

git config --global user.email "Your Email Address" (输入你的Github邮箱地址)

cd ~/.ssh

ssh-keygen -t rsa -C "Your Email Address" (此处直接回车即可)

出现以下提示输入密码
Enter passphrase (empty for no passphrase):【输入加密串】【加密串我们看不见,所以你输密码的时候不要以为没输入进去,你直接输入就好,输完密码按回车键确定就行】
Enter same passphrase again: Passphrases do not match. Try again.【再次输入加密串】如果密码输入不一致,会提示再次输入:】
如图所示
ssh

错误演示,指令依次输入,并保证GitHub用户名和邮箱正确。
错误演示

添加SSH keys到GitHub
打开GitHub,点击右上角的头像-Settings-SSH and GPG keys -New SSH key
打开电脑路径C/Users/Administrator/.ssh,找到id_rsa.pub文件(默认可能用Microsoft Publisher打不开),右击用记事本打开该文件,全选复制添加到New SSH keys中,如图:SSH

可以输入以下指令检查

1
ssh -T git@github.com

出现以下提示表明你的SSH keys生成成功
Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:
Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access.

3 部署失误

首次部署hexo deploy的时候会弹出一个登录窗口,就像下面这样。万一不小心输错了怎么办呢,它还真就不会再弹出来
部署失误
在部署coding时与腾讯云密码混淆,输错导致报错如下,记不清楚了,大概是这样的:

1
2
remote: HTTP Basic: Assess denied...
fatal: Authentication failed for...

别担心,这是因为Windows的凭据管理器里面保存了你输错的账户信息,解决方法:
打开控制面板/用户账户/凭据管理器,编辑或删除凭据即可,如图:
凭据管理器

常见的报错

Usage: hexo <command>

Hexo Command
这个错误的主要原因有:

  1. 路径错误,当前所在路径无hexo,因此指令无效,检查路径即可解决

  2. 指令输入有误,检查指令或符号是否正确。参考Hexo Commands

  3. 指令缩写冲突,例如hexo c有多种含义:hexo cleanhexo config,当你安装了豆瓣的插件之后,最常用的hexo d也会产生冲突。因此指令尽量不用缩写,常用指令全称如下:

    1
    2
    3
    4
    缩写指令:
    hexo clean && hexo g && hexo d
    全称指令:
    hexo clean&&hexo generate&&hexo deploy

    fatal: Could not read from remote repository

Please make sure you have the correct access rights and the repository exists.

无法读取到远程仓库,请确保您具有正确的访问权限,并且存储库存在。
fatal

  1. 检查根目录的_config.ymlgit地址配置是否正确
  2. 重新生成并添加SSH keys,参考上面添加SSH keys

写文章模板呈现报错

文章内格式不正确或是调用的样式未定义会出现以下错误:

检查文章格式及MarkDown语法是否正确

GitBash无法使用

出现以下提示,重启电脑即可解决

警告提示

warning: LF will be replaced by CRLF in…

warning: LF will be replaced by CRLF in
The file will have its original line endings in your working directory

警告:在…中,LF将被CRLF替换。
该文件将在您的工作目录中具有其原始行尾
警告提示1
依次输入以下代码即可解决 .代表当前目录

1
2
3
git rm -r --cached ./
git config core.autocrlf false
git add ./

关于主题

推荐一些主题:

Hexo 好看的主题推荐

HEXO之禅

《HEXO之禅》发一下:折腾主题是使用HEXO的最大原罪。专注于创作,而不是令人眼花缭乱的效果。名家之博,不假于主题之花哨,而得知于内容。

  • 折腾主题是使用HEXO的最大原罪。专注于创作,而不是令人眼花缭乱的效果。名家之博,不假于主题之花哨,而得知于内容。
  • 有问题记得首先查看官方文档,善用搜索引擎。没有人有义务的无条件帮你。
  • 善于分享,赠人玫瑰手有余香。写作是检索你对知识理解程度的手段,而分享是激励你继续创作的动力。
  • 不忘初心,方得始终。

所以不要再去折腾主题,专注创作吧。

主题折腾历程

最初选择star最多的NexT,文档多,折腾起来比较简单。看了上百篇文档,最终放弃了NexT。原地址:https://xiabor.github.io
之前的辛酸史就不总结了,总结一下现主题的折腾史。

主题文档:https://jerryc.me/posts/21cfbf15/

修改theme未生效

因为沒有 pug 以及 stylus 的渲染器,下载安裝:

1
npm install hexo-renderer-pug hexo-renderer-stylus --save

导航栏无法设置中文

直接修改主题目录下的_config里的menu,和其他主题不太一样,作者说的:
导航栏中文

1
2
3
4
5
6
7
8
9
10
11
menu:
首页: / || fa fa-home
归档: /archives/ || fa fa-archive
标签: /tags/ || fa fa-tags
分类: /categories/ || fa fa-list-ul
友链: /link/ || fa fa-cogs
关于: /about/ || fa fa-universal-access
兴趣||fa fa-list:
- 读书 || /books/ || fa fa-book
- 音乐 || /music/ || fa fa-music
- 电影 || /movies/ || fa fa-film

修改主题颜色

主要颜色在主题目录下的_config修改,我帮你解释一下含义

1
2
3
4
5
6
7
8
9
10
11
theme_color:
enable: true
main: "主色调"
paginator: "分页"
button_hover: "鼠标悬停时的颜色"
text_selection: "选中文本颜色"
link_color: "链接颜色"
meta_color: "我也不知道"
hr_color: "好像是下划线颜色"
read-mode-bg_color: '阅读模式背景色'
inline-code-color: '代码块颜色'

除了这里还可以在\blog\themes\Butterfly\source\css\var.style下修改或添加一个自定义颜色,在相应的css文件中引用,例如

1
2
3
4
$white = #FFFFFF
$laurel-green = #9fefaf
$side-green = #69c67b
$whitesmoke = #f5f5f5;

友情链接配置报错

任何报错一定要先检查路径,90%的报错可以说都是路径问题。

Butterfly主题配置友情链接时hexo g 报错如下
友情链接配置报错

主题文档中表明报错原因主要是link.yml中的空格引起,因此我一直检查空格,折腾了数天还是报错。这里推荐使用YML在线校验工具检查空格。
YML在线校验工具

例如我的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class:
class_name: 朋友们
link_list:
1:
name: 快乐绒布球
link: https://rongbuqiu.com
avatar:
descr: 世界上最可爱的男孩子

2:
name: 鸭吉吉
link: https://blog.givensir.cn
avatar:
descr: 世界上第二可爱的男孩子
3:
name: Zidone
link: https://www.aye.ink
avatar:
descr: 世界上第三可爱的男孩子
4:
name: TZloop
link: https://www.zonelyn.com/
avatar:
descr: 保持怀疑,独立思考
class2:
class_name: 我的主页
link_list:
1:
name: 雪曦
link: https://blog.xiabor.com
avatar: http://xiabor.com/img/avatar.png
descr: 个人主页

配置检查空格没有任何错误之后,发给了几位大佬测试也没出现报错,其中一位大佬让我检查路径,我打字发了一个正确的路径。直到有一天,找到了主题的Tg频道,作者问我路径对不对才恍然大悟。别问我错在哪儿,英语不好,丢人~~

正确路径为:blog/source/_data/link.yml

网站提示不安全

如果你的域名有https证书且有效,但是提示下图
不安全提示

原因可能是你的图片外链采用了HTTP,所以导致整个页面不安全。所以选用一个HTTPS图床就完美解决了。例如我的七牛云图床(待更新)

新建文章自动打开编辑器

新建文章一般是博客根目录下打开GitBash,使用hexo new postname新建文章,如何在新建后自动打开编辑器呢?

在博客根目录下新建文件夹scripts,在该文件夹中创建JavaScripts文本文档,然后修改它的后缀名为.js。也就是改为JavaScripts.js。编辑器打开并写入以下代码:

1
2
3
4
var spawn = require('child_process').exec;
hexo.on('new', function(data){
spawn('start "markdown编辑器绝对路径.exe" ' + data.path);
});

新建文章便会自动打开编辑器

持续更新ing……

文章作者: 雪曦
文章链接: https://xiabor.com/2019/12/07/hexo1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xuexi's Blog
ღ喜欢记得五星好评哦~
赞赏
  • 微信
    微信
  • 支付寶
    支付寶

评论