読者です 読者をやめる 読者になる 読者になる

#ToDo 関連のメモ ( #sorashima )

「物の状態が最終的にこうなっていたら良いな一覧と、その為の手順を書き込む」アプリを使う上でのメモなど。(内容が古いまま、間違ったままもあるので注意。)広告が自動で挿入される無料版ブログサービスを利用しているので、PVが増えても一銭の得にもなりませぬ

[ 記事一覧へ ]

#HandyFlowy TagListUni改

HandyFlowy WorkFlowy

aitatena氏のTagListUniW&R氏のSelectCopyの「Copy」ボタン部分のソースをコピペするなどして、お手軽改造。

変更点:

  • オリジナル版はTagリストからTagを選ぶと同一タブで表示するが、タブ1のリストから選ぶとタブ2で表示するようにした
  • Tagリストはクローズボタンを押すまで消えないようにした

それだけ。

注意点:

  • タブ1で実行する
  • タブ1に戻った時に「閲覧モード」だとTagリストがタップに反応しないので「編集モード」にして操作する
  • メモリが少ない場合は、タブ1に戻った時にアウトライン再読込になるかもしれない


@2016-04-31をタップするとタブ2で開く

TagListUni改3

var url = "https://workflowy.com/get_initialization_data";
var q = new XMLHttpRequest();
q.open("get", url, false);
q.send(null);
var data = q.responseText;

 data = data.replace(/\\u([a-fA-F0-9]{4})/g, function(match, p1) {
     return String.fromCharCode(parseInt(p1, 16))
 });

var list = new Array();
var tag = "@";
for (var k = 0; k < 2; k++) {
    var d = data.split(tag);
    for (var i = 1; i < d.length; i++) {
        var s = d[i].split(" ")[0].split("\"")[0].split("\\")[0];
        if (s && !/[;{)\/\+]/.test(s) && list.indexOf(tag + s) == -1) list.push(tag + s);
    }
    tag = "#";
}
list.sort();

var listwidth = 320;
var listleft = (window.innerWidth - listwidth) / 2;
var html = "";
for (var i = 0; i < list.length; i++) {
    html += "<div class='tags' style=padding:5px;overflow:hidden;white-space:nowrap;display:inline-block;>" + list[i] + "</div>";
}

var e0 = document.createElement("div");
e0.innerHTML = html;
e0.style.cssText = "color:black;background:beige;font-family:Hiragino Sans;font-weight:bold;position:fixed;overflow:scroll;text-align:left;height:72%;top:14%;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(e0);
e0.addEventListener("click",Select, false);

var e1 = document.createElement("div");
e1.innerHTML = "<div onclick=Close() style=\"padding:10px;font-size:large;font-family:sans-serif;font-weight:bold;color:black;background:aqua;border-radius:5px;\">Close</div>";
e1.style.cssText = "position:fixed;text-align:center;top:87%;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(e1);

function Select(evt) {
    if (evt.target && evt.target.nodeName == "DIV" && evt.target.attributes.item(0).nodeValue == "tags") {
        qid = encodeURIComponent("?q=" + encodeURIComponent(evt.target.innerText) + "+");
        window.open("handyflowy://open?tab=2&topic=" + qid);
    }
}

function Close() {
    e0.removeEventListener("click", Select, false);
    document.body.removeChild(e0);
    document.body.removeChild(e1);
    url = q = data = list = tag = k = d = i = s = listwidth = listleft = html = e0 = e1 = qid = null;
}

スクリプトのインストールは慎重に。
スクリプトのインストール及びご使用は各自の自己責任でご利用ください。
スクリプトの使用によって、利用者および第三者に損害が発生したとしても、当方は一切責任を負わないものとします。

ScriptMaker等でインストール可能。

HandyFlowyの開発者の山本様、HandyFlowyのURLスキーム上の漢字コードのエンコード処理についてのアドバイス有難うございました。

追記 @2016-05-30

Unicodeの文字処理をStringオブジェクトを使うように変更したのと、リストから選ぶイベントをEvent delegationしたなど、少し手を加えた。

広告を非表示にする