hexo嵌入html传消息的,Hexo添加Toc支持,生成文章目录
Hexo提供了诸多插件来增强博客体验,地址http://hexo.io/plugins/。
在博客搬迁的时发现一个生成文章目录的插件,hexo-toc。
hexo-toc为防插件误认标记,文章以下出现的 ttoc 实际为 toc。
使用方法跟显示文章摘要类似,在Markdown中需要显示文章目录的地方添加 。
安装npm install hexo-toc --save
配置
在博客根目录下的 _config.yml 中如下配置:toc:
maxDepth: 3maxDepth 表示目录深度为3,即最多生成三级目录。
好了,现在重启Hexo预览下效果吧。
Toc文章目录
然后你会发现点击目录链接,没反应!
F12查看生成的HTML代码:
Toc生成代码
标题id生成没问题,锚链接中的中文都被转义为 - 了。
看了该插件的issues中已经提到了这个问题,不过好像是没解决。
也没用搜索到其他人有关该插件的使用经验。
没办法,自己动手丰衣足食!
解决锚链接中文被转义
也没什么好的办法,只凭着入门级的Node水平,顺藤摸瓜!
从插件下的index.js开始,一路跟踪代码调试,在感觉可能出现问题的地方console输出内容,最终让我给找到了。
文件位置:Hexo根目录\node_modules\hexo-toc\node_modules\markdown-toc\index.js。
找到如下方法,把原来返回值注释掉,直接 return str; 。function slugify(str, opts){
if (opts && opts.slugify === false) return str;
if (opts && typeof opts.slugify === 'function') {
return opts.slugify(str, opts);
}
str = str.split('.').join('');
//return str.toLowerCase().replace(/[^a-z0-9]/g, '-');
return str;
}
现在重启Hexo后链接都正常可用了。
更好的方法是不改变插件源代码的情况下进行配置。
在以上方法中可以发现,插件有个slugify的配置项,当此项配置为false时即直接return str;。
所以,我们可以到_config.yml添加toc配置:toc:
maxDepth: 3
slugify: false
给Toc添加样式
如本文中文章目录样式,置于文章右侧,又加了个背景等。hexo-toc插件是生成的文章目录最终还是Markdown格式的,最后被Hexo的marked模块解析为HTML。
要添加样式先加选择器。
想通过修改插件代码增加选择器是行不通的,也不能直接在 标记外包裹
因为添加了HTML标签的地方就不会在被marked模块解析。
那就只能在HTML生成之后增加,用js。hexo-toc插件生成文章目录时还在其前后增加了 和 注释。
解决办法就是把这两个注释替换为可控的
找到主题下的文章模版,我的是themes\yilia\layout\_partial\article.ejs。
在其末尾增加代码:
var tocEx = function(el){
var toc = document.querySelector(el), content = toc.innerHTML;
content = content.replace('', '
');
toc.innerHTML = content;
}('.article-entry');
这样我们就为文章目录外包裹了一对
再写这个类的样式,放到主题下的相关css文件中。.toc {
float: right;
margin-left: 40px;
padding: 10px 20px;
background: #f1f1f1;
border-radius: 10px;
box-shadow: 0 0 3px #bbb;
}
这些都做完再次重启Hexo,成功!
2016年更新
Hexo 已经有生成文章目录的辅助函数了,使用更方便。我现在博客中的文章目录就是使用辅助函数生成的。
不需要安装额外插件!
不需要在文章中插入标记!
不需要在配置文件添加配置!
仅仅是在你的文章页模版中,插入调用辅助函数的代码即可。
class: 'post-toc',
list_number: true
}) %>
hexo嵌入html传消息的,Hexo添加Toc支持,生成文章目录相关推荐
- 利用Cloudflare为基于GitHub Pages的Hexo博客添加HTTPS支持
文章目录 ● 前言 ● 注册 Cloudflare ● 添加站点 ● 修改DNS ● 开启 HTTPS ● 重定向强制 HTTPS HTTP(超文本传输协议),是一个基于请求与响应,无状态的,应用层的 ...
- hexo简单部署(一次解决hexo测试+上传github问题)
文章目录 Windows hexo本地部署+测试(上传前准备) git安装 Node.js安装 安装hexo以及本地测试 创建hexo所需文件 SSL证书报错 主题调试 上传GitHub git添加远 ...
- hexo博客的yilia主题之添加分类
文章目录 添加 categories 页面 生成index.md文件 修改index.md文件 添加 categories 到menu菜单 yilia 主题的配置文件 main.826e88.css ...
- 用Github Pages+Hexo搭建博客之(八)Hexo博客Next主题添加统计文章阅读量(访问量/浏览量/阅读次数)功能
[置顶][专栏]用Github Pages+Hexo搭建博客 文章目录 [置顶][专栏][用Github Pages+Hexo搭建博客](https://blog.csdn.net/qq_342439 ...
- Hexo+yilia主题实现文章目录和添加视频
一.说明 也可以点击这里查看此文章 文章目录功能效果可以点击这里查看 视频页面效果可以点击这里查看 粗略实现,有问题可以在下方评论区留言,或者留言板留言 二.文章目录功能 1.添加CSS样式 打开th ...
- Hexo建站进阶篇(让hexo进入后台运行)
Hexo建站进阶篇 此篇着重讲述如何使用hexo进行个人博客编写上传- 没有搭建好环境的童鞋请移动至此 -– Hexo建站总结-个人博客建站基础篇 继上篇开始~: 基础篇搭建完成后的小伙伴肯定有在为如 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- php个推透传消息,GitHub - Lysice/laravel-getui: Laravel个推的集成包,支持单推/多推/全量推送/透传消息等功能。...
欢迎使用 Laravel扩展包 laravel-getui 网上有一款shaozeming/laravel-getui,自己在lumen下用,无奈报错依赖出问题,于是自己写了一款. 主要功能 单人推送 ...
- CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除
CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...
最新文章
- ACMNO.42 C语言-第几天 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。利用结构体的在最下面
- select每门可说大于90分_小女子风雨黑暗无惧 90分全自动反向折叠照明伞
- 到底什么是生成式对抗网络GAN?
- input 不显示边框_不需要使用JavaScript
- .mvn 需要放git上吗_下巴反复长痘,饮食上需要忌口吗?
- HDU Problem - 5971 Wrestling Match(染色)
- Asp.Net MVC项目通过Git同步到新开发设备上后无法作为网站启动
- 计算机应用基础文章 茶的功效,茶文化下的计算机应用基础课程改革-计算机应用论文-计算机论文.docx...
- 《像计算机科学家一样思考Python》pdf
- 中下游大学毕业如何在大城市和各种985大学生厮杀?
- “这辈子不可能打工男子”出狱了,司法所将重点关注,网友:《今瓶没》今日上映!...
- 安装-apache skywalking (java 应用性能监控)
- sourceinsight4.0安装破解( 内含sublime text配色方案)
- .net core快速开发平台,learun自主工作流引擎设计规范
- c语言mod是什么意思,mod什么意思中文意思,Mod是什么意思
- 如何更改Windows桌面文件夹路径
- 关于 IE 浏览器打开时速度过慢的问题
- PHP-FPM的PM配置参数说明
- HbuilderX 配置eslint规范 问题
- codeforces:E. Add Modulo 10【状态压缩 + 找规律】
热门文章
- Java的三种代理模式【附源码分析】
- 联想拯救者刃7000K 2022 评测
- 【看表情包学Linux】man 手册 | 复制文件或目录 | 移动文件和重命名操作 | 查看目标文件内容
- 带登录页面的猜数字小游戏
- 还在找面试题?不要盲目找了,这份 Java 面试通关手
- 打印机管理系统解决方案
- 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...
- PIL库 : 居中对齐写入文本(英文 / 中文)
- Kindle资源-史上最全60GB的Kindle技术电子书资源网盘打包下载
- 虚幻4皮肤材质_UE4实时虚拟角色材质篇之Skin Material(一)