首页 > 编程语言 >一个vuepress配置问题,引发的js递归算法思考

一个vuepress配置问题,引发的js递归算法思考

时间:2023-10-15 11:12:47浏览次数:41  
标签:优先 遍历 递归 队列 children js 搜索 vuepress 节点

前言

这两天在尝试用语雀+ vuepress + github 搭建个人博客。

小破站地址 :王天的 web 进阶之路

语雀作为编辑器,发布文档推送 github,再自动打包部署,大概流程如下。

问题

我使用的elog插件批量导出语雀文档。elog采用的配置是所有文章平铺导出,没有按照语雀知识库目录生成markdown,这导致 vuepress 侧边栏无法和语雀一致,如下图。

image.png
上图,左侧是语雀知识库,右侧是导出到 vuepress 展示的效果,很明显没有目录这很影响阅读体验呀

解决

在查阅 vuepress 文档后,发现配置silderbar.ts可以自定义侧边栏目录,配置参数如下:

export default {
  theme: defaultTheme({
    // 可折叠的侧边栏
    sidebar: {
      "/web/": [
        {
          text: "王天的web进阶手册",
          collapsible: true, // 目录是否折叠
          children: ["/reference/cli.md", "/reference/config.md"], // 文档目录
        },
        {
          text: "王天的魔法工具箱",
          collapsible: true,
          children: [
            "/reference/bundler/vite.md",
            "/reference/bundler/webpack.md",
          ],
        },
      ],
    },
  }),
};

递归生成菜单

配置sidebar.ts 可以修改左侧菜单,但是一个个手动修改这忒麻烦了啊啊啊啊。那如何批量生产菜单配置项呢?

递归函数呀呀呀呀呀呀

标签:优先,遍历,递归,队列,children,js,搜索,vuepress,节点
From: https://www.cnblogs.com/wangtianzhen/p/17765402.html

相关文章

  • 2023.10.14 js事件监听
    //方式一<inputtype="button"onlick="on()"value="按钮1"><script>functionon(){alert("我被点击了~");}</script>//方式二<inputtype="button"id="btn"value="按钮......
  • 在Node.js项目中使用node-postgres连接postgres以及报错指南
    什么是node-postgres官方文档nodepostgres是node.js模块的集合,用于与PostgreSQL数据库接口。它支持回调、promise、async/await、连接池、准备好的语句、游标、流式结果、C/C++绑定、富类型解析等等!就像PostgreSQL本身一样,它有很多功能:本文档旨在让您快速、正确地运行。它还试图......
  • jsoup获取指定class名称的标签
      publicvoidloadHtmlFile(StringhtmlFilePath){try{Documentdoc=Jsoup.parse(newFile(htmlFilePath),"utf-8");Elementsdivs=doc.select("div.hop1");for(Elementdiv:divs){......
  • Servlet/JSP
    Servlet/JSPIDEA配置然后可以看到默认给你一个HelloWorld然后注意端口占用的问题HelloWorld项目源码index.jsp(src/main/webapp/WEB-INF/index.jsp)<%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html>......
  • 递归求解n皇后问题
    ​ 一、问题描述        在n×n的方格棋盘上放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。下图所示为6皇后问题的一个解。二、问题求解    采用整数q[N]来存放每一个皇后所在的列号,即第i个皇后在(i,q[i])位置上,count_1表示n皇后解的个数。在n皇后......
  • Thingjs鼠标操作
    //鼠标拾取物体设置勾边obj.on(THING.EventType.MouseEnter,function(ev){ev.object.style.outlineColor='#FF0000';});//鼠标离开物体取消勾边颜色obj.on(THING.EventType.MouseLeave,function(ev){ev.object.style.outlineC......
  • 图文并茂手把手教你在MAC配置Android,nodejs环境,配置安卓真机支持投屏以及测试
    先说nodejs和npm这个很简单,只需要点击下面链接,安装node.js环境即可https://nodejs.org/zh-cn/AndroidAndroidStudio下载地址及版本说明Android开发者官网:https://developer.android.com/index.html(全球)https://developer.android.googl......
  • js对url进行编码解码的三种方案,JS在url中如何传递参数或特殊符号
    为什么要进行url编码?当你的URL里出现%2F怎么办?JS在url中如何传递参数或者特殊符号呢?在url链接中会经常碰到一些%2F、%2B等特殊符号怎么解决呢?下面我们来了解一下:根据RFC标准,有些符号在URI中是不能直接传递的,要按照规定格式进行编码编码格式:%加字符的ASCII码,即一个百分号%,后面......
  • 10.9 ,jsp连接数据库完成课程信息导入
    跟随教学视频安装好mysql,jdbc,navicat,apacheTomocat,为tomocat配好环境变量,在idea中完成配置工件,连入数据库驱动等可以通过idea去查看数据库,也可以借助navicat,以下是代码部分,两个web下的jsp文件,一个负责HTML的页面实现,另一个负责数据库的内容添加以及判断。<%@pageimport="......
  • 用js当页面大小改变时改变字体大小
    商务合作<!DOCTYPEhtml><html><bodyonresize="s()"><divstyle="width:25%;color:red;"id='demo'><spanid="zt">商务合作</span></div></body></html><script>......