介绍
后来发现单纯的wiki风格博客可能确实有些单调了(绝对不是因为我想弄二次元风格的),因此在考虑以后,决定搭建一个双主题的博客,外层是个华丽一点的主题matery,内层是个wiki风格主题Wikitten。
同时可以通过外层的wiki标志点击进入内层的wiki主题。
双主题安装
参考文章:Hexo 同时使用两种主题(博客与 wiki 页面实现统一管理) | 别院牧志 (masantu.com)
把原来wiki主题的
_config.yml
复制并重命名为_config_wiki.yml
(wiki主题下的站点文件安装
hexo-theme-matery
主题1
2cd your-hexo-directory/themes
git clone https://github.com/blinkfox/hexo-theme-matery按照
matery
教程配置新的_config_wiki.yml
文件修改
_config_wiki.yml
文件:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: https://bg51717.github.io/wiki/
root: /wiki/
# permalink: :year/:month/:day/:title/
# permalink_defaults:
permalink: /:abbrlink/
abbrlink:
alg: crc16 #算法: crc16(default) and crc32
rep: dec #进制: dec(default) and hex
permalink_defaults:
# Directory
source_dir: source
public_dir: public/wiki/
代码块行高问题
在使用
prismjs
渲染代码块的时候,可能会遇到图示问题,行高不匹配,其实主要是位置没有对准:
可以参考:hexo 7.3 代码块显示问题 · Issue #928 · blinkfox/hexo-theme-matery
解决办法是把
themes\hexo-theme-matery\source\libs\prism\prism.min.css
文件里的:
1 | [class*=language-].line-numbers>code{position:relative;white-space:inherit} |
修改为:
1 | [class*=language-].line-numbers>code{position:sticky;white-space:inherit} |
wiki图片链接问题
由于渲染的站点 url
和 root
里都有
wiki
,因此会导致渲染出来的图片出现两次
/wiki
,因此需要代码进行处理,核心函数如下所示:
1 | def post_html_file(file_path): |
图库APi设置
对于外层主题,需要自己设置相关的图片,笔者从栗次元API-举个栗子 图库API爬取部分图片作为图片。 也有别的食用方法可以参考该网站具体的教程。
搜索链接跳转错误
由于把每篇博客链接到了一个数字,从而起到了缩短博客网址长度和增加搜索引擎爬取的概率,但是可能会导致原有的搜索跳转到随机IP。
原因是:网址返回的是纯数字相对链接,比如
/7369
,完整的链接为
https://bg51717.github.io/7369/
,但是浏览器可能会把链接解析为ip地址,变成
0.0.28.201
,等同于256进制下的
7369
,从而导致跳转错误。
因此需要调整搜索代码,每次返回完整链接,具体如下:
1 | if (data_url.indexOf('http') !== 0) { |
渲染页面
渲染部分的参考主要来自:Hexo 同时使用两种主题(博客与 wiki 页面实现统一管理) | 别院牧志
渲染主页面,生成到/public/
1
hexo g
删除 db.json 及旧的 public/wiki
1
hexo --config _config_wiki.yml clean
渲染wiki页面
1
hexo --config _config_wiki.yml g
删除db.json
1
rm db.json
如果每次执行上述步骤都会稍显复杂,因此考虑整理脚本文件
run.py
,执行渲染时 python run.py
即可:
1 | import os |
参考资料
- blinkfox/hexo-theme-matery: A beautiful hexo blog theme with material design and responsive design.一个基于材料设计和响应式设计而成的全面、美观的Hexo主题。国内访问:http://blinkfox.com (github.com)
- zthxxx/hexo-theme-Wikitten: A theme of Hexo for personal wiki which seems like Wikitten style. (github.com)
- Hexo 同时使用两种主题(博客与 wiki 页面实现统一管理) | 别院牧志 (masantu.com)
Since the comment system relies on GitHub's Discussions feature, by default, commentators will receive all notifications. You can click "unsubscribe" in the email to stop receiving them, and you can also manage your notifications by clicking on the following repositories: bg51717/Hexo-Blogs-comments