UNPKG

longform-markdown-splitter

Version:

Splits and transforms markdown files from obsidian for usage in hugo.

195 lines (194 loc) 7.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MD_Filesystem = void 0; var fs = require("fs"); var path = require("path"); var fsextra = require("fs-extra"); var fm = require("front-matter"); var yaml_1 = require("yaml"); var MD_Filesystem = (function () { function MD_Filesystem() { } MD_Filesystem.split_frontmatter_body = function (content) { var fm_content = fm(content); var file_content = { frontmatter: fm_content.frontmatter, frontmatter_attributes: fm_content.attributes, body_array: fm_content.body.split("\n"), index: 0 }; return file_content; }; MD_Filesystem.merge_frontmatter_body = function (mdfc) { mdfc.frontmatter = (0, yaml_1.stringify)(mdfc.frontmatter_attributes); return ("---\n" + mdfc.frontmatter + "\n---\n\n" + mdfc.body_array.join("\n")); }; MD_Filesystem.copy_file = function (source, target, simulate) { if (simulate === void 0) { simulate = false; } if (!simulate) { if (MD_Filesystem.is_file_exist(source)) { if (MD_Filesystem.is_file_exist(target)) { if (MD_Filesystem.is_file_modified(source, target)) { fsextra.copySync(source, target); console.log("copy_file from ".concat(source, " to ").concat(target)); } else { console.log("copyjob: source file not modified '".concat(source, "'")); } } else { fsextra.copySync(source, target); console.log("copy_file from ".concat(source, " to ").concat(target)); } } else { console.log("copyjob: source file doesnt exist '".concat(source, "'")); } } else { console.log("copy_file (simulated) from ".concat(source, " to ").concat(target)); if (MD_Filesystem.is_file_exist(source)) { console.log("source exist: ".concat(source, ".")); } else { console.log("source exist not: ".concat(source, ".")); } if (MD_Filesystem.is_file_exist(target)) { console.log("target exist: ".concat(target, ".")); } else { console.log("target exist not: ".concat(target, ".")); } if (MD_Filesystem.is_file_modified(source, target)) { console.log("source is modified: ".concat(target, ".")); } else { console.log("source not modified: ".concat(target, ".")); } } }; MD_Filesystem.isFolder = function (my_path) { try { var stat = fs.lstatSync(my_path); return stat.isDirectory(); } catch (e) { return false; } }; MD_Filesystem.isFile = function (my_path) { try { var stat = fs.lstatSync(my_path); return stat.isFile(); } catch (e) { return false; } }; MD_Filesystem.is_file_exist = function (my_path) { if (fs.existsSync(my_path)) { return true; } else { return false; } }; MD_Filesystem.is_file_modified = function (file_source, file_target) { var stats_source = fs.statSync(file_source); var mtime_source = stats_source.mtime; var ctime_source = stats_source.ctime; var stats_target = fs.statSync(file_target); var mtime_target = stats_target.mtime; var ctime_target = stats_target.ctime; console.log("File source: ".concat(file_source, ", target: ").concat(file_target)); console.log("File data last modified, source: ".concat(mtime_source, ", target: ").concat(mtime_target)); console.log("File data last created, source: ".concat(ctime_source, ", target: ").concat(ctime_target)); return mtime_source.getTime() !== ctime_source.getTime(); }; MD_Filesystem.get_filename_from = function (my_path_filename) { return path.basename(my_path_filename); }; MD_Filesystem.get_path_from = function (my_path_filename) { return path.parse(my_path_filename).dir; }; MD_Filesystem.concat_path_filename = function (my_path, my_filename) { if (my_path.endsWith(path.sep)) { return my_path + my_filename; } else { return my_path + path.sep + my_filename; } }; MD_Filesystem.ensure_path = function (my_path, simulate) { if (simulate === void 0) { simulate = false; } if (!simulate) { fsextra.ensureDirSync(my_path); console.log("ensure_path exist: '".concat(my_path, "'")); } else { var folder_arr = MD_Filesystem.get_path_parts(my_path); console.log("ensure_path (simulated): '".concat(my_path, "'")); console.log("ensure_path (simulated):", folder_arr); var part = ""; for (var _i = 0, folder_arr_1 = folder_arr; _i < folder_arr_1.length; _i++) { var folder = folder_arr_1[_i]; part = (part === "" ? "" : part + path.sep) + folder; if (folder !== "") { if (!fs.existsSync(part)) { console.log("ensure_path (simulated): missing: '".concat(part, "'")); } else { console.log("ensure_path (simulated): exists: '".concat(part, "'")); } } } } }; MD_Filesystem.get_path_parts = function (my_path) { return my_path.split(path.sep); }; MD_Filesystem.get_path_depth = function (my_path) { return MD_Filesystem.get_path_parts(my_path).length; }; MD_Filesystem.get_files_list = function (dir, files) { if (files === void 0) { files = []; } var fileList = fs.readdirSync(dir, { withFileTypes: true }); for (var _i = 0, fileList_1 = fileList; _i < fileList_1.length; _i++) { var file = fileList_1[_i]; var name_1 = "".concat(dir, "/").concat(file.name); if (fs.statSync(name_1).isDirectory()) { this.get_files_list(name_1, files); } else { files.push(name_1); } } return files; }; MD_Filesystem.read_file = function (file) { try { var md_array = fs.readFileSync(file).toString(); } catch (err) { throw err; } return md_array; }; MD_Filesystem.write_file = function (writePath, content) { try { console.log("Write File ".concat(writePath)); fs.writeFileSync(writePath, content, "utf8"); } catch (error) { console.log("An error has occurred, writing ".concat(writePath), error); } }; MD_Filesystem.read_file_json = function (file) { return JSON.parse(fs.readFileSync(file, "utf8")); }; MD_Filesystem.write_file_json = function (file, json_object) { fs.writeFileSync(file, JSON.stringify(json_object)); }; return MD_Filesystem; }()); exports.MD_Filesystem = MD_Filesystem;