博客园添加markdown文章导航栏

博客园添加Markdown文章导航栏

我正在翻译Spring Framework文档,发布到博客园之后发现文章太密集,猛一看到比较懵,由于看到博客园支持自定义页面,我觉得添加一个导航栏,结构上会更加清晰一些。
所以在网上搜了搜关于添加导航栏的文章,搜到一个试了试,有些问题,所以就自己写了一个,实现功能如下;

  • 主要搜索主页面中的h1-h6
  • 根据1-6的级别设置字体大小和缩进宽度
  • 滚动时页面最上方的标题对应导航将加粗
  • 支持展开隐藏(默认隐藏,如果默认打开,就将js代码第6行display:none改为display:block;

仅在Microsoft Chromium Edge 上测试通过,没有进行其他浏览器测试。
如发现问题,欢迎评论!

JavaScript 代码

<script type="text/javascript">
    $(document).ready(function(){
        var allTitle = $(".postBody h1,h2,h3,h4,h5,h6");
        $("body").prepend("<aside id='aside_markdown_navigator'>"
            + "<div id='aside_markdown_navigator_release_button'>文章目录导航</div>"
            + "<div id='aside_markdown_navigator_list' style='display: none;'>"
            + "<ul></ul>"
            + "</div>"
            + "</aside>");
        allTitle.each(function(i){
            this.id ="markdownH"+ i;
            var tagNum = parseInt($(this)[0].tagName.substring(1));
            $("#aside_markdown_navigator_list ul").append("<li"
                + " style='font-size: 1"+ (6 - tagNum) +"0%;"
                + " padding-left:"+ tagNum*20 +"px;'"
                + " class='aside_markdown_navigator_li'"
                + " id='scroll"+ $(this).attr("id") +"'>"
                + $(this).text()
                +"</li>")
        });
        $(".aside_markdown_navigator_li").on("click",function(){
            console.log($(this).attr("id").substring(6));
            $("html,body").animate({"scrollTop":$("#"+$(this).attr("id").substring(6)).offset().top});
        });
        $(window).scroll(function(){
            var is_choosed = false;
            $(".aside_markdown_navigator_li").each(function(){
                if(is_choosed == false && ($("#"+$(this).attr("id").substring(6)).offset().top-$(document).scrollTop() >= 0)){
                    $(this).css("fontWeight","bold");is_choosed = true;
                }else{
                    $(this).css("fontWeight","");
                }
            });
        });
        $("#aside_markdown_navigator_release_button").on("click",function(){
            $("#aside_markdown_navigator_list").toggle(200);
        });
    });
    //MADE BY FENGYUN
</script>

CSS 代码

CSS 部分是为了使用所以简单调整了下,我不会CSS的

<style>
#navigator {
    position: inherit;
}
#aside_markdown_navigator {
    font-family:Source Code Pro;
    background-color:#f1f1f1;
    position: fixed;
    right: 10px;
    border: 2px solid #ebebeb;
    color: #2c3546;
    width:18%;
    top:10px;
}
#aside_markdown_navigator_release_button {
    text-align: center;
    box-sizing: border-box;
    background-color: lightslategrey;
    font-weight: bold;
    font-size: x-large;
}
.aside_markdown_navigator_li{
    padding: 1px 10px 1px 10px;
    overflow: hidden;
}

.aside_markdown_navigator_li:hover{
    list-style: none;
    background-color: white;
    color: #175199;
}
</style>

原文地址:https://www.cnblogs.com/xiangzhahao/p/12077554.html

时间: 2024-10-15 16:47:38

博客园添加markdown文章导航栏的相关文章

怎样在博客园中添加自己的导航栏

