vitepress-generate-sidebar
Version:
Vitepress generator sidebar based on file and directory structure.
2 lines (1 loc) • 1.51 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSideBar=void 0;var e=require("tslib"),t=e.__importDefault(require("lodash/startCase")),i=e.__importDefault(require("lodash/sortBy")),n=e.__importDefault(require("lodash/remove")),r=require("path"),o=e.__importDefault(require("glob")),u=function(e){var i=e.split(r.sep).shift()||e;return i=i.replace(/^\d+[.\-_ ]?/,""),(0,t.default)(i)};function l(e,l){var d=function(e,t){void 0===t&&(t=[]);var r=o.default.sync(e+"/**/*.md").map((function(i){var n=i.slice(e.length+1,-3);if(!(null==t?void 0:t.length)||-1===t.findIndex((function(e){return e===n})))return{path:n}}));return(0,n.default)(r,(function(e){return void 0===e})),(0,i.default)(r,["path"]).map((function(e){return(null==e?void 0:e.path)||""}))}(e,null==l?void 0:l.ignoreMDFiles),f=[];return d.forEach((function(e){var i,n=u(e);if(!(null===(i=null==l?void 0:l.ignoreDirectory)||void 0===i?void 0:i.length)||-1===(null==l?void 0:l.ignoreDirectory.findIndex((function(e){return u(e)===n})))){var o,d,a,s=(d=(o=e).split(r.sep).pop()||o,(a=d.lastIndexOf("--"))>-1&&(d=d.substring(0,a)),d=d.replace(/^\d+[.\-_ ]?/,""),(0,t.default)(d)),c=f.findIndex((function(e){return e.text===n}));-1!==c?f[c].items.push({text:s,link:e}):f.push({text:n,items:[{text:s,link:e}]})}})),console.info("sidebar is create:",JSON.stringify(f)),f}exports.getSideBar=function(e,t){return void 0===e&&(e="./"),l(e,t)}}));