У меня есть папка с папками, в каждой из них лежит несколько markdown файлов:
Мне нужно пройтись по этим файлам и на выходе получить документ в котором будут записаны все заголовки #Title из этих маркдаунов. В файле должна быть такая структура :
folderName1
fileName
Title1
Title2
folderName2
fileName
Title3
Title5
...
Я написал скрипт :
var {
lstatSync,
readdirSync,
readFileSync,
statSync,
createWriteStream
} = require("fs");
var path = require("path");
const isDirectory = source => lstatSync(source).isDirectory();
function writeDoc(dir, fileTypes) {
function walkDir(currentPath) {
let files = readdirSync(currentPath);
const CreateFiles = createWriteStream("./file.txt", {
flags: "a" //flags: 'a' preserved old data
});
const headingsRegex = /^#(?!#)(.*)/gm;
for (let i in files) {
var curFile = path.join(currentPath, files[i]);
if (isDirectory(curFile)) {
CreateFiles.write("FOLDER_NAME-->" + curFile.split("/").pop() + "\r\n");
walkDir(curFile);
} else if (
statSync(curFile).isFile() &&
fileTypes.indexOf(path.extname(curFile)) != -1
) {
CreateFiles.write("FILE_NAME--->" + curFile.split("/").pop() + "\r\n");
const fileData = readFileSync(curFile, "utf8");
let match = headingsRegex.exec(fileData);
while (match != null) {
CreateFiles.write("HEADER--->" + match[1] + "\r\n");
match = headingsRegex.exec(fileData);
}
}
}
}
walkDir(dir);
}
writeDoc("./templates", [".md"]);
Который рекурсивно проходить по папкам и вытягивает заголовки но на выходе у меня в файл записываеться не то что я ожидаю : В чем моя ошибка ?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Когда пытаюсь создать экземпляр класса, вылетает ошибка
Хотела на массив повесить 2 фильтраЛогика такая: 1 - фильтр для поиска
Как вывести список файлов в папке рекурсивно, тоесть если в папке есть еще одно папка то вывести файлы для нее и тдНапример