原本想在博客园中添加自己的导航栏,摸索一番后才发现,博客园没有提供添加自己导航栏的功能.要是能自己写js来添加应该也是可以的,于是申请了js权限,申请了好多次都不通过,~~o(>_<)o ~~,今天终于审核通过了,自己尝试来添加导航. 准备导航栏js 我自己写了一个简单的jquery插件来添加或者移除导航,好,不多说了,贴出代码: (function(jQuery) { var arr = [], slice = arr.slice; var methods = { init: functio

测试博客园的MarkDown性能

目录 测试博客园的MarkDown性能 第一节.添加文章各种内容 一.文本格式 二.引用 三.特殊字符 四.跳转 五.其他 第二节.在博客园上发表文章 按右边的1跳转到文章尾部 1 测试博客园的MarkDown性能 第一节.添加文章各种内容 一.文本格式 1.无序列表 用以下三种符号+-*都可以. + 文本1 - 文本2 * 文本3 文本1 文本2 文本3 2.有序列表 1. 文本1 2. 文本2 3. 文本3 文本1 文本2 文本3 有序列表与无序列表都可以嵌套使用. 1. 第一项 + 文本1

博客园添加背景音乐,背景效果!

目录 博客园添加背景音乐,背景效果 申请博客园JS权限 添加网易云背景音乐 点击鼠标点击样式 二次元看板娘 雪花效果 原文地址:https://www.cnblogs.com/1212dsa/p/11438461.html

为博客园添加目录的方法总结

博客园添加目录的方法主要涉及2个步骤: 1.申请开通js权限 2.添加js脚本到“页脚Html代码” <script language="javascript" type="text/javascript"> // 生成目录索引列表 // ref: http://www.cnblogs.com/wangqiguo/p/4355032.html // modified by: zzq function GenerateContentList() { var

博客园添加鼠标粒子吸附特效

本文从以下三个方面, 阐述在博客园添加鼠标粒子吸附特效: 一. 效果展示 二. 权限申请 三. 设置步骤 一. 效果展示 在博客园的页面, 出现鼠标粒子吸附的特效, 如图所示: 二. 权限申请 点击博客园的[管理] → [设置]→ 一直往下拉, 找到[博客侧边栏公告(支持HTML代码)(申请JS权限)] 向[email protected] 发送邮件, 为了尽快通过权限申请, 邮件模板如下: 尊敬的博客园管理员: 请问是否可以帮我开通js权限,我需要一些简单的js来解决问题,例如鼠标点击特效.代

MarkWord - 可发布到博客园的Markdown编辑器(支持图片同步)

这一段时间一直很迷恋MarkDown,语法简单,排版整洁.对于经常要整理归档文件是绝对的好东西. 于是就去上网搜一些Markdown软件,别说还真多,各种类型,然后就挑了几个都不进人意,因为我比较喜欢把文档生成为Pdf方便查阅.但是着了好多都没这个功能,唯一找到的一个还是要收费才能使用.所以就萌生自己做(zuzhuang)一个MarkDown软件的想法,另外也是想借这个软件学习一下WPF. 在本篇我先介绍一下本软件的使用方法,看看大家的反馈,如果好的话会出一个系列,并且会考虑放出代码. Mark

【转】为博客园添加目录的方法总结

本文转自:作者:妙音天女    地址:http://www.cnblogs.com/xuehaoyue/p/6650533.html 目录 第一种:在正文上方直接添加目录 1. 申请开通js权限 2. 添加js脚本到“页脚Html代码” 3. 按格式写文章 第二种:在文章右上角添加目录导航 1. 申请开通js权限 2. 添加css代码到“页面定制CSS代码” 3. 添加js脚本到“页首Html代码” 4. 按格式写文章 参考链接:http://www.cnblogs.com/xdp-gacl/p

博客园添加网站统计访问量-操作简单很实用哦!

浏览博客园,看到这个小文章,跟着操作了一下,可以定制网站的访问人数.访问量,需要的亲果断试试看吧! 效果图: 博文: 无意中看到有这个访问量的统计,觉得挺好玩的,我们现在就来添加一个吧: 1. 先到http://www.amazingcounters.com/sign-up.php   这个地址去申请一个帐户,申请时填写好自己的资料,比如 你的统计风格样式.要统计的地址.要统计的类型,是浏览量(PV) 还是 访客数(UV),或者你也可以2个都统计:这些统计数据都是可以任意修改的哟,不过我们最好还

为你的博客园添加平滑移动到页面顶端的锚点和tag云

首先我的目录是在marvin的基础上二次开发的.然后我发现锚点图和目录都在同一个图上面,所以就一起用了. 返回顶部锚点: 我用以前旧版bilibili的那个函数.可以做到平滑滚动到页面,并且在触顶前不能向下滚屏.具体的看我参考链接.当然因为涉及到js要申请权限,简单的话a标签href用#top当然可以,体验有点差罢了. 然后因为我懒,锚点的出现条件直接和目录的出现条件弄在一起.也就是匹配元素相对滚动条顶部的偏移超过200时显示. tag云: 我用Google随便找的.用的矢量绘图. 但是这玩意有