
使用框架搭建网站的一大好处就是,用户可以发挥自己的创意,利用框架修改好自己的主题,并将其开源发布。这里选取基于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,剩下的交给浏览器,效果就很不错