HandyFlowyで複数トピックをコピーする拡張スクリプト SelectCopy

選んでコピー。


半分白紙に戻す

HandyFlowy 1.0
分類: 仕事効率化,ユーティリティ
価格: 無料 (Michinari YAMAMOTO)

WorkFlowyにネタを書いていると「こりゃ、書き直したほうが早いや」という事態が起こる。風呂敷を広げると展開が新しすぎて、そこまで書いた分がシックリ来なくなります。かと言って、ゼロにするのもちょっと違う。種になるトピックだけ持っていきたい。

そういうとき、複数トピックをクリップボードに保存する方法です。

MemoFlowy経由で登録→ http://tinyurl.com/z24zb9f


一覧から選択

スクリプトを起動すると表示中のトピックが表示されます。残したい分をタップで選択すると、選ばれたトピックは背景がグレーになる。下段のCopyボタンを押してクリップボードに保存すれば完了。キャンセルする方法はなく「Copy」一択です。


一気にペースト

新しいトピックを開き、その下位項目にペーストします。すると、選んだトピックが全部追加される。段差は付きません。フラットなリストが生成します。


まとめ

トピックを作り直す。WorkFlowyは作り直すごとに洗練されていきます。とはいえ、それまで出てきたアイデアも継承したい。項目を限ることで、連想の繋がり方が変わる。

段差のコピーではないので下位項目は付いてきません。トピック単体の複写です。その点にご注意してお使いください。この機能拡張スクリプト、働きますよ。


スクリプト本体

思いつきで作ったので、構成が冗長ですけど。

p=pageContainer.querySelector(".project .selected").querySelectorAll(".project >.name");
list=new Array();
tag=new Array();
for(i=0;i<p.length;i++){
s=p[i].innerText;
if(s!="\n") list.push(s);
}
listwidth=320;
listleft=(window.innerWidth-listwidth)/2;
html="<hr style=border-color:#eee;>";
for(i=0;i<list.length;i++) {
tag[i]=0;
html+="<div onclick=Select("+i+") id=item"+i+" style=\"padding:5px;overflow:hidden;white-space:nowrap;\">"+list[i]+"</div><hr style=border-color:#eee;>";
}

e=document.createElement("div");
e.innerHTML=html;
e.style.cssText="color:darkblue;background:white;position:fixed;overflow:scroll;font-size:medium;text-align:left;height:68%;top:12%;left:"+listleft+"px;width:"+listwidth+"px;z-index:99;border:1px white solid;box-shadow:5px 5px 5px 5px rgba(0,0,0,0.2);";
document.body.appendChild(e);

e0=document.createElement("div");
e0.innerHTML="<div onclick=Copy() style=\"padding:10px;font-size:large;font-family:sans-serif;font-weight:bold;color:black;background:aqua;border-radius:5px;\">Copy</div>";
e0.style.cssText="position:fixed;text-align:center;top:82%;left:"+listleft+"px;width:"+listwidth+"px;z-index:99;border-radius:5px;box-shadow:5px 5px 5px 5px rgba(0,0,0,0.2);";
document.body.appendChild(e0);

function Select(x){
tag[x]=1-tag[x];
document.getElementById("item"+x).style.backgroundColor=(tag[x])? "lightgray":"white";
}

function Copy(){
document.body.removeChild(e0);
document.body.removeChild(e);
text="";
for(i=0;i<list.length;i++) if(tag[i]) text+=list[i];
webkit.messageHandlers.CopyToClipboard.postMessage(text);
}