使用框架搭建网站的一大好处就是,用户可以发挥自己的创意,利用框架修改好自己的主题,并将其开源发布。这里选取基于hexo
框架的博客主题Claudia
作为案例,分析主题切换的流程,以及切换后各种组件的配置,从而让网站具备更多更强的功能。里面还有一个debug
的小故事~
标题:基于Hexo的博客的主题切换与功能扩展
主题切换
基本流程
在hexo
框架下有很多用户开发的主题,可以从主题网站找到自己喜欢的主题并配置
- 找到对应主题的
repo
,下载主题的源码,解压后放在hexo
项目的themes
目录下,源码之上仅保留一层目录,不要套娃 - 打开
hexo
项目的_config.yml
配置文件,修改其中的themes
字段,和主题的文件夹同名 - 按照主题的
README.md
里面的说明安装依赖,并配置主题的_config.yml
配置文件来自定义网站
一个debug的故事
在安装美观又功能强大的Claudia
主题的时候,遇到了不小的问题:
该主题需要一个名为hexo-renderer-sass
的依赖,这个依赖的安装遇到了不知名的错误
需要安装过程的具体日志内容,来让报错具体化,对
npm
的安装加上--verbose
的选项来显示细节看到细节后,发现停在一处安装,怀疑是网络问题,将
npm
的默认镜像源如同cnpm
一样改成淘宝:npm config set registry http://registry.npm.taobao.org/
然后可以查看确认:
npm get registry
这期间也可以考虑直接从
github
下载:npm install git+https://github.com/[username]/[repo].git
修改源后发现仍不行,说明下载依赖的源码没有问题,后面的安装出现了问题,因此先恢复默认的源:
npm config set registry https://registry.npmjs.org
分析之前停顿的安装,发现这里通过
npm
的构建工具gyp
对hexo-renderer-sass
的一个依赖调用各种build
工具进行了构建。本身构建需要时间,而构建最后还遭遇了失败,因此分析失败的原因,warning
不要紧,关注出现error
的地方:在失败后构建的细节才得以输出,发现一处
STL
标准库兼容的问题:error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
观察出现
error
的地方,是设备中之前安装的gyp
的一个头文件,备份后直接修改这个头文件,按照上面error
的提示改成兼容的样式,再次构建取得成功!
这个故事告诉我们,配环境的debug
需要输出日志具体信息,还要敢于修改
博客其他功能
评论区
-
- 已经被
github
广泛支持的github
应用,可以在Marketplace
里面找到。使用github
帐号授权就可以在当前repo
部署的页面上使用。作为后端管理,将这个应用安装到自己的repo
即可。以后可以在repo
的Settings->Integrations
里面进行管理 - 亮点在于,用户进行评论的同时,可以将评论转换成
issue
,并发布到托管网页对应的仓库,对应文章的评论区会和issue
同步 - 默认实现是先扫描是否有同名的
issue
,以追加的方式进行评论,不论是否closed
。因此建议将不用的issue
直接右下角delete
- 如果要进行配置,可以通过官方教程,直接在该页面的选择框内点选,然后将下方的
scripts
放到网站的模板里,比如修改hexo
主题下的layout/
目录中的post.pug
,就可以在框架生成的每一个博文的页面下面都启动配置好的评论区
- 已经被
-
一款没有后端的评论软件,支持
hexo
等多种框架,也可以匿名评论,但是管理有一点麻烦
这个网站介绍了更多的在静态页面上添加评论系统的方法
搜索
hexo-generator-search
一个
nodejs
模块,可以支持博客的全文搜索,在hexo
下一个小小的缺点是无法搜索写在title
的标题
代码高亮
将项目目录下的_config.yml
中highlight
和prismjs
的enable
都调为false
,剩下的交给浏览器,效果就很不错