前言

有大段的东西想要放上去,但又不想占据大量的位置。折叠是最好的选择。下面在Hexo的主题上定制添加折叠功能。

本文基于Hexo Next的主题修改。其他主题应该也差不多。效果如下:https://blog.rmiao.top/hexo-fold-block/

在main.js中添加折叠js

next主题的主要js位于themes/next/source/js/src/post-details.js,
在里面找合适的位置,添加如下代码:

$(document).ready(function(){$(document).on('click', '.fold_hider', function(){$('>.fold', this.parentNode).slideToggle();$('>:first', this).toggleClass('open');});//默认情况下折叠$("div.fold").css("display","none");
});

自定义内建标签

在主题scripts下添加一个tags.js, 位于themes/next/scripts/tags.js


/*@haohuawu修复 Nunjucks 的 tag 里写 ```代码块```,最终都会渲染成 undefined 的问题https://github.com/hexojs/hexo/issues/2400
*/
const rEscapeContent = /<escape(?:[^>]*)>([\s\S]*?)<\/escape>/g;
const placeholder = '\uFFFD';
const rPlaceholder = /(?:<|&lt;)\!--\uFFFD(\d+)--(?:>|&gt;)/g;
const cache = [];
function escapeContent(str) {return '<!--' + placeholder + (cache.push(str) - 1) + '-->';
}
hexo.extend.filter.register('before_post_render', function(data) {data.content = data.content.replace(rEscapeContent, function(match, content) {return escapeContent(content);});return data;
});
hexo.extend.filter.register('after_post_render', function(data) {data.content = data.content.replace(rPlaceholder, function() {return cache[arguments[1]];});return data;
});

再继续添加一个fold.js

/* global hexo */
// Usage: {% fold ???? %} Something {% endfold %}
function fold (args, content) {var text = args[0];if(!text) text = "点击显/隐";return '<div><div class="fold_hider"><div class="close hider_title">' + text + '</div></div><div class="fold">\n' + hexo.render.renderSync({text: content, engine: 'markdown'}) + '\n</div></div>';
}
hexo.extend.tag.register('fold', fold, {ends: true});

最后,添加几个自定义样式,位置themes/next/source/css/_custom/custom.styl

.hider_title{font-family: "Microsoft Yahei";cursor: pointer;
}
.close:after{content: "▼";
}
.open:after{content: "▲";
}

最后,在我们需要折叠的地方前后添加便签,示例用法:

{% fold 点击显/隐内容 %}
something you want to fold, include code block.
{% endfold %}

参考

https://www.oyohyee.com/post/Note/fold.html

Hexo next博客添加折叠块功能添加折叠代码块相关推荐

  1. 用Github Pages+Hexo搭建博客之(八)Hexo博客Next主题添加统计文章阅读量(访问量/浏览量/阅读次数)功能

    [置顶][专栏]用Github Pages+Hexo搭建博客 文章目录 [置顶][专栏][用Github Pages+Hexo搭建博客](https://blog.csdn.net/qq_342439 ...

  2. Hexo Next 博客添加相册瀑布流

    原文:https://rebootcat.com/2020/09/19/nextphotowall/ 前言 一直没有时间来整理下博客搭建的一些事情,现在补上一篇,给 Hexo Next 博客添加一个相 ...

  3. Github+Hexo+matery博客搭建

    文章目录 前言 主题介绍 一.博客环境搭建 1. 下载Git和Node.js 1.1 Node.js的安装与配置 1.2 Git的安装与配置 二.Github注册以及Github Pages创建 三. ...

  4. Hexo+Github: 博客网站搭建完全教程(看这篇就够了)

    本篇教程首次发布在个人博客:sunhwee.com,想要获得最佳阅读体验,欢迎前往,建议用电脑查看教程文档. 文章目录 阅读须知 博客开源 前言 第一部分 搭建 Hexo搭建步骤 1. 安装Git 2 ...

  5. hexo搭建博客教程(matery主题)

    hexo搭建博客教程(matery主题) 写在前面 这篇教程是我搭建个人博客的路程经历和经验总结,matery主题挺多人用,网上也有各种详细教程,没时间我就不出详细教程了,这里给出其他大佬的教程链接, ...

  6. 将Hexo个人博客部署到个人云服务器--最详细踩坑教程

    将Hexo个人博客部署到个人云服务器–最详细踩坑教程 文章目录 将Hexo个人博客部署到个人云服务器--最详细踩坑教程 一. 背景 *二. 获取体验产品--服务器(选读节) (一)说明 (二)购买体验 ...

  7. Hexo个人博客搭建教程

    Hexo个人博客搭建教程 1 搭建前准备 1.1 环境配置 需要安装git.node,最后安装hexo 1.1.1 安装Git: 首先看电脑是否已经安装了git $ git 若提示not founde ...

  8. hexo搭建博客的几种方式(入门级)

    hexo搭建博客的几种方式(入门级) 概述 网站介绍 html css js hexo node.js git hexo安装 安装node.js 安装Git 安装hexo 初始化hexo 网站部署 免 ...

  9. 使用Hexo搭建博客并部署到Github

    一.博客环境搭建 ​ Hexo 是一个静态博客框架,基于 Node.js,将 Markdown 文章通过渲染引擎,生成一个静态网页,再结合 Git 命令(ssh),Hexo 是一个快速.简洁且高效的博 ...

  10. Hexo搭建博客教程-基于Butterfly主题

    title: Hexo搭建博客教程 tags: Hexo 博客教程 categories: Hexo keywords: 'Hexo,博客教程' description: Hexo搭建博客,以及主题b ...

最新文章

  1. 磁力链接的BASE32编码向HEX编码的转换
  2. Lintcode99 Reorder List solution 题解
  3. cache_purge php
  4. 裸奔、抽烟、凡尔赛,原来数学家玩得这么野……
  5. boost序列化(Serialization)
  6. 小白入门使用Nginx基础的常用操作
  7. 灵敏度和稳定性能兼具 新气体传感器技术适用于工业应用
  8. YUM安装部署LAMP环境
  9. 189邮箱smpt服务器,189邮箱登录(常用邮箱客户端设置指南)
  10. Axure插件axure-chrome-extension安装(非常方便)
  11. Clearcase no version selected issue
  12. 【解决Windows】修改win10默认开机启动动画
  13. 入门用Python进行Web爬取数据:为数据科学项目提取数据的有效方法
  14. 服务计算——Selpg
  15. Spring Boot - 开启 HttpBasic 认证方式
  16. 重新认识 D 编程语言 —— 基础篇
  17. 计算机绘图中级,《计算机绘图中级教程》1.doc
  18. CocosCreator H5 微信内置浏览器调起微信支付
  19. python手写汉字识别_用python实现手写数字识别
  20. 二手台式计算机,二手台式电脑价格 购买二手台式电脑时该注意的问题【图解】...

热门文章

  1. 后台传html样式展示无效_Dcat Admin v1.5.0 发布,对后端开发者高颜值后台系统构建工具...
  2. c语言程序设计数字电位器,数字电位器X9C103 100级调节电路和单片机源程序
  3. 典型的php系统由什么组成,完整的计算机系统由什么组成
  4. 腾讯云服务器连接失败,启动报错:A start job is running for /etc/rc.d/rc.local Compatibility
  5. Layui 表格table 第一次加载动态设置列
  6. html5 元宵节送祝福,元宵节送上真心祝福语
  7. c++ 将变量有序保存在txt文件中_python读写文件(四)
  8. LINUX下载编译nginx
  9. 同样一个网址,用电信网络和中国移动的手机网络,下载速度相差巨大
  10. 下载.Net Framework离线安装文件的办法