hexo 主题制作

原文转自博客:https://mser.xyz/2019/08/05/hexo_theme/

背景介绍

hexo 是一个免费简单的博客框架,有很多好看开源主题,但是当你看到别人的博客和你自己的博客一模一样的时候,还是有点奇怪,熟悉又陌生的感觉

Hexo 内建 Swig 模板引擎,但是可以另外安装插件来获得 EJSHamlJade 支持,Hexo 根据模板文件的扩展名来决定所使用的模板引擎,例如:layout.ejs,layout.swig

我有尝试过用 Swig,毕竟不需要安装插件,但是用过之后还是果断换回了 Pug(原 jade ),如果你两种模板引擎都没接触过那推荐你用 Swig,上手简单会快些,但如果你也是 Pug 的忠实粉丝,那么还是安装插件吧

你需要安装 2 个插件,渲染 jade 页面的插件和热更新的插件,并保存在 packagejson devDependencies 是开发时需要的插件

npm install hexo-server hexo-browsersync hexo-renderer-jade --save-dev

手动构建

在...\blog\themes 新建一个文件夹,文件夹名称是你主题的名字,一个主题可能是这样的结构

├── languages       语言文件,用于国际化
├── layout          页面模板文件
├────── index       首页,url 根目录默认加载首页
├────── Archive     归档页
├────── Tag         标签页
├────── Category    分类页
├────── Post        文章页
├────── Page        页面详情,像404、友链这种自定义页面都是在 page 页面
├── scripts    脚本文件夹,在启动时,Hexo 会载入此文件夹内的 JavaScript 文件
├── source     主题资源文件,包括页面样式,脚本,字体等
├────── css
├────── js
├────── img

如果你的网站在二级目录可以在网站配置文件_config.yml 更改 url

每个主题都可以有一个 layout 的页面布局文件,因为像 footer、header 等都是可以做复用的,所以我们可以最大化的利用 pug 或者 swig 等模板引擎的局部模板功能
比如 pug,更多详细内容可以查看官方文档

extends // 被继承的模板路径
block   // 定义一个代码块,可以被子模块填充、修改、覆盖
prepend // 向块的头部添加内容
append  // 向块的尾部添加内容

Yeoman 生成基本框架

npm install yo -g // 全局安装 Yeoman
npm install generator-hexo-theme -g // 主题生成工具
yo hexo-theme // 生成主题

数据填充

hexo 提供了很多辅助函数变量
在开发过程中 hexo 是服务端渲染,所以他的所有变量是 node 的全局变量,非页面的

部署后点击分类 404

分类是使用辅助函数 list_categories() 生成, 本地一切正常部署后点击分类是 404,我原来的分类名称是小写字母,后来我自己改成全部大写,就出现了这个问题, 这是因为git 远程仓库文件名称没有改变,清空后重新上传就好

一些插件

WordCount 字数统计

// 安装
yarn add hexo-wordcount
# or
npm i --save hexo-wordcount

// 字数统计
wordcount(post.content)

// 阅读时长预计
min2read(post.content)

// 设置阅读速度
min2read(post.content, {cn: 300, en: 160})

// 总字数统计
totalcount(site)

卜蒜子 阅读量统计

<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span>

gitalk, gitment 评论模板

参考文章

*hexo 主题制作官方文档: https://hexo.io/zh-cn/docs/permalinks

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335