高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

Check*Pad内容をカラーリングするGreaseMonkeyスクリプト

時間がないときに限ってプログラミングが無性にやりたくなるものですね、
表題の通りのスクリプトを作成してみました。右上の写真のような感じです。

// ==UserScript==
// @name           Check*Pad Coloring
// @namespace      chie@tamago.soup.jp
// @description    Check*Pad Coloring Tasks
// @include        http://www.checkpad.jp/?mode=pjt&act=detail&id=*
// ==/UserScript==

(function() {
  var ms_box = document.getElementById("ms_box_notyet");
  var colors = ["", "#BF7360", "#60BF96", "#9F60BF", "#BF608A", "#73BF60"];
  var ci     = 0;
  var preTag = "";
  var nowTag = "";
  for(var i = 0;i < ms_box.childNodes.length;i++)
  {
    var n = ms_box.childNodes[i];
    if(n.nodeName.match(/div/i))
    {
      var iid = n.id.match(/(\d+)$/)[0];
      var text = document.getElementById("ms_" + iid + "_edit").value;
      if(text.match(/^\[(.+)\]/) || 
        text.match(/^【(.+)】/) || 
        text.match(/^([●■▲★◆○□△☆◇※◎▽▼])/) ||
        false)
      {
        nowTag = RegExp.$1;
      }else{
        nowTag = "";
      }
      if(preTag != nowTag) 
      {
        preTag = nowTag;
        ci++;
      }
      n.style.color = colors[ci];
      if(ci >= colors.length) ci = 1;
    }
  }
})();

タスクリストなど、角括弧や墨付き括弧でのカテゴライズがなされている場合、各カテゴリを色分けして表示することができます。ついでにタグが一個もないタスクリストでは、色が変わりません。
編集時に色がそのままになるなどいろいろ問題もありますが、とりあえず公開してみます。
Check*Padはいろんな意味でシンプルなチェックリストなので、何かと使える機会があるかもしれません。ちょっといろいろ使ってみようかな。