GithubHelp home page GithubHelp logo

hubtax / yarle Goto Github PK

View Code? Open in Web Editor NEW

This project forked from akosbalasko/yarle

0.0 0.0 0.0 6.23 MB

Yarle - The ultimate converter of Evernote notes to Markdown

Home Page: https://github.com/akosbalasko/yarle

License: MIT License

TypeScript 51.39% JavaScript 13.61% HTML 10.05% CSS 0.02% SCSS 24.78% Ruby 0.16%

yarle's Introduction

logo

Last Commit
Version Documentation Maintenance License: MIT

Yarle is the ultimate converter of Evernote notes to Markdown.

Features:

Yarle can convert:

  • πŸ“ Any text
  • πŸ“ All metadata: original creation time, last modification time, tags, GPS location, notebook name, source URL
  • πŸ”— External links
  • πŸ”— Internal links among Evernote notes
  • πŸ’» Codeblocks
  • πŸ–ΌοΈ Inline Images
  • πŸ“Ž Attachments
  • πŸ“„ Webclips

Works with:

  • πŸ““ single enex file (one notebook exported from Evernote)
  • πŸ“š or a folder of enex files supported (several notebooks exported and placed into the same folder locally)

Highly customizable:

  • πŸš€ Creates Markdown files matching to user-defined templates, see Templates introduced. See How to use templates with YARLE for details.
  • πŸ’‘ Metadata support: Puts title, creation time, update time, tags, and latlong source, notebook, link to original html meta-information into md as metadata. (To set them, please set up a custom template)
  • πŸ”¨ Updates md files' creation, access, and modification timestamps according to the notes' original create/update/modification time.
  • πŸ”¨ Organizes all attachments into a _resources subfolder (to keep the notes' folder as simple as possible).

Binaries:

Windows

Linux (.rpm)

Debian (.deb)

Mac

Instructions

Download the desktop app for your platform, and follow the instructions there.

out

Prerequisite for legacy versions (below 4.0.0):

No-install execution

Just open a terminal, specify config options in a config file (options detailed in Configuration) and type the following:

npx -p yarle-evernote-to-md@latest yarle --configFile <path_to_your_file e.g. ./config.json>

Configuration:

To configure Yarle, you must create a config file. By default it looks like this:

{
    "enexSource": "/absolute-path-of-your-enex-dir/test-template.enex",
    "templateFile": "/absolute-path-of-your-template-dir/sampleTemplate.tmpl",
    "outputDir": "/path-of-your-desired-output-folder",
    "isZettelkastenNeeded": false,
    "plainTextNotesOnly": false,
    "skipWebClips": false,
    "useHashTags": true,
    "outputFormat": "StandardMD",
    "urlEncodeFileNamesAndLinks": false,
    "skipEnexFileNameFromOutputPath": false,
    "haveEnexLevelResources": false,
    "monospaceIsCodeBlock": false,
    "keepMDCharactersOfENNotes": false,
    "keepOriginalAmountOfNewlines": false,
    "addExtensionToInternalLinks": true,
    "nestedTags": {
      "separatorInEN": "_",
      "replaceSeparatorWith": "/",
      "replaceSpaceWith": "-"
   }
}

The following configurational properties are available: |

Property Name Property value Meaning
enexSource your enex file or the folder of your enex files specifies the exported Evernote notebook(s) as an absolute path
templateFile path of your custom template file if its not specified, a default template will be used
outputDir path to your output dir (absolute or relative) this is the main output dir where the extracted markdown files and the external resources, images, pdf-s are going to be created
resourcesDir _resources subdir where attachments/external resources will be placed
isZettelkastenNeeded true or false puts Zettelkasten Id (based on time of creation) at the beginning of the file name
plaintextNotesOnly true or false skips any notes with attachments (e.g. notes containing pictures)
useHashTags true or false whether to add the pound sign in front of tags
outputFormat ObsidianMD or StandardMD generates internal file links and highlights in Obsidian-style: highlights are going to be bounded by == instead of ` characters, file links are going to be as follows: ![[file-name]] instead of ![file-name](file-name). Possible values: ObsidianMD to get Obsidian-style notes, StandardMD or skip it completely, if you prefer Standard Markdown format.
haveEnexLevelResources true or false stores note resources on global _resources folder per enex export if enabled
monospaceIsCodeBlock true or false if it's true then all deepest elements with monospace font style is recognized as Codeblocks
dateFormat Β string ISO 8601 specification of the expected date format (e.g. YYYY-MM-DD)
keepMDCharactersOfENNotes true or false set it true, if you used Markdown format in your EN notes
nestedTags it's a complex property contains the following subitems: "separatorInEN", "replaceSeparatorWith" and "replaceSpaceWith"Β  separatorInEN stores the tag separator used in Evernote, replaceSeparatorWith is the string to what separatorInEN should be replaced to, and replaceSpaceWith is the string to what the space character should be replaced to in the tags. For example using the default settings a tag tag1_sub tag of tag1 is going to be converted to tag1/sub-tag-of-tag1
keepImageSize ObsidianMD or StandardMD preserve an image's width and height in the chosen format when specified
urlEncodeFileNamesAndLinks true or false URL-encodes linked file names and internal EN links . e.g "linked file.jpg" will be converted to "linked%20file.jpg"
keepOriginalAmountOfNewlines true or false keep the original amount of newlines, default is false, when the multiple newlines are collapsed to one.
Β generateNakedUrls true or false if it's true, Yarle generates 'naked' external Urls without any extra characters. If its false, external Urls are wrapped by '<' and '>' characters

| addExtensionToInternalLinks | true or false |Β adds '.md' extensions at the end of internal file links, to make them recognizable by DevonThink and other tools | turndownOptions | {...} | additional configuration options for turndown, e.g., { "bulletListMarker": "-" } (only in Yarle config file, not desktop app)

Metadata settings can be set via the template.

yarle's People

Contributors

akosbalasko avatar rodbv avatar cito avatar dependabot[bot] avatar joaosa avatar medmunds avatar sirspidey avatar mbbroberg avatar mescalito avatar nikiluk avatar timjrobinson avatar grantx2016 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.