Migrate from evernote to simplenote with markdown formatting
Project description
Introduction
Evernote and Simplenote are two online based note taking apps. Evernote focuses more on giving the end user rich text and the ability to upload voice clips and images for OCR. Simplenote on the other hand, as seen by its name, is a much simpler approach. It just stores your plain text notes, and that is it.
This package installs a script to help you migrate from Evernote into Simplenote by exporting the notes as files. The script will take an Evernote enex export and turn it into a json, csv or directory of *.txt files.
The html that is provided by Evernote is processed by the html2text library. This transforms the html into Markdown. The Simplenote web UI supports previewing notes in Markdown, so this works out nicely.
Installation
You can easily install this package using easy_install or pip as follows (preferably in a virtualenv):
$ pip install -U ever2simple
Development Installation
Clone this repository with git:
$ git clone https://github...
Enter the code directory:
$ cd ever2simple
Install live preserving local changes to the code:
$ pip install -e .
Usage
Once it is installed, you will have a new executable available to you. Before you can run the conversion, you will need to export your notes. This can be done from the desktop client. You can select the notes you want to export, then Export Notes to Archive..., and select the enex format.
Once you have that, you can run the script on the file setting the --output to a directory and using dir as the parameter to --format:
$ ever2simple my_evernote.enex --output simplenote_dir --format dir
That will output each note in a *.txt file named by a number to the simplenote_dir directory (creating it if it doesn’t exist).
You can now request Simplenote’s support to enable Dropbox synchronization to your account here: https://simplenote.com/contact-us/
Once they enable Dropbox synchronization for you, go to https://app.simplenote.com/settings and configure it (in the last section).
After that, copy your converted *.txt note files to your Simplenote directory inside your Dropbox and synchronize them from https://app.simplenote.com/settings.
If you want to export to CSV you can pass csv to the --format parameter:
$ ever2simple my_evernote.enex --output simplenote.csv --format csv
If you want to export to JSON you can pass json to the --format parameter (or just don’t use that parameter as json is the default):
$ ever2simple my_evernote.enex --output simplenote.json --format json
Command Line Help
The help given by running ever2simple -h:
usage: ever2simple [-h] [-o OUTPUT] [-f {json,csv,dir}] enex-file Convert Evernote.enex files to Markdown positional arguments: enex-file the path to the Evernote.enex file optional arguments: -h, --help show this help message and exit -o OUTPUT, --output OUTPUT the path to the output file or directory, leave black to output to the terminal (stdout) (default: None) -f {json,csv,dir}, --format {json,csv,dir} the output format, json, csv or a directory (default: json)
Notes and Caveats
Simplenote no longer supports JSON and CSV imports, only text files via Dropbox.
Exporting to a directory will not preserve tags in the notes.
This does not handle any attachments since simplenote doesn’t support them. This script does not ignore the note that has attachments. This may make for some strange notes being imported with little to no text.
Evernote’s export looks like those horrific Microsoft Word html exports. You may want to cleanse the content data a bit before running the script. This is left as an exercise for the user.
The notes in Evernote randomly contain unicode characters that aren’t really harmful to you today, but may bite you in the rear later. This script just passes the buck, no extra cleansing of the text is done. The oddest character is a unicode space, why on earth do we need unicode spaces in our notes?1?!
Links
TODO
Write some basic tests
Unicode for DictWriter
Test on Python 3
Changes
2.0 (2016-03-13)
Update to output text files to a directory. [tiangolo]
Fix created and updated date parsing. [austinjp]
1.1 (2015-03-25)
Forgot to write change log entries. [claytron]
1.0 (2015-03-25)
Fix issue with HTML2Text import. [claytron]
Fix issue with xmlSAX2Characters: huge text node error. [claytron]
Bump version to avoid having to use pip install --pre. [claytron]
1.0a3 (2011-10-11)
Pin python-dateutil to less than 2.0 so that the Python 3 only version isn’t pulled down. [claytron]
1.0a1 (2011-06-14)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.