@huyikai/vitepress-helper
Advanced tools
Comparing version 0.0.24 to 0.0.25
#!/usr/bin/env node | ||
import{Command as e}from"commander";import o from"chalk";import{execSync as n}from"child_process";import i from"fs-extra";import t from"ora";import r from"path";import s from"figlet";import{fileURLToPath as a}from"url";import m from"inquirer";const l=e=>o.blue.bold(e),p="0.0.23",c=process.cwd(),u=t();const d=new e,h=r.dirname(a(import.meta.url)),y=r.join(h,"./../../package.json"),f=JSON.parse(i.readFileSync(y,"utf8"));d.name("VitePress-Helper").description("A Tool for Enhance VitePress Experience\r\n一个增强VitePress体验的工具").helpOption("-h, --help","Display help for command\r\n显示命令的帮助").version(f.version,"-v,-V, --version","Output current version information\r\n输出当前版本信息"),d.command("init").description("Guide to complete the initialization operation\r\n完成初始化操作的指南").summary("initialization\r\n初始化").action((async()=>{(async e=>{const{name:o,author:t,version:s,cms:a}=e;u.start("Installing..."),n("npm init -y"),n(`npm install @huyikai/vitepress-helper@${p}`,{stdio:"inherit"});const m=r.join(c,"node_modules/@huyikai/vitepress-helper/template"),d=r.join(c,"");i.copySync(m,d),(()=>{const e=r.join(c,"package.json");let n=JSON.parse(i.readFileSync(e).toString());n.name=o,n.author=t,n.version=s,n.scripts.cms=a?"node node_modules/@huyikai/local-cms/cms.js docs":void 0,n.devDependencies["@huyikai/vitepress-helper"]=`^${p}`,n.devDependencies["@huyikai/local-cms"]=a?"latest":void 0,i.writeFileSync(e,JSON.stringify(n,null,2))})(),n("npm i",{stdio:"inherit"}),u.succeed("Install Complete!!!"),console.log(`\r\nNow you can:\r\nrun ${l("npm run dev")} to preview`+(a?`\r\nrun ${l("npm run cms")} to manage content`:""))})(await m.prompt([{name:"name",message:"Project Name",type:"input",default:"my-docs"},{name:"author",description:"Input Author Name",message:"Author",default:"huyikai"},{name:"version",description:"Version",message:"Version",default:"1.0.0"},{name:"cms",message:"Do you need local CMS?",default:!0,type:"list",choices:[{name:"yes",value:!0},{name:"no",value:!1}]}]))})),d.usage("<command> [option]"),d.on("--help",(()=>{console.log(`\r\nRun ${l("vitepress-helper <command> --help")} for detailed usage of given command`),console.log(`\r\nGitHub: ${l("https://github.com/huyikai/vitepress-helper")}`),console.log(`\r\nHomePage: ${l("https://huyikai.github.io/vitepress-helper")}`),console.log("\r\n"+o.hex("#41B883").bgHex("#35495E").bold(s.textSync("VitePress-Helper",{font:"Standard",horizontalLayout:"default",verticalLayout:"default",width:80,whitespaceBreak:!1})))})),d.parse(process.argv); | ||
import{Command as e}from"commander";import o from"chalk";import{execSync as n}from"child_process";import i from"fs-extra";import t from"ora";import r from"path";import s from"figlet";import{fileURLToPath as a}from"url";import m from"inquirer";const l=e=>o.blue.bold(e),p="0.0.24",c=process.cwd(),u=t();const d=new e,h=r.dirname(a(import.meta.url)),y=r.join(h,"./../../package.json"),f=JSON.parse(i.readFileSync(y,"utf8"));d.name("VitePress-Helper").description("A Tool for Enhance VitePress Experience\r\n一个增强VitePress体验的工具").helpOption("-h, --help","Display help for command\r\n显示命令的帮助").version(f.version,"-v,-V, --version","Output current version information\r\n输出当前版本信息"),d.command("init").description("Guide to complete the initialization operation\r\n完成初始化操作的指南").summary("initialization\r\n初始化").action((async()=>{(async e=>{const{name:o,author:t,version:s,cms:a}=e;u.start("Installing..."),n("npm init -y"),n(`npm install @huyikai/vitepress-helper@${p}`,{stdio:"inherit"});const m=r.join(c,"node_modules/@huyikai/vitepress-helper/template"),d=r.join(c,"");i.copySync(m,d),(()=>{const e=r.join(c,"package.json");let n=JSON.parse(i.readFileSync(e).toString());n.name=o,n.author=t,n.version=s,n.scripts.cms=a?"node node_modules/@huyikai/local-cms/cms.js docs":void 0,n.devDependencies["@huyikai/vitepress-helper"]=`^${p}`,n.devDependencies["@huyikai/local-cms"]=a?"latest":void 0,i.writeFileSync(e,JSON.stringify(n,null,2))})(),n("npm i",{stdio:"inherit"}),u.succeed("Install Complete!!!"),console.log(`\r\nNow you can:\r\nrun ${l("npm run dev")} to preview`+(a?`\r\nrun ${l("npm run cms")} to manage content`:""))})(await m.prompt([{name:"name",message:"Project Name",type:"input",default:"my-docs"},{name:"author",description:"Input Author Name",message:"Author",default:"huyikai"},{name:"version",description:"Version",message:"Version",default:"1.0.0"},{name:"cms",message:"Do you need local CMS?",default:!0,type:"list",choices:[{name:"yes",value:!0},{name:"no",value:!1}]}]))})),d.usage("<command> [option]"),d.on("--help",(()=>{console.log(`\r\nRun ${l("vitepress-helper <command> --help")} for detailed usage of given command`),console.log(`\r\nGitHub: ${l("https://github.com/huyikai/vitepress-helper")}`),console.log(`\r\nHomePage: ${l("https://huyikai.github.io/vitepress-helper")}`),console.log("\r\n"+o.hex("#41B883").bgHex("#35495E").bold(s.textSync("VitePress-Helper",{font:"Standard",horizontalLayout:"default",verticalLayout:"default",width:80,whitespaceBreak:!1})))})),d.parse(process.argv); | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
import e from"fs-extra";import t from"globby";import r from"gray-matter";import{v4 as i}from"uuid";import{treeToArray as n,arrayToTree as a}from"tree-conver";const l=(e,t)=>e.frontMatter.date<t.frontMatter.date?1:-1;var o=async n=>{const{directory:a}=n;let o=[];var s;n?.locales&&(o=(s=n.locales,Object.keys(s).filter((e=>"root"!==e))).map((e=>`${a}/${e}`)));const c=await t([`${a}/**/**.md`],{ignore:["node_modules","README.md","packages"]});let d=await Promise.all(c.map((async t=>{const n=await e.readFile(t,"utf-8"),a=r(n);return{frontMatter:a.data,link:t,content:a.content.replace(/[^a-zA-Z0-9._ ]+/g,"").toLowerCase(),uuid:i()}})));d=d.filter((e=>!e.frontMatter.page||e.link.includes(`${a}/`)));const p=d.filter((e=>!o.includes(e.link.split("/").slice(0,2).join("/")))),m=d.filter((e=>o.includes(e.link.split("/").slice(0,2).join("/"))));return d.sort(l),{basePages:p,localesPages:m}};const s=(e,t)=>e.map((e=>{const{link:r,frontMatter:n}=e,a=r.split(`${t}/`)[1].split("/"),l=a.slice(0,-1).join("/"),o=n?.title||a.slice(-1).join("").replace(".md",""),s=a.length-1;return{...e,id:i(),text:o,link:a.join("/"),level:s,dir:l}})),c=(e,t)=>{const{pages:r,directory:l,transformItem:o}=e,c=s(r,l).filter((e=>e.level>0)),p=(e=>{const t={children:[]};return e.forEach((e=>{let r=t;e.forEach(((t,n)=>{let a=r.children.find((e=>e.text===t));a||(a={text:t,id:i(),dir:e.slice(0,n+1).join("/"),children:[]},r.children.push(a)),r=a}))})),t.children})(c.map((e=>e.link.split("/").slice(0,-1)))),m=n(p);c.forEach((e=>{m.forEach((t=>{t.dir===e.dir&&(e.parentId=t.id)}))}));const f=[...d(c,"link"),...d(m,"dir")].map((e=>o(e)));return a(f,{idKey:"id",pidKey:"parentId",childrenKey:"items"})},d=(e,t)=>{if(t){const r=(e,r)=>e[t].localeCompare(r[t]);return e.sort(r)}return e.sort()};var p=e=>{const{pages:t,directory:r}=e,i=s(t,r).filter((e=>0===e.level));return[...d(i.filter((e=>!e.link.includes("index.md"))),"text"),...c({pages:t,directory:r,transformItem:e=>({text:e.text,link:e.link?`/${e.link}`:void 0,id:e.id,parentId:e.parentId})})]},m=e=>{const{pages:t,directory:r,collapsible:i}=e;return c({pages:t,directory:r,transformItem:e=>{const{id:t,text:r,link:n,dir:a,parentId:l}=e;return{text:r,id:t,dir:a,parentId:l,collapsed:!(!n&&!0===i)&&void 0,link:n?`/${n}`:void 0}}}).reduce(((e,t)=>{const r=`/${t.text}/`;return e[r]||(e[r]=[]),e[r].push({text:t.text,collapsed:!0!==i&&void 0,items:[...t.items]}),e}),{})},f=e=>{const{locales:t,directory:r,pages:i}=e;let n=[];var a;return e?.locales&&(n=(a=e.locales,Object.keys(a).filter((e=>"root"!==e))).map((e=>`${e}`))),n.forEach((n=>{t[n]={...e.locales[n],themeConfig:{nav:[...p({directory:r,pages:i.filter((e=>e.link.split("/").slice(0,2).join("/")===`${r}/${n}`))})[0].items.filter((e=>!e.link||"index.md"!==e.link.split("/")[2])),...e?.themeConfig?.nav&&Array.isArray(e.themeConfig.nav)?[...e.themeConfig.nav]:[]],sidebar:{[`/${n}/`]:m({directory:r,pages:i.filter((e=>e.link.split("/").slice(0,2).join("/")===`${r}/${n}`))})[`/${n}/`][0].items.filter((e=>!e.link))}}}})),t},g=async e=>{const t=await o(e),r={pages:t.basePages,...e},i={pages:t.localesPages,...e};console.log("params1",e);const n=e?.themeConfig?{...e?.themeConfig,nav:[...p(r),...e?.themeConfig?.nav],sidebar:m(r)}:void 0;return console.log("params2",e),{nav:p(r),sidebar:m(r),pages:t.basePages,...e,themeConfig:n,locales:f(i)}};export{g as default,g as init,p as nav,o as pages,m as sidebar}; | ||
import e from"fs-extra";import t from"globby";import r from"gray-matter";import{v4 as i}from"uuid";import{treeToArray as n,arrayToTree as a}from"tree-conver";const l=(e,t)=>e.frontMatter.date<t.frontMatter.date?1:-1;var o=async n=>{const{directory:a}=n;let o=[];var s;n?.locales&&(o=(s=n.locales,Object.keys(s).filter((e=>"root"!==e))).map((e=>`${a}/${e}`)));const c=await t([`${a}/**/**.md`],{ignore:["node_modules","README.md","packages"]});let d=await Promise.all(c.map((async t=>{const n=await e.readFile(t,"utf-8"),a=r(n);return{frontMatter:a.data,link:t,content:a.content.replace(/[^a-zA-Z0-9._ ]+/g,"").toLowerCase(),uuid:i()}})));d=d.filter((e=>!e.frontMatter.page||e.link.includes(`${a}/`)));const p=d.filter((e=>!o.includes(e.link.split("/").slice(0,2).join("/")))),m=d.filter((e=>o.includes(e.link.split("/").slice(0,2).join("/"))));return d.sort(l),{basePages:p,localesPages:m}};const s=(e,t)=>e.map((e=>{const{link:r,frontMatter:n}=e,a=r.split(`${t}/`)[1].split("/"),l=a.slice(0,-1).join("/"),o=n?.title||a.slice(-1).join("").replace(".md",""),s=a.length-1;return{...e,id:i(),text:o,link:a.join("/"),level:s,dir:l}})),c=(e,t)=>{const{pages:r,directory:l,transformItem:o}=e,c=s(r,l).filter((e=>e.level>0)),p=(e=>{const t={children:[]};return e.forEach((e=>{let r=t;e.forEach(((t,n)=>{let a=r.children.find((e=>e.text===t));a||(a={text:t,id:i(),dir:e.slice(0,n+1).join("/"),children:[]},r.children.push(a)),r=a}))})),t.children})(c.map((e=>e.link.split("/").slice(0,-1)))),m=n(p);c.forEach((e=>{m.forEach((t=>{t.dir===e.dir&&(e.parentId=t.id)}))}));const f=[...d(c,"link"),...d(m,"dir")].map((e=>o(e)));return a(f,{idKey:"id",pidKey:"parentId",childrenKey:"items"})},d=(e,t)=>{if(t){const r=(e,r)=>e[t].localeCompare(r[t]);return e.sort(r)}return e.sort()};var p=e=>{const{pages:t,directory:r}=e,i=s(t,r).filter((e=>0===e.level));return[...d(i.filter((e=>!e.link.includes("index.md"))),"text"),...c({pages:t,directory:r,transformItem:e=>({text:e.text,link:e.link?`/${e.link}`:void 0,id:e.id,parentId:e.parentId})})]},m=e=>{const{pages:t,directory:r,collapsible:i}=e;return c({pages:t,directory:r,transformItem:e=>{const{id:t,text:r,link:n,dir:a,parentId:l}=e;return{text:r,id:t,dir:a,parentId:l,collapsed:!(!n&&!0===i)&&void 0,link:n?`/${n}`:void 0}}}).reduce(((e,t)=>{const r=`/${t.text}/`;return e[r]||(e[r]=[]),e[r].push({text:t.text,collapsed:!0!==i&&void 0,items:[...t.items]}),e}),{})},f=e=>{const{locales:t,directory:r,pages:i}=e;let n=[];var a;return e?.locales&&(n=(a=e.locales,Object.keys(a).filter((e=>"root"!==e))).map((e=>`${e}`))),n.forEach((n=>{t[n]={...e.locales[n],themeConfig:{nav:[...p({directory:r,pages:i.filter((e=>e.link.split("/").slice(0,2).join("/")===`${r}/${n}`))})[0].items.filter((e=>!e.link||"index.md"!==e.link.split("/")[2])),...e?.themeConfig?.nav&&Array.isArray(e.themeConfig.nav)?[...e.themeConfig.nav]:[]],sidebar:{[`/${n}/`]:m({directory:r,pages:i.filter((e=>e.link.split("/").slice(0,2).join("/")===`${r}/${n}`))})[`/${n}/`][0].items.filter((e=>!e.link))}}}})),t},g=async e=>{const t=await o(e),r={pages:t.basePages,...e},i={pages:t.localesPages,...e},n=e?.themeConfig?{...e?.themeConfig,nav:[...p(r),...e?.themeConfig?.nav],sidebar:m(r)}:void 0;return{nav:p(r),sidebar:m(r),pages:t.basePages,...e,themeConfig:n,locales:f(i)}};export{g as default,g as init,p as nav,o as pages,m as sidebar}; | ||
//# sourceMappingURL=index.esm.js.map |
@@ -1,11 +0,1 @@ | ||
export declare const transformPagesArray: (pages: Array<any>, directory: String) => any[]; | ||
export declare const generateTree: (data: any) => any; | ||
interface Params { | ||
pages: Array<any>; | ||
directory: String; | ||
transformItem: Function; | ||
} | ||
export declare const buildSubTree: (params: Params) => any; | ||
export declare const sortArray: (array: Array<any>, field?: string) => any[]; | ||
export declare const deduplicationArray: (array: Array<any>, unikey?: string) => any[]; | ||
export {}; | ||
export declare const sortArray: (array: [], field: string) => []; |
{ | ||
"name": "@huyikai/vitepress-helper", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"private": false, | ||
@@ -5,0 +5,0 @@ "description": "This tool is designed to help you to use VitePress more easily.", |
Sorry, the diff of this file is not supported yet
93312
59
414