KindleのハイライトをScrapboxに転送する方法

プライム会員になってからKindle本を読みまくってます。プライム・リーディングやオーナーズ・ライブラリを使えば無料で読める本が増えるし、文庫本だと割引されることも多い。さらに文字サイズを変えることができるから、老眼の身にありがたい。


Kindle Scrapper

ふと思いついた。Kindle本を読みながらハイライトを付けているけど、これをScrapboxに入れておくといいんじゃないか。それでブックマークレットで組んでみる。iPhoneでしか実験してないので、他ではうまく行かないかもしれないけど、転送手段があるのは便利。

javascript:
Scrapbox="https://scrapbox.io/PROJECT/";
url="https://read.amazon.co.jp/kp/notebook";
if(location.href.indexOf(url)==0){
p=document.getElementById("annotation-scroller").querySelectorAll("h3.kp-notebook-metadata,h5.kp-notebook-metadata,#highlight,#note");
s="";
for(i=0;i<p.length;i++) s+=p[i].innerText+"\n\n";
t=s.split("\n")[0];
b="["+document.querySelector(".kp-notebook-printable img").src+" "+document.querySelector(".kp-notebook-printable").href+"]";
b+=s.substr(t.length,1860).replace(/\n{3,}/g,"\n\n")+"\n\n#Kindle";
url=Scrapbox+encodeURIComponent(t)+"?body="+encodeURIComponent(b);
}
location=url;


使い方

2行目の変数Scrapboxをご自身のURLアドレスに書き換えておきます。スクリプトブックマークレットとして登録してください。Kindle以外のサイトで実行すると「Kindle:メモとハイライト」のページが開きます。対象のKindle本を開き、再度ブックマークレットを実行すると、今度はScrapboxに新しいページを作成します。そういう二段構えスクリプト


実行結果

書影とハイライトが並ぶページが作られます。書影をタップすると、そのKindle本のアマゾン・ページが開きます。ハイライトは、実際にKindleに引いた分より短くなってますね。こんな仕様だったかな。全体を出してほしかったけど、まあ、仕方ない。


まとめ

Scrapboxに書き込むとき「URLの最長文字数」の制限に引っかかってしまうので、1860文字でカットしています。全部は転送できなかったりする。ここは難しい。

Scrapboxに引用と読書メモが並ぶだけで、読んだ本のアウトラインがつかみやすくなります。なかなか良いアイデアです。読み直すと、その本の印象が浮かび上がってくる。引用の合間に感想を書き加えておくと、さらに読書メモが生きてくるような気がします。