UNPKG

vitepress-plugin-sidebar-permalink

Version:
2 lines (1 loc) 2.47 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const h=require("fs"),g=require("path"),k=require("gray-matter"),sidebar=require("./shared/vitepress-plugin-sidebar-permalink.CQvOUAWL.cjs");require("vite"),require("picocolors");function _interopDefaultCompat(t){return t&&typeof t=="object"&&"default"in t?t.default:t}const h__default=_interopDefaultCompat(h),g__default=_interopDefaultCompat(g),k__default=_interopDefaultCompat(k);function generateRewrites({docsRoot:t,output:n,ignoreDirs:l=[]}){const p=sidebar.getAllMdFiles(t,t,l),c={};for(const r of p){const s=g__default.join(t,r),o=h__default.readFileSync(s,"utf-8"),u=k__default(o).data;let e="";typeof u.permalink=="string"&&u.permalink.trim()?(e=u.permalink.trim(),e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&(e=e.slice(0,-1)),e=e+".md"):(e=r.replace(/\\/g,"/").replace(/\.md$/,""),e=e.replace(/^\/+/g,"").replace(/\/+$/g,""),e=e+".md"),c[r]=e}const i={};for(const r of Object.keys(c))l.some(s=>r.split("/").includes(s))||(i[r]=c[r]);const a=g__default.dirname(n);h__default.existsSync(a)||h__default.mkdirSync(a,{recursive:!0});let f=!0;if(h__default.existsSync(n))try{const r=h__default.readFileSync(n,"utf-8"),s=JSON.parse(r),o=s.rewrites||{},u=Object.keys(o),e=Object.keys(i);JSON.stringify(u)===JSON.stringify(e)&&JSON.stringify(o)===JSON.stringify(i)&&JSON.stringify(s._meta||{docsRoot:"",ignoreDirs:[]})===JSON.stringify({docsRoot:t,ignoreDirs:l})&&(f=!1)}catch{}return f&&(h__default.writeFileSync(n,JSON.stringify({rewrites:i,_meta:{docsRoot:t,ignoreDirs:l}},null,4),"utf-8"),sidebar.j.info(`Rewrites generated at ${n}`)),i}const genRewrites=generateRewrites;function d(t={}){const n=t.root??"docs",l=t.dir??g__default.join("docs","articles"),p=t.rewritesPath??g__default.join("docs","rewrites.json"),c=[".vitepress","node_modules","public","dist"],i=Array.from(new Set([...t.ignoreDirs??[],...c]));let a=!1,f=!1;return{name:"vitepress-plugin-sidebar-permalink",config(r){if(a)return;a=!0;const s=sidebar.collectPrivatePermalinks(l,i),o=r.vitepress?.site?.themeConfig??{};o.loginInfo??={},o.loginInfo.List=s,r.vitepress.site.themeConfig=o},configureServer(){f||(f=!0,genRewrites({docsRoot:n,output:p,ignoreDirs:i}))}}}exports.getAllMdFiles=sidebar.getAllMdFiles,exports.getTitleFromMd=sidebar.getTitleFromMd,exports.isExternalLink=sidebar.isExternalLink,exports.isIllegalIndex=sidebar.isIllegalIndex,exports.isSome=sidebar.isSome,exports.logger=sidebar.logger,exports.default=d;