1タップで定型句を貼り付けるTextwellアクション"Stamp"

メールアドレスなどの定型句をスタンプのようにペタンと貼り付けたい。iOSの辞書登録やTextExpanderでもできるけれど、登録や編集がちょっと面倒だったり、読みを考えたり覚えたりするのも意外に面倒。そこでTextwellのアクションを一つ作成した。

苦労したのは、定型句をメンテナンスしやすい状態で書き込んでおくところ。試行錯誤の末、内蔵ブラウザでは使いそうにないmetaタグの中に書いておくことを思いついた。これであれば定型句をクオートしたりカンマでつなげたりしなくてよいので楽。

<html><head><meta name='keywords' id='stamps' content='
今オフィスを出ました
dummy@business.com
dummy@private.com
(署名)
ありがとうございます。
'>
<meta name=viewport content=initial-scale=1,user-scalable=no>
<title>Tap to stamp</title>
<style>
body {
  font-size: large;
  font-family: sans-serif;
}
p {
  margin-bottom: 0.5em;
}
a {
  display: inline-block;
  background-color: #ddd;
  border-radius: 0.2em;
  margin: 0.1em;
  padding: 0.5em;
}
</style>
<body id='theBody'>

<script>
// 現在日・時刻スタンプ
var d = new Date();
var stamps = new Array(
  d.getFullYear()+'-'+Zero(d.getMonth()+1)+'-'+Zero(d.getDate()),
  Zero(d.getHours())+':'+Zero(d.getMinutes())
);
// カスタムスタンプを配列に追加
stamps = stamps.concat(document.getElementById('stamps').content.split('\n'));

// temporary holder
var tempBody = document.createDocumentFragment();

// ペーストボードにもコピーしておくか?
var cpCheck = document.createElement('input');
cpCheck.type = 'checkbox';
cpCheck.id = 'cpCheck';
var cpLabel = document.createElement('label');
cpLabel.htmlFor = cpCheck.id;
cpLabel.appendChild(document.createTextNode(' -> Pasteboard'));

// 1行目
var theP = document.createElement('p');
theP.appendChild(cpCheck);
theP.appendChild(cpLabel);
tempBody.appendChild(theP);

// スタンプの生成
for( var i=0, l=stamps.length; i < l; i++ ) {

  // 空文字はスキップ
  if( '' == stamps[i] ) continue;

  var anA = document.createElement('a');
  anA.textContent = stamps[i];
  anA.onclick = function() {process(this)};
  tempBody.appendChild(anA);
}

// ペーストボード
var pB = document.createElement('p');
pB.appendChild(document.createTextNode('(Current pasteboard)'));
pB.appendChild(document.createElement('br'));
pB.appendChild(document.createTextNode(T.pboard));
tempBody.appendChild(pB);

// 書き込み
document.getElementById('theBody').appendChild(tempBody);

// スタンプを挿入
function process( selected ){

  // ペーストボードにもコピー
  if( cpCheck.checked == true ){
    T.copy(selected.textContent);
    T('done'); // Text viewにも挿入する場合はこの行を削除
  }

  // カーソル位置に挿入
  T(
    'insert', {
      text: selected.textContent
    }
  );
} // precess()

// Add Zero to 1-9
function Zero( n ){
  return (n<10) ? '0'+n : n;
}
</script>

</body></html>

概要

1タップで定型句を貼り付ける

機能

  • -> Pasteboard をチェックしてからタップすると、ペーストボードにコピーされる
  • 現在のペーストボードの内容が最下部に表示される

定型句のカスタマイズ

  • ソースコードの2行目から '> で始まっている行の直前までにある文字列が改行単位で定型句として認識される

その他

http://www.ki-dousen.net/docs/content/2937

Import Textwell ActionStamp


友達に伝える
タグ: Textwell
作成: 2015/2/27 by:koji
更新: 2015/2/27 by:koji


Textwellで正規表現を検索 → マッチ結果のハイライト → 置換プレビュー → 置換

Tech

内蔵ブラウザで最後に開いたページをSafariで開き直す(Textwell)

新規ユーザー登録(無料)

  • メールニュース[週刊起-動線]の購読
  • コメントなどの投稿
  • ココロミの利用
  • 一部コンテンツの購読

ログイン

コメント

タグ(キーワード)