nodejs 批量修改notion导出文章

504 阅读1分钟

选择notion批量导出为md格式时

image.pngimage.png

导出的文件会带有后缀

image.png

app.js

let fs = require("fs");
let array = [];
function updateFileName(path, layer = 1) {
  let p = path;
  let readDir = fs.readdirSync(path);
  readDir.forEach((ite) => {
    if (ite.indexOf(".") == -1) {
      let files = ite.split(" ");
      let repStr = files[files.length - 1];
      array.push(repStr);
      let fileName = "";
      for (let i = 0; i < files.length - 1; i++) {
        if (files[i]) fileName += " " + files[i];
      }
      fs.rename(p + "/" + ite, p + "/" + fileName, (err) => {
        if (err) console.log(err, "err");
        updateFileName(p + "/" + fileName);
      });
    }
    if (ite.indexOf(".md") !== -1) {
      let path = p + "/" + ite;
      let files = ite.split(" ");
      if (files.length > 1) {
        let repStr = files[files.length - 1];
        repStr = repStr.replace(".md", "");
        array.push(repStr);
        fs.readFile(path, (err, data) => {
          let fileName = files[files.length - 1];
          fileName = fileName.replace(".md", "");
          let regStr = "";
          array.forEach((ite) => {
            regStr += "%20"+ite + "|";
          });
          regStr = regStr.slice(0, regStr.length - 1);
          let reContext = new RegExp("%20" + regStr, "g");
          let context = data.toString();
          context = context.replace(reContext, "");
          fs.writeFile(path, context, (err) => {
            if (err) throw err;
            let fileName = "";
            for (let i = 0; i < files.length - 1; i++) {
              if (files[i]) fileName += " " + files[i];
            }
            setTimeout(()=>{
              fs.rename(p + "/" + ite, p + "/" + fileName + ".md", (err) => {
                if (err) throw err;
              });
            },50)
           
          });
        });
      }
    }
  });
  return array;
}
updateFileName("docs");


node app.js

image.png