参考文档:Node.js 中 __dirname 和 ./ 的区别https://github.com/Darcrandex/my-blogVuePress 自动生成侧边栏和导航栏,完美替代 GitBook1.第一种方法,安装插件vuepress-plugin-autobar:?boboidream/vuepr...
参考文档:
Node.js 中 __dirname 和 ./ 的区别
https://github.com/Darcrandex/my-blog
VuePress 自动生成侧边栏和导航栏,完美替代 GitBook
1.第一种方法,安装插件
"vuepress-plugin-autobar":?"boboidream/vuepress-bar",
可以自动生成侧边栏,但侧边栏分组的展开关闭是互斥的
2.第二种方法,获取文件夹下结构自行处理
安装插件:
"directory-tree": "^2.2.7",
使用:
sidebar: autoGetSidebarOptionBySrcDir(path.resolve(__dirname, "../notes")),
我的目录结构:
获取到的数据:
数据处理:
const path = require("path");
const dirTree = require("directory-tree");
const SRC_PATH = path.resolve(__dirname, "../src");
// 按照 vuepress '分组侧边栏'的规范生成单个配置
// https://vuepress.vuejs.org/zh/theme/default-theme-config.html#%E4%BE%A7%E8%BE%B9%E6%A0%8F%E5%88%86%E7%BB%84
function toSidebarOption(tree = []) {
if (!Array.isArray(tree)) return [];
return tree.map((v) => {
if (v.type === "directory") {
return {
title: (v.name).split('-')[1],
collapsable: false, // 可选的, 默认值是 true,
sidebarDepth: 1,
children: toSidebarOption(v.children),
};
} else {
// 因为所有的md文件必须放到'docs'文件夹下
// 所以相对路径就是'docs'后面的部分
// 最后把扩展名去掉, 就是路由的路径
return v.path.split("docs")[1].replace(/\.md$/, "");
}
});
}
/**
* @desc 根据 自定义文件夹'docs/src'自动生成vuepress的sidebar选项
* @param {string} srcPath 自定义文件夹路径,必须在docs文件夹下
* @returns {object[]}
*/
function autoGetSidebarOptionBySrcDir(srcPath = SRC_PATH) {
const srcDir = dirTree(srcPath, {
extensions: /\.md$/,
normalizePath: true,
});
const ress = toSidebarOption(srcDir.children)
return toSidebarOption(srcDir.children);
// [title:'group-name', children:['/route-a','route-b']]
}
module.exports = autoGetSidebarOptionBySrcDir;
沃梦达教程
本文标题为:vuepress 侧边栏自动生成
基础教程推荐
猜你喜欢
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- HTML clearfix清除浮动讲解 2022-11-20
- Ajax+smarty技术实现无刷新分页 2022-12-15
- Ajax发送和接收请求 2022-12-15
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- JS滚动到顶部踩坑解决记录 2023-07-10