利用 Hexo&GithubPage 搭建博客

引言

由于某些原因,不得不把原先搭建的 Hexo + Github Page 静态博客仓库删掉,我个人比较喜欢记笔记,加上我比较喜欢原先的博客主题 —— hiker ,所以打算重建原先的博客。在重建的过程中我发现原先我认为主题的 bug 都是我没看 README.md 或者 issues ,当然也发现了该主题现存的一些问题,顺便写下这篇博客记录这些。

创建 Github Page

官方文档写的比较详细,强力推荐!

安装环境

PC 端使的系统是 Ubuntu 18.04.5 LTSWindows 其实大致都一样(从搭建过程来看 Windows 更加容易点,少了很多莫名奇妙的问题)。

安装 Git

安装 Git

安装 Nodejs

Node.Js官方下载链接

  • Windows 用户直接下载安装包,然后一路 next ,当然这边应该有个环境变量的添加,这个需要小伙伴自行百度了;

  • Linux 用户(Ubuntu 18.04.5 LTS)登录官网根据自己机器配置下载对应的安装包(个人推荐下载二进制文件,当然你也可以使用源码安装,看个人喜好)。

    • 然后在对应的文件夹下有3个二进制文件 nodenpmnpx ,需要建立对的软连接或者修改环境变量,前者添加软连接比较方便(/usr/local/nodejs/bin/ 这个为我压缩包解压后的路径)。
    • sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
    • sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
    • sudo ln -s /usr/local/nodejs/bin/npx /usr/local/bin/npx
    • node -vnpm -vnpx -v 检验一下。

安装 Hexo

官网有全局安装教程和局部安装教程,我推荐还是直接在项目目录里面进行局部安装会好一些,便于管理。

1
npx init hexo

部分教程会先安装 npm install hexo ,在我使用局部安装搭建的时候系统提示, hexo 初始化的目录必须为空,所以直接初始化 hexo 站点

本地站点搭建

1
npx hexo server

或者简写为 npx hexo s ,然后访问 http://localhost:4000/ 就可以看到本地站点服务了。

修改站点配置文件_config.yml

里面参数比较多,主要就是 themedeploy 。我们可以根据 Hexo 官方配置参数说明来修改。

关于博客的主题,我们可以到 Hexo 主题库里面去寻找,然后跳转到对应的 Github 仓库,根据 README 来完成主题的部署。

部署发布

完成上面的 deploy 参数的填写后,我们需要安装一个模块 hexo-deployer-git

1
npm install hexo-deployer-git --save

接下来就是向远端仓库提交编译后静态站点文件。

  1. 执行 clean ,清理缓存内容;
1
npx hexo clean
  1. 生成站点静态文件;
1
npx hexo generate
  1. 部署,向远端提交资源;
1
npx hexo deploy

完成!

hiker主题尚存的问题及解决方法

下面着重解决我使用的主题 hiker 遇到的一些问题,主题的 UI 设计挺棒的,但是由于很长时间没更新了,出现了或多或少的小问题。

不蒜子计数器失效

2022.4.29 更新

themes/hiker/layout/_partial/busuanzi-analytics.ejs

1
2
3
4
<% if (theme.show_busuanzi_view_counts){ %>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
<% }%>

替换成

1
2
3
4
<% if (theme.show_busuanzi_view_counts){ %>
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
<% }%>

前后翻页的按钮中表示 ”«“ ”»“ 的转义字符显示不正常

2022.2.12 更新

问题详情可以查看这个 issues

索性直接把这个字符删掉了,修改文件 themes/hiker/layout/_partial/article.ejs ,第 31

1
<% var prev_text = "&laquo; " + __('prev');var next_text = __('next') + " &raquo;"%>

替换成

1
<% var prev_text = __('prev');var next_text = __('next')%>

首页不显示文章摘要下方不显示Tag

2021.6.27 更新

感觉贡献者 pullbug ,至少我这边回滚这部分代码就解决问题了。

