[js][evernote]ENMLをHTMLに変換する


[まとめ] 現在開催中のKindleセール情報はこちら

EvernoteのメモをKindleで読みたいと思って実験していた際のメモ。

EvernoteのメモはENMLというEvernote用のマークアップ言語で記述されています。

そのため、API経由でノートを取得した場合もENML形式で取得されるため、そのメモを「Send to Kindle」で送ってもエラーになってしまいメモを読むことが出来ません。

そこでENMLをHTMLに変換する方法を調べていたところ、 wanasit/enml-js というjsライブラリを発見。

こちらを使わせていただくことにしました。

以下のような変換スクリプトを作成。

# enml2html.js

var enml = require('enml-js');
var argv = require('argv');
var fs = require('fs');

var content_path = argv.run().targets[0];
var note = fs.readFileSync(content_path, 'utf8');
var html = enml.HTMLOfENML(note)
console.log(html);

サンプルとして以下のようなENMLメモがあった場合、

# sample.enml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note><p><span>Hello World</span></p></en-note>

引数にファイル名を指定してnodejsを実行すると

node enml2html.js sample.enml

以下のようにhtmlに変換できます。

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><p><span>Hello World</span></p></body></html>

これをKindleに送ればEvernoteメモをKindleで読めるようになります。

[まとめ] 現在開催中のKindleセール情報はこちら