给Jekyll静态博客添加ScrollSpy博文大纲目录
最近又双叒把博客模板换成了Jekyll,Jekyll无论上手难度和修改难度都是目前所见流行模板中最低的(以无基础小白的角度来讲),主题也相当丰富。这几年从Django折腾到纯手工自制,再到Hugo和Jekyll,不打算再折腾了,除非再出现更简单更酷炫的新模板吧。
内置TOC
jekyll的默认markdown语法是Kramdown。本身支持博文TOC,使用方法和原装Markdown差不多。
在文章头部输入以下文本,会根据header生成目录树。
* awsl //星号后可能需要空一格,后面需要加上一段文本(用途不明,但是非加不可)
{:toc}
效果如下

你也看到了,只能放在文章头部,而且太丑了,不能忍。
添加ScrollSpy博文menu
jekyll官网上列举了一些插件,其中包括一个TOC生成插件jekyll-toc-generator。但是这个插件要求预先安装一个文本解析器(nokogiri),该工具不支持ruby2.7以上的ruby版本,因此作罢开始另寻他法。
Scrollnav.js
本篇使用的插件是Scrollnav.js。是一个超轻量的浮动菜单脚本,使用便捷是第一要义。
使用方法❤
官网(Link)提供教程和演示demo。当然实际使用起来比官网教程更简单点。
step 1: 添加scrollnav脚本
在博文(post)的layout文件中添加scollnav相关html、js代码。可以下载scrollnav.js然后包含本地js文件,也可以直接用在线脚本:
<script src="https://unpkg.com/scrollnav@3.0.1/dist/scrollnav.min.umd.js"></script>
<script>
const ct = document.querySelector('.post-content'); //".post-content"指向文章内容所在的div,需根据实际情况修改
scrollnav.init(ct, {
debug: false,
easingStyle: 'linear',
//section为一级目录,subsection为二级目录
//以下两行意为h3为一级目录,h4为二级目录(个人只需要一级目录,所以注释了二级目录)
sections: ($('.post-content > h1').length>0) ? 'h3' : 'h4',
//subSections: ($('.post-content > h1').length>0) ? 'h4' : 'h5',
});
</script>
step 2:添加样式
修改sass文件夹中post相关样式文件(_post.scss)。
.scroll-nav__list, .scroll-nav__sub-list {
margin: 0;
padding-left: 1.4em;
list-style-type: none;
line-height: 20px;
}
.scroll-nav__item {
margin-bottom: 5px;
list-style-type: none;
}
.scroll-nav__item--active > a {
//padding: 5px;
font-weight: bold;
position: relative;
color: #000000;
//background: $red;
text-decoration: none;
//transition: 0.5s;
&:hover{
color:$black
}
}
.scroll-nav__link {
color: $black;
text-decoration: none;
//display: block;
//margin: 0 auto;
//padding-left: 42px;
}
最终menu效果如下:

给Jekyll静态博客添加ScrollSpy博文大纲目录的更多相关文章
- 如何利用腾讯云COS为静态博客添加动态相册
前言 本文首发于个人网站Jianger's Blog,欢迎访问订阅.个人博客小站刚建站不久,想着除了主题里的功能外再添加上相册模块,于是半搜索半摸索把相册模块搞出来了,最后采用了利用腾讯云对象存储作图 ...
- jekyll 在博客添加流程图
本文告诉大家如何在博客使用流程图. 如果你使用的是我博客的模板,那么就可以直接使用我说的文件,如果是自己的主题,就需要在自己文件对应的地方加上代码. 在我的博客里,需要添加下面的js到博客,可以打开 ...
- Hexo 博客快速整合gitalk组件,给静态博客添加动态评论功能!
什么是 hexo-plugin-gitalk
- 2019-8-31-jekyll-在博客添加流程图
title author date CreateTime categories jekyll 在博客添加流程图 lindexi 2019-08-31 16:55:59 +0800 2018-2-13 ...
- Github、Jekyll 搭建及优化静态博客方法指南
尝试自己写 Blog 的人,一般会经历三个阶段. 第一阶段,刚接触 Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客. 第三阶段,觉 ...
- 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览
之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...
- Jekyll博客添加Valine评论
Jekyll博客添加Valine评论 关于github搭建jekyl博客,在这里不做过多描述,详情参考: 百度搜索关键字:github搭建jekyll博客 官网:https://www.jekyll. ...
- Disqus评论框改造工程-Jekyll等静态博客实现Disqus代理访问
文章最初发表于szhshp的第三边境研究所转载请注明 关于博客评论 六月多说挂了,地球人都知道. 倡言.云跟帖.来必力都很烂,地球人都知道. 转Disqus的都是人才. Disqus使用中遇到的问题 ...
随机推荐
- redis的批量操作命令pipeline(PHP实现)
redis执行一条命令有四个过程:发送命令.命令排队.命令执行.返回结果:整个过程是一个往返时间(RTT).如果有n条命令,就会消耗n次RTT.Redis的客户端和服务端可能部署在不同的机器上.在两地 ...
- 【猫狗数据集】使用预训练的resnet18模型
数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...
- 升级cocoapods到指定版本
把cocoapods升级到1.7.4 sudo gem install -n /usr/local/bin cocoapods -v 1.7.4
- ASP.NET WebApi实现Token验证
记录笔记,在博客园中有很多实现Token的方法,这是我看过他们学到的,然后找到适合自己的解决方案,自己无聊总结一下学习经验写下的 WebApi后端接口实现Token验证 Token是在客户端频繁向服务 ...
- WebRTC的RTCPeerConnection()原理探析
从getUserMedia()到RTCPeerConnection(),自认为难度陡增.我想一方面是之前在Linux平台上学习ROS调用摄像头时,对底层的外设接口调用.摄像头参数都有学习理解:另一方面 ...
- 项目总结&读书笔记
Python项目 01-函数版ATM 读书笔记 01-Effective Python
- MySQL笔记(3)-- SQL分析
Linux服务器安装MySQL后,直接命令mysql进入服务,需进行修改: /usr/bin/mysqladmin -u root password 123456 设置开机自启动: chkconfig ...
- 【攻防世界】open-source
难度系数: 3.0 题目来源: Pediy CTF 2018 题目描述:菜鸡发现Flag似乎并不一定是明文比较的 先用:PE查壳,发现没有
- LoadRunner录制HTTPS协议脚本
学习LoadRunner录制HTTPS协议脚本,其实是一个意外的收获.当我拿到要测试的URL时,我像以前的步骤一样录制脚本,但是录制结束后,发现并没有生成脚本,开始以为是LoadRunner的原因,我 ...
- go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁
内置函数 1.close: 主要是用来关闭channel 2.len:用来求长度,比如string.array.slice.map.channel 3.new与make都是用来分配内存 new用来分配 ...