修改文件 themes/hiker/layout/_partial/article.ejs ,替换下面两段代码。

1
2
3
<% if (is_post()){ %>
<%- partial('post/tag') %>
<% } %>

替换成

1
2
3
<% if (!theme.post_excerpt){ %>
<%- partial('post/tag') %>
<% } %>

文章太长右侧的TOC无法滚动

2021.6.27 更新

修改路径 themes/hiker/source/css/_partial/article.styl ,原文链接,但还是有小问题。目录无法根据文章级联滚动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*  搜索#toc,修改参数,参数都缩进两位 */
#toc
height: 76%

/* #toc 后增加以下两个样式, 用于修改滑块、滑条样式 */
#toc::-webkit-scrollbar
background-color: #ece9e9
-webkit-border-radius: 2em
-moz-border-radius: 2em
border-radius: 2px
width: 5px

#toc::-webkit-scrollbar-thumb
border-radius: 4px
background: rgba(0,0,0,0.3)
-webkit-box-shadow: inset 0 0 6px RGB(243, 243, 244)

主页文章摘要

2021.6.27 更新

打开自动摘要,Read More 按钮不显示;而且摘要不以 Markdown 形式出现。找了很长时间,最后第一个问题在一篇博文中找到了解决方法 —— 换了新主题hiker

具体解决方法:
替换文件 themes/hiker/layout/_partial/article.ejs 中下面两段代码

1
2
3
4
5
6
7
8
9
10
11
12
<div class="article-entry" itemprop="articleBody">
<% if (theme.post_excerpt && index){ %>
<p class="article-excerpt-content">
<%- truncate(strip_html(post.content), {length: 250, omission: '...'}) %>
</p>
<p class="article-more-link">
<a href="<%- url_for(post.path) %>#more"><%= __('read_more') %></a>
</p>
<% } else { %>
<%- post.content %>
<% } %>
</div>

替换成

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
<div class="article-entry" itemprop="articleBody">
<% if (post.excerpt && index) { %>
<%- post.excerpt %>
<p class="article-more-link">
<a href="<%- url_for(post.path) %>#more"><%= __('read_more') %></a>
</p>
<% if (theme.excerpt_link) { %>
<p class="article-more-link">
<a href="<%- config.root %><%- post.path %>#more"><%= theme.excerpt_link %></a>
</p>
<% } %>
<% } else { %>
<% var br = post.content.indexOf('\n') %>
<% if(br < 0 || !index) { %>
<%- post.content %>
<% } else { %>
<%- post.content.substring(0, br) %>
<% if (theme.excerpt_link) { %>
<p class="article-more-link">
<a href="<%- config.root %><%- post.path %>#more"><%= theme.excerpt_link %></a>
</p>
<% } %>
<% } %>
<% } %>
</div>

关闭自动摘要, tag 才会显示出来:

1
post_excerpt: false

卸载 hexo-auto-excerpt ,不然摘要以文本形式出现。

1
npm uninstall hexo-auto-excerpt

logo 显示不全

2021.6.26 更新

这边放一个本地调试的链接,在该链接下 http://localhost:4000/archives/ ,出现 logo 显示不全。

在查看到这个 Issues 的时候发现了类似的问题,根据下面的评论发现了 @WayneChang65 向源仓库 pull 过修复类似问题的代码,并且作者在该 commit 的时候合并代码了,根据记录和 Demo 中的源码,只要将 commit 的代码块回滚就完事了。

具体解决方法:
替换文件 /themes/hiker/layout/_partial/head.ejs 中下面一行代码

1
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">

替换成

1
<link href="//cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet">

插件推荐

遇到的错误

  • 在克隆仓库的时候我本地一直报错 server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt ,找了很多方法,最后还是这个比较有效 git config --global http.sslverify "false" (建议使用完再改回来,对应的文件名 .gitconfig ,一般在根目录下),其他一些解决方法我也放在下方。

参考资料

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2023 Leamx's Blog All Rights Reserved.

UV : | PV :