yarle-evernote-to-md
Version:
Yet Another Rope Ladder from Evernote
62 lines • 3.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processNode = void 0;
const os_1 = require("os");
const templates_1 = require("./utils/templates/templates");
const utils_1 = require("./utils");
const yarle_1 = require("./yarle");
const process_resources_1 = require("./process-resources");
const convert_html_to_md_1 = require("./convert-html-to-md");
const convert_to_html_1 = require("./convert-to-html");
const loggerInfo_1 = require("./utils/loggerInfo");
const runtime_properties_1 = require("./runtime-properties");
const LanguageFactory_1 = require("./outputLanguages/LanguageFactory");
const get_title_1 = require("./utils/get-title");
const processNode = (pureNote, notebookName) => {
const dateStarted = new Date();
(0, loggerInfo_1.loggerInfo)(os_1.EOL);
(0, loggerInfo_1.loggerInfo)(`Conversion started at ${dateStarted}`);
const runtimeProps = runtime_properties_1.RuntimePropertiesSingleton.getInstance();
runtimeProps.setCurrentNoteName(pureNote.title);
let noteData = {
created: pureNote.created,
title: (0, get_title_1.performRegexpOnTitle)(yarle_1.yarleOptions, pureNote.title),
noteName: pureNote.title,
content: Array.isArray(pureNote.content) ? pureNote.content.join('') : pureNote.content,
originalContent: pureNote.content,
};
// tslint:disable-next-line:no-console
(0, loggerInfo_1.loggerInfo)(`Converting note "${noteData.title}"...`);
try {
let htmlContent = noteData.content;
if ((0, utils_1.hasResource)(pureNote)) {
htmlContent = (0, process_resources_1.processResources)(pureNote);
}
htmlContent = (0, process_resources_1.prepareContentByExtractingDataUrlResources)(pureNote, htmlContent);
noteData.markdownContent = (0, convert_html_to_md_1.convertHtml2MdContent)(yarle_1.yarleOptions, htmlContent);
noteData = Object.assign(Object.assign({}, noteData), (0, utils_1.getMetadata)(pureNote, notebookName));
noteData.tags = (0, utils_1.getTags)(pureNote);
noteData.appliedMarkdownContent = (0, templates_1.applyTemplate)(noteData, yarle_1.yarleOptions);
// tslint:disable-next-line:no-console
// loggerInfo(`data =>\n ${JSON.stringify(data)} \n***`);
const langaugeFactory = new LanguageFactory_1.LanguageFactory();
const targetLanguage = langaugeFactory.createLanguage(yarle_1.yarleOptions.outputFormat);
targetLanguage.noteProcess(yarle_1.yarleOptions, noteData, pureNote);
if (yarle_1.yarleOptions.keepOriginalHtml) {
noteData.htmlContent = htmlContent;
(0, convert_to_html_1.convert2Html)(noteData);
(0, utils_1.saveHtmlFile)(noteData, pureNote);
}
}
catch (e) {
// tslint:disable-next-line:no-console
(0, loggerInfo_1.loggerInfo)(`Failed to convert note: ${noteData.title}, ${JSON.stringify(e)}`);
}
// tslint:disable-next-line:no-console
const dateFinished = new Date();
const conversionDuration = (dateFinished.getTime() - dateStarted.getTime()) / 1000; // in seconds.
(0, loggerInfo_1.loggerInfo)(`Conversion finished at ${dateFinished}`);
(0, loggerInfo_1.loggerInfo)(`Note "${noteData.title}" converted successfully in ${conversionDuration} seconds.`);
};
exports.processNode = processNode;
//# sourceMappingURL=process-node.js.map