UNPKG

yarle-evernote-to-md

Version:

Yet Another Rope Ladder from Evernote

101 lines (83 loc) 3.6 kB
import * as fs from 'fs'; import { cloneDeep } from 'lodash'; import { YarleOptions } from '../../YarleOptions'; import { NoteData } from '../../models/NoteData'; import { TOCNoteName } from './../../constants'; import * as T from './placeholders/metadata-placeholders'; import * as M from './match-all'; import { applyContentTemplate, applyCreatedAtTemplate, applyLinkToOriginalTemplate, applyLocationTemplate, applyNotebookTemplate, applyReminderDoneTimeTemplate, applyReminderOrderTemplate, applyReminderTimeTemplate, applySourceUrlTemplate, applyTagsArrayTemplate, applyTagsTemplate, applyTitleTemplate, applyUpdatedAtTemplate, applyEvernoteLinkTemplate, applyEvernoteGuidTemplate, applyTagsYamlListTemplate } from './apply-functions'; import { removeCreatedAtPlaceholder, removeLinkToOriginalTemplate, removeLocationPlaceholder, removeMetadataBlockPlaceholder, removeNotebookPlaceholder, removeReminderDoneTimePlaceholder, removeReminderOrderPlaceholder, removeReminderTimePlaceholder, removeSourceUrlPlaceholder, removeUpdatedAtPlaceholder, removeEvernoteLinkPlaceholder, removeEvernoteGuidPlaceholder } from './remove-functions'; export const applyTemplate = (noteData: NoteData, yarleOptions: YarleOptions) => { let result = cloneDeep(yarleOptions.currentTemplate); result = applyTitleTemplate(noteData, result, () => noteData.title); result = applyTagsTemplate(noteData, result, () => !yarleOptions.skipTags); result = applyTagsArrayTemplate(noteData, result, () => !yarleOptions.skipTags ); result = applyTagsYamlListTemplate(noteData, result, () => !yarleOptions.skipTags); result = noteData.title === TOCNoteName ? removeEvernoteLinkPlaceholder(result) : applyEvernoteLinkTemplate(noteData, result) result = noteData.title === TOCNoteName ? removeEvernoteGuidPlaceholder(result) : applyEvernoteGuidTemplate(noteData, result) result = applyContentTemplate(noteData, result, () => noteData.markdownContent); result = (yarleOptions.keepOriginalHtml && noteData.linkToOriginal) ? applyLinkToOriginalTemplate(noteData, result) : removeLinkToOriginalTemplate(result); result = (!yarleOptions.skipCreationTime && noteData.createdAt) ? applyCreatedAtTemplate(noteData, result) : removeCreatedAtPlaceholder(result); result = (!yarleOptions.skipUpdateTime && noteData.updatedAt) ? applyUpdatedAtTemplate(noteData, result) : removeUpdatedAtPlaceholder(result); result = (!yarleOptions.skipSourceUrl && noteData.sourceUrl) ? applySourceUrlTemplate(noteData, result) : removeSourceUrlPlaceholder(result); result = (!yarleOptions.skipLocation && noteData.location) ? applyLocationTemplate(noteData, result) : removeLocationPlaceholder(result); result = (yarleOptions.isNotebookNameNeeded && noteData.notebookName) ? applyNotebookTemplate(noteData, result) : removeNotebookPlaceholder(result); result = (!yarleOptions.skipReminderTime && noteData.reminderTime) ? applyReminderTimeTemplate(noteData, result) : removeReminderTimePlaceholder(result); result = (!yarleOptions.skipReminderOrder && noteData.reminderOrder) ? applyReminderOrderTemplate(noteData, result) : removeReminderOrderPlaceholder(result); result = (!yarleOptions.skipReminderDoneTime && noteData.reminderDoneTime) ? applyReminderDoneTimeTemplate(noteData, result) : removeReminderDoneTimePlaceholder(result); result = result.replace(T.START_BLOCK, '') .replace(T.END_BLOCK, ''); return result; };