TextwellでMarkdownを書くためのMDToolsを修正しました

走らないアクションがいっぱい・・・。


Textwell 1.3
分類: 仕事効率化, ユーティリティ
価格:¥300 (Sociomedia, Inc.)

Textwellが1.3になって内蔵ブラウザの仕様が変更されました。むっちゃ速くなってる。その代わり、iOS8絡みのバグまで引き継いじゃいました。仕方ないですよね。Appleが修正版を出すまで、動かないアクションは動かないままです。


TextwellでMarkdownを書くためのアクション・メニュー MDTools
もう一度作る自信はない。Markdown用ツールを一つのメニューにまとめました。前回とは違い、階層メニューに挑戦。グループからアクションを選ぶ方式です。というか、階層化できるんですねえ。実験のつもりで...
T.loadlets()がWKWebView経由に変わり、階層化できなくなりました。旧版は、メニューを選ぶと反応が止まっちゃうと思います。単層型に作り直し。

T.loadlets([{title:"【MDTools】",
  fn:function(){T.close();}},

{title:"見出し",
fn:function(){
    s="#"+T.current;
    T("replaceCurrent",{text:s});
}},
{title:"連番あり",
fn:function(){
  c=T.current;
  s=(/^[0-9]\. /.test(c))? c.replace(/^[0-9]\. /mg,"") : c.replace(/^(- )?/mg,"1. ");
  T("replaceCurrent",{text:s});
}},
{title:"連番なし",
 fn:function(){
  c=T.current;
  s=(/^(- )/.test(c))? c.replace(/^(- )/mg,"") : c.replace(/^([0-9]\. )?/mg,"- ");
  T("replaceCurrent",{text:s});
}},
{title:"強調",
fn:function(){
  s=T.current.replace(/^/mg,"**").replace(/$/mg,"**");
  T("replaceCurrent",{text:s});
}},
{title:"引用",
fn:function(){
  c=T.current;
  s=(/^> /.test(c))? c.replace(/^> /mg,"") : c.replace(/^/mg,"> ");
  T("replaceCurrent",{text:s});
}},
{title:"外部URL",
fn:function(){
  c=T.current;
  s=(/^https?:/.test(c))? "[ TITLE ]("+c+")" : "["+c+"]( URL )";
  switch(true){
    case /\.jpg$/.test(c):
    case /\.gif$/.test(c):
    case /\.png$/.test(c): s="!"+s;
  }
  T("replaceCurrent",{text:s});
}},
{title:"水平線",
fn:function(){
  s="\n- - - - -\n";
  T("insert",{text:s});
}},
{title:"プレビュー",
fn:function(){
  T.translucent(false);
  T("markdownPreview");
}}
],function(){location="about:blank"})

Import Textwell ActionMDTools



使えるメニューの数を減らしてます。よく使う分に限定。



選択範囲に対し「連番あり」を実行してみました。数字が付いてます。



「プレビュー」を選ぶと、Markdownが反映します。公式のアクションをそのまま借りているから、閉じるときHTMLにも変換できます。


Markdownの利点は手打ちでどんどん書けることなので、範囲を選んで一気に変換するアクションをメインにメニューに組み込みました。「連番あり」で連番付きにした範囲については、再度「連番あり」を行うと連番を外します。プレーンに戻す。どれも「動けば正義」のスクリプトなので、難しい操作には対応していません。多段リストには使えない。そこは、知恵と勇気で乗り切ってください。


【おまけ】

Markdownが何か知らない人はエミネムさんに教えてもらおう。