docsify 可以快速帮你生成文档网站。不同于 GitBook、Hexo 的地方是它不会生成静态的 .html
文件,所有转换工作都是在运行时。如果你想要开始使用它,只需要创建一个 index.html
就可以开始编写文档并直接部署。
官网地址:https://docsify.js.org/#/zh-cn/
具体使用方法工具--docsify详解_李宥小哥的博客-CSDN博客
本来呢是用这个东西做一个使用文档, 但是在使用时遇到一个问题,单个markdown文档生成出来了三级目录,要求侧边能够折叠并且有下一级的情况下展示出折叠箭头, 有人推荐使用docsify-sidebar-collapse插件可以实现,引入之后发现侧边栏确实可以折叠了,但是折叠箭头一直显示不出来,研究半天决定自己手写箭头样式,话不多说直接上代码
首先在index.html中设置
loadSidebar: true,// 加载侧边栏
subMaxLevel: 4, //侧边栏显示层数
新建js文件
//插入箭头样式
var nod = document.createElement("style")
str = "@font-face {\
font-family: 'iconfont'; /* Project id 4084645 */\
src: url('//at.alicdn.com/t/c/font_4084645_2sy2lx021sv.woff2?t=1684978602354') format('woff2'),\
url('//at.alicdn.com/t/c/font_4084645_2sy2lx021sv.woff?t=1684978602354') format('woff'),\
url('//at.alicdn.com/t/c/font_4084645_2sy2lx021sv.ttf?t=1684978602354') format('truetype');\
}\
\
.iconfont {\
font-family: 'iconfont' !important;\
font-size: 16px;\
font-style: normal;\
-webkit-font-smoothing: antialiased;\
-moz-osx-font-smoothing: grayscale;\
}\
\
.icon-xiazhankai:before {\
content: ' \e635';\
}\
\
.icon-youzhankai:before {\
content: ' \e637';\
}\
\
.icon-sousuoxiao:before {\
content: ' \e8d6';\
}\
\
.sidebar .search .input-wrap input{\
font-family: 'iconfont'; /* Project id 4084645 */\
width: 200px;\
border: 1px solid #42b983;\
}\
\
.sidebar .sidebar-nav .file a:hover{\
text-decoration:none;\
color:#42b983\
}\
\
.app-sub-sidebar .file:before{\
font-family: 'iconfont';\
content: attr(isunfold);\
}\
/* 第一层目录箭头 收起*/\
.sidebar > .sidebar-nav > ul > .file > .app-sub-sidebar > .file:before{\
font-family: 'iconfont';\
content: ' \e637 '';\
font-size: 18px;\
}\
/* 第一层目录箭头 展开*/\
.sidebar > .sidebar-nav > ul > .file > .app-sub-sidebar > .active:before{\
font-family: 'iconfont';\
content: ' \e635 ';\
font-size: 18px;\
color: #42b983;\
}\
"
nod.type="text/css";
if(nod.styleSheet){ //ie下
nod.styleSheet.cssText = str;
} else {
nod.innerHTML = str; //或者写成 nod.appendChild(document.createTextNode(str))
}
document.getElementsByTagName("head")[0].appendChild(nod);
因为看不到侧边栏代码,所以只能通过控制台查看元素通过控制对应css实现功能
箭头是有了,接下来就剩展开与收起时箭头的切换了
//滚动监听箭头样式
window.onscroll = function () {
var files = document.getElementsByClassName("file")
var filesLength = files.length
for (var i = 0;i
因为点击侧边栏也会跳转到对应位置,所以只需要监听滚动事件就可以了,但是还有一个明显的bug,当文档从下往上滚动时,触发不到箭头切换,暂时还没有想到好的解决思路,如果大佬们有其他方法,希望能给小弟推荐一下,感激不尽
最后附上完整代码
document.write("");
//滚动监听箭头样式
window.onscroll = function () {
var files = document.getElementsByClassName("file")
var filesLength = files.length
for (var i = 0;i
参考链接:https://cpury.com/1408.html
工具--docsify详解_李宥小哥的博客-CSDN博客
利用js动态创建