読めたら読んでね!

書けたら書くので!

マロ。さん作「kindle highlight to WorkFlowy」でlocation要素を子階層化

f:id:yasomi:20170723152347p:plain

Tak.さんの『アウトライン・プロセッシング入門』を読んだこともあり、WorkFlowyを本格的に使い始めました。まだまだ使いこなすというレベルには程遠いですが、すでに便利さを体感しているので、Pro版に移行し活用を進めています。

kindleのハイライトをWorkFlowyにインポート

kindleで読書をしつつ付けたハイライトを記録しておくとき、これまでテキストエディターで余計な箇所を一括置換で削除する作業をしこしこやっていたのですが、これもWorkFlowyに取り込んでいきたい。検索すると、この作業を簡略化するブックマークレットをマロ。さんが公開してくれていました。

https://note.mu/maro_draft/n/nde874428ec77note.mu

kindleサイトのハイライトページで、出力したい書籍のページを開き(本のタイトルリンク→「You have 00 highlighted passages」と進めばOK)、ブックマークレットを実行。別タブで表示されたOPML形式をそのままWorkFlowyにコピペするとさくっと以下の状態になります。(「bqを親トピックにしないバージョン」を利用しました)

f:id:yasomi:20170723145444p:plain

改造版ブックマークレット

これだけでも非常に便利なのですが、個人的に欲を言えば、以下のようなスタイルにしたい。

f:id:yasomi:20170723145510p:plain

これを実現するために、マロ。さんのブックマークレットを少し編集させていただいたのが以下のコードです。(コピペしてお使いください)

javascript:(function()%7Bvar txt='<?xml version="1.0"?>%5Cn<opml version="2.0">%5Cn  <head>%5Cn  </head>%5Cn  <body>';var a=$('%23allHighlightedBooks').children();for(i=0;i<a.length;i++)%7Bif(i==0)%7Btxt+='    <outline text="'+a.eq(i).children('.title').text().replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;')+a.eq(i).children('.author').text().replace(/%5Cr?%5Cn/g,'').replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;')+'" >%5Cn';%7Delse if(a.eq(i).hasClass('yourHighlightsHeader'))%7Bbreak;%7Delse%7Btxt+='      <outline text="' +a.eq(i).children('.highlight').eq(0).text().replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;')+'" >%5Cn';txt+='        <outline text="' +a.eq(i).children('a').text().replace(/Read more at /g,'').replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;');if(a.eq(i).children('p').children('.noteContent').text()!='')%7Btxt+='" _note="'+a.eq(i).children('p').children('.noteContent').text().replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;')+'" />%5Cn';%7Delse%7Btxt+='" />%5Cn';%7Dtxt+='        <outline text="' +a.eq(i).children('a').attr('href').replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/%5Cn/g, '&%2310;')+'" /></outline>%5Cn';%7D%7D;txt+='    </outline>%5Cn  </body>%5Cn</opml>';var w = window.open();w.document.open();w.document.write('<!DOCTYPE html><html lang="ja"><head><title>kindle highlight</title><style type=%5C"text/css%5C">textarea%7Bwidth:100%25;height:500px;%7D</style></head><body></body></html>');w.document.body.innerHTML = "<textarea>"+txt.replace(/&/g, '&amp;')+"</textarea>";w.document.close();%7D)();


このスタイルだと何が嬉しいかというと、ロケーションとkindleへのリンクの階層を非表示にして、引用テキストのみをリスト化できること。下記画像では章立てを手動で入力(自動化出来ないよね…?)していますが、各章をさらに章見出しの子要素へ移動すればさらに便利そうです。

f:id:yasomi:20170723145737p:plain


子の階層以下を閉じるには、以下の彩郎さんの記事にあるとおり、Zoomしたタイトルをダブルクリックすれば要素を開閉できます。

WorkFlowyのトピック折りたたみ機能の基本 - 単純作業に心を込めて

追記:7/23夜

ブログを公開したところ、マロ。さんご本人からリプライをいただき、8月にkindleサイトのリニューアルで上記ブックマークレットが使えなくことを教えていただきました。

f:id:yasomi:20170723224203p:plain


たしかに!苦笑
こんなデカデカと告知されてたけど、全く見落としていたという。。


f:id:yasomi:20170723224304p:plain

新ハイライトページはこんな感じ。


こちらの新ページに対応したブックマークレットを先ほどマロ。さんの方で作成されたそうなのですが、なんと私の要望も取り込む形で対応してくださっています。新ハイライトページ用のブックマークレットは以下の記事より入手が可能です。

note.mu

よかったらカンパしてね!

マロ。さん、便利なツールを公開&要望にご対応くださりありがとうございます!
私の改造版ブックマークレットも含めて、もし気に入っていただけたら、以下のnoteから彼にカンパも出来ますので、ぜひ。

マロ。|note

おまけ

生涯投資家

生涯投資家

今回読んでいた本。村上ファンド事件の真相と、コーポレート・ガバナンスの必要性を訴え続ける彼の真意・信念を理解できました。おすすめです。

bookmeter.com

ツイッターもやってます

twitter.com