// ==UserScript== // @name markdown自动生成简书目录 // @namespace create-jianshuList // @version 2.2 // @author YIN // @description 给简书增加目录功能(注:通过h1-h6标题来识别,所以文章中必须有相应的标题才行) // @match http://www.jianshu.com/p/* // @match https://www.jianshu.com/p/* // @grant none // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.js // @require https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js // @downloadURL https://update.greasyfork.icu/scripts/388708/markdown%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E7%AE%80%E4%B9%A6%E7%9B%AE%E5%BD%95.user.js // @updateURL https://update.greasyfork.icu/scripts/388708/markdown%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E7%AE%80%E4%B9%A6%E7%9B%AE%E5%BD%95.meta.js // ==/UserScript== var version=Number($.cookie('if_shakespeare')) // 1为新版本 0为旧版本 //去除字符串所有空格 function trim (str, is_global) { var result; result = str.replace(/(^\s+)|(\s+$)/g, ""); if (is_global&&is_global.toLowerCase() == "g") { result = result.replace(/\s/g, ""); } return result; } //转义尖括号 function toTxt(str) { var RexStr = /\<|\>/g str = str.replace(RexStr, function(MatchStr) { switch (MatchStr) { case "<": return "<"; break; case ">": return ">"; break; default: break; } }) return str; } var menuIndex = 0; //初始化标题索引 // 在侧边栏中添加目录项 function appendMenuItem(tagName,id,content) { let paddingLeft = tagName.substring(1) * 20; //添加标题缩进 $('#menu_nav_ol').append('
'); } (function() { // 获取标题元素 let titles; if(version){ titles=$('body article').find('h1,h2,h3,h4,h5,h6'); }else{ titles=$('.show-content').find('h1,h2,h3,h4,h5,h6'); } if(titles.length === 0) { return; } // 将文章内容右移 $('.post').css({padding:'0 150px 0 400px',width:'100%'}); // 在 body 标签内部添加 aside 侧边栏,用于显示文档目录 let asideContent; if(version){ asideContent = ''; }else{ asideContent = ''; } $('body').prepend(asideContent); $('#sideMenu').append(' '); if(!$('#menu_nav_ol li').length){ $('#sideMenu').remove() } // 绑定目录li点击事件,点击时跳转到对应的位置 $('#menu_nav_ol li').on('click',function() { let targetId = $(this).attr('class'); var _top=$("#"+targetId).offset().top-55 $('html,body').animate({ scrollTop:_top }, 300); }); //滚动页面增加左侧菜单高亮 var active=function(){ var scrollTop=$(window).scrollTop(); $('.main-title').each(function(i){ if(i<$('.main-title').length-1){ if(scrollTop+56>=$(this).offset().top&&scrollTop+56<$('.main-title').eq(i+1).offset().top){ $('#sideMenu li a').css({color:'#e1e3e4'}) $('#sideMenu li').eq(i).find('a').css({color:'#61aeee'}) } }else{ if(scrollTop+56>=$(this).offset().top){ $('#sideMenu li a').css({color:'#e1e3e4'}) $('#sideMenu li').eq(i).find('a').css({color:'#61aeee'}) } } }) } active() var timer=null; $(window).scroll(function(){ clearTimeout(timer) timer=setTimeout(function(){ active() },10) }) })();