[js][evernote]ENMLをHTMLに変換する
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で読めるようになります。