UNPKG

yarle-evernote-to-md

Version:

Yet Another Rope Ladder from Evernote

79 lines (76 loc) 4.36 kB
import { ImageSizeFormat } from 'image-size-format'; import { CharacterMap } from './../CharacterMap'; import { YarleOptions } from './../YarleOptions'; import { OutputFormat } from './../output-format'; import { TaskOutputFormat } from './../task-output-format'; import { SearchAndReplace } from 'models'; const store = require ('./store'); enum DefaultRootType { array = 'array', object = 'object' } const loadJSONSafely = (jsonString: string, defaultRootTyoe: DefaultRootType): any => { try { console.log(jsonString); return JSON.parse(jsonString); }catch(e){ console.log("ERROR", e); return defaultRootTyoe === DefaultRootType.array ? [] : {} } } export const mapSettingsToYarleOptions = (): YarleOptions => { return { enexSources: store.get('enexSources') as Array<string>, outputDir: store.get('outputDir') as string, isMetadataNeeded: true, isNotebookNameNeeded: store.get('isNotebookNameNeeded') as boolean, isZettelkastenNeeded: store.get('isZettelkastenNeeded') as boolean, useZettelIdAsFilename: store.get('useZettelIdAsFilename') as boolean, plainTextNotesOnly: store.get('plainTextNotesOnly') as boolean, skipWebClips: (store.get('skipWebClips') as boolean), useHashTags: store.get('useHashTags') as boolean, outputFormat: store.get('outputFormat') as OutputFormat, obsidianTaskTag: store.get('obsidianTaskTag') as string, taskOutputFormat: store.get('taskOutputFormat') as TaskOutputFormat, skipEnexFileNameFromOutputPath: store.get('skipEnexFileNameFromOutputPath') as boolean, keepMDCharactersOfENNotes: store.get('keepMDCharactersOfENNotes') as boolean, monospaceIsCodeBlock: store.get('monospaceIsCodeBlock') as boolean, keepOriginalHtml: store.get('keepOriginalHtml') as boolean, posixHtmlPath: store.get('posixHtmlPath') as boolean, currentTemplate: store.get('currentTemplate') as string, resourcesDir: store.get('resourcesDir') as string, trimStartingTabs: store.get('trimStartingTabs') as boolean, convertPlainHtmlNewlines: store.get('convertPlainHtmlNewlines') as boolean, encryptionPasswords: ((store.get('encryptionPasswords') as string)||'').split(',').map(pwd => pwd.trim()), nestedTags: { separatorInEN: store.get('nestedTags.separatorInEN') as string, replaceSeparatorWith: store.get('nestedTags.replaceSeparatorWith') as string, replaceSpaceWith: store.get('nestedTags.replaceSpaceWith') as string, }, logseqSettings: { journalNotes: store.get('logseqSettings.journalNotes') as boolean, }, obsidianSettings: { omitLinkDisplayName: store.get('obsidianSettings.omitLinkDisplayName') as boolean, }, dateFormat: store.get('dateFormat') as string, imageSizeFormat: store.get('imageSizeFormat') as ImageSizeFormat, keepImageSize: store.get('keepImageSize') as boolean, keepOriginalAmountOfNewlines: store.get('keepOriginalAmountOfNewlines') as boolean, addExtensionToInternalLinks: store.get('addExtensionToInternalLinks') as boolean, generateNakedUrls: store.get('generateNakedUrls') as boolean, urlEncodeFileNamesAndLinks: store.get('urlEncodeFileNamesAndLinks') as boolean, haveEnexLevelResources: store.get('haveEnexLevelResources') as boolean, haveGlobalResources: store.get('haveGlobalResources') as boolean, useUniqueUnknownFileNames: store.get('useUniqueUnknownFileNames') as boolean, useLevenshteinForLinks: store.get('useLevenshteinForLinks') as boolean, convertColorsToMDHighlight: store.get('convertColorsToMDHighlight') as boolean, keepEvernoteLinkIfNoNoteFound: store.get('keepEvernoteLinkIfNoNoteFound') as boolean, sanitizeResourceNameSpaces: store.get('sanitizeResourceNameSpaces') as boolean, replacementChar: store.get('replacementChar') as string, replacementCharacterMap: loadJSONSafely(store.get('replacementCharacterMap'), DefaultRootType.object) as CharacterMap, globalReplacementSettings: loadJSONSafely(store.get('globalReplacementSettings'), DefaultRootType.array) as Array<SearchAndReplace> }; };