台風の影響で外は大雨。
Textwell 1.0
分類: 仕事効率化,ユーティリティ
価格: \250 (Sociomedia)
時間もたっぷりあるし、大物の移植に取り掛かりました。まだBubblesが登場してないので、段落単位での移動や削除がしづらくなっています。いずれ出るのでしょうけど、それでもオンラインが前提かもしれません。ReLineは簡素なリスト形式ですが、スタンドアローンで動きます。段落の順序を並べ替えるとき威力を発揮します。
<meta name=viewport content=initial-scale=1,maximum-scale=1> <meta name=format-detection content=telephone=no> <body style=background:lightgray;margin:0;> <title>ReLine</title> <div id=wine></div> <script> preview=1; last=0; list=new Array(); stack=new Array(); wine.ongesturestart=function(){preview=1-preview;Disp()}; T.closelets([ {title: "保存します", fn: function(){ s=list.join("\n"); T('replaceWhole',{text:s, nextAction:T.range.loc=last}); } }], function(){ list=T.whole.split("\n"); Disp() }) function Minus(x){ stack.push(list[x]); list.splice(x,1); Count(x) } function Plus(x){ s=(stack.length>0)? stack.pop():""; list.splice(x,0,s); Count(x) } function Count(x){ last=0; for(i=0;i<x;i++)last+=list[i].length+1; Disp() } function Disp(){ s="<hr>"; for(i=0;i<list.length;i++){ content=(preview==1)?list[i]:list[i].replace(/</g,"<"); s+="<table width=100%><td valign=top align=center onClick=Minus("+i+") style=width:32px;color:lightgray;background:darkred;>"+("000"+(i+1)).slice(-4)+"</td><td onClick=Plus("+i+")>"+content+"</td></table><hr>\n"; } wine.innerHTML=s; T.title("ReLine: "+stack.length); } </script> </body>
登録リンクはこちら→ http://tinyurl.com/oldqevn
ブログの下書きをプレビューする。このとき、各行がカードとして扱えるようになります。たとえば、行番号の書いてある赤帯をタップしてみてください。一瞬でその行が消えますよね。大事な行を消してしまっても、閉じるときに「保存」を選ばなければ本文には反映しません。思う存分削って、読める文章になっているかチェックできます。
では、消えた行を復活させたいとき、どうするか。それは、行番号以外のところをタップ。タップされた行の一つ前に、直前に消えた行が挿入されます。こうして段落の移動ができる。しかも複数行を連続して消した場合は、その順番に復活。束での移動ができます。
デフォルトがプレビューになっているので、中のコードを確かめたいときは、二本指でスワイプしてください。これでコード表示に変わります。
実は未完成。タイトルバーに表示するT.title()が動かないので、行関連の情報が出せません。また、本文を更新した後、カーソル位置も変更したいのですが、そのための解決策が見つからない。微妙にDraftPadと書式が違うため、基本機能のみの実装になります。