UNPKG

slidev-addon-sm

Version:

slidev-addon slidev sm

64 lines (44 loc) 1.61 kB
#!/usr/bin/env node // 将slidev的格式转为常规的markdown import { $, cd, fs, path } from 'zx' const args = process.argv; const cmdPath = args[1]; const doRemoveSm = (str, components) => { for(let i=0; i<components.length; i++) { //<Smxxx></Smxxx> str = str.replace("<"+components[i]+">", ""); str = str.replace("</"+components[i]+">", ""); //<Smxxx /> str = str.replace("<"+components[i]+" />", ""); } return str; }; const doRemoveFormatter = (str) => { if(str === "---") return ""; else if (str.contains("layout: ")) return ""; else if (str.contains("::left::")) return ""; else if (str.contains("::right::")) return ""; return str; }; try { fs.mkdirSync("./nslidev"); let smcomponents = fs.readdirSync(cmdPath+'/../components/'); for(let i=0; i<smcomponents.length; i++) { smcomponents[i].replace(".vue", ""); } //检索pages下的md文件,并以序号排序 let files = fs.readdirSync('./pages/'); files.sort(customSort); files.forEach(element => { fs.readFile('./pages/'+element, (err, data) => { let lines = data.toString().split('\n'); for(let i=0; i<lines.length; i++) { lines[i] = doRemoveSm(lines[i], smcomponents); lines[i] = doRemoveFormatter(lines[i], smcomponents); } fs.writeFileSync('./nslidev/'+element, lines.join('\n')); }); }); } catch (err) { console.error(err); }