iOSでWorkFlowyをEvernoteに書き出すブックマークレット FlowyEver

思考の「今」を切り出す。


iOS8でWorkflowyの「現在」をEvernoteに記録しておこう
アプリよりもSafariのほうがお得。アイデアの下書きにWorkflowyを使っていると、「現在」のスナップショットを残したいときがあります。アプリ版はフルスクリーンになっているだけで、連携機能がない...
iOSSafariは共有機能が使える。その方法でEvernoteに転送する方法は以前書きました。上の記事ですね。これはこれで手軽だけれど、スタイルまで引き継ぐからデータ転送量が大きい。トピックと階層構造だけで良いのなら、下記ブックマークレットはどうでしょう?

javascript:editor="evernote://x-callback-url/new-note?type=html&title="+encodeURIComponent(document.title)+"&text=";h=location.href;p=pageContainer.innerHTML;p=p.replace(/<\/div>/g,"").replace(/<span .+?>/g,"").replace(/<\/span>/g,"\n").replace(/<div class=\"(.+?)\">/g,"\t$1\n").replace(/<div>/g,"").replace(/\n+/g,"\n").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");s="<ul>";b=n=0;line=p.split("\n");for(i=0;i<line.length;i++){c=line[i];switch(true){case /^\tproject selected/.test(c):s="<ul>";break;case /^\tnotes/.test(c):n=1;break;case /^\tchildrenEnd/.test(c):s+="</ul>";b--;break;case /^\tchildren/.test(c):s+="<ul>";b++;n=0;break;case /^\t/.test(c):break;case b==0:break;default:s+=(n)? "<br>":"<li>";s+=c;}}s=s.replace(/<ul><\/ul>/g,"");s+="<br>"+h+"<br>";location=editor+encodeURIComponent(s);



ブックマークレットは WorkFlowy->Evernote か FlowyEver と名付けてください。SafariでWorkFlowyを開き、転送したいページで実行します。使い方はそれだけ。



Evernoteが起動するので、良ければ保存する。パンくずリストを出さない設定にしましたが、ページによっては出てしまうことがあります。今日一日試行錯誤したけど、原因は分からず。あと、元のページを開くURLアドレスも最終行に入れたけど、これもリンク化しない場合があって、その条件も分からないまま。とりあえず動くのでOKで。


とても行儀の悪いHTML構文で書き込んでいるのですが、なんでEvernoteは整形しちゃうんでしょうね。きちんと書くと、かえって構成が崩れてしまう。Evernote自体が勝手に中身を置き換えちゃうので、往生しました。Evernoteでスタイルを削除すると、なんでかMarkdown形式のテキストになるし、ちょっと不思議。一応使えるので完成版とします。