←前のエントリ |  ↑↑Blog |  ↑Category |  ↓Comment |  ↓Trackback |  次のエントリ→

iBlogTagAssist v1.5


iBlogTagAsssist に機能追加したのでv1.5として公開します。

iBlogTagAssistはiBlogのタグ(HTMLCode、blockquote)やエスケープ処理などの入力処理を支援するAppleScriptです。v1.4(v1.4.1)との変更部分を赤く記載しています。

追加機能
  • リンク作成機能
  • 置換機能付きリンク作成機能
  • 素のテキストをペーストする機能
  • textarea対応
  • table対応

※iBlog以外で動作を確認したのは、「テキストエディット」「mi 」です。iBlog以外での動作を可能にするためにhiroさん の教えてくれたサイトkaoru_ariさんのエントリ を参考にさせていただいております。ありがとうございました。
※元に戻す機能は、基本的にiBlogTagAssistにより置換された状態を元に戻すことを前提に作成されています。手動で作成されたものを戻しても正常に動作しない場合がございます。
※もはや、[iBlog]と冠をつける必要はないですが・・
※うまく動作しなかったり、エラーが発生する場合は、カスタマイズのエントリ を参考にしていただき delay_time の値を大きくしてみてください(エントリの一番下の方にあります)。
※今回作成の機能はkaoru_ariさんのエントリ など他の方のアイデアを参考にしているもの多々あります。ありがとうございます。

利点
  • ある程度、まとめてドンと処理できます
  • エスケープするしない、置換するしない、囲むタグなど自由自在にカスタマイズできます。
  • 置換内容を自分で追加できます

このエントリでは、導入方法と使用方法について説明します。
カスタマイズについてはこちらを参照ください。

1.導入方法(インストール)
1.iBlogTagAssist1.5.zip をダウンロードします。
2.適当な場所で解凍します。
3.~/Library/Scripts に置きます。解凍してできたフォルダごといれてください。
4.システム環境設定→ユニバーサルアクセス において「補助装置にアクセスできるようにする」をオンにします。

2.使用方法

2.1 概要
iBlogTagAssist1.5.zipの中身は、複数のAppleScriptより構成されています。
これらのAppleScriptは大きく分けて以下の2つに分類できます。

パラメータなし

HTMLCode
blockquote
pre
textarea
p
ul
ol
br
escape
a
a_w_conversion
as_text
table
r_HTMLCode
r_blockquote
r_pre
r_textarea
r_p
r_ul
r_ol
r_br
r_escape
r_a
table
パラメータあり

iBlogTagAssist

パラメータなしのものは、基本的に処理対象を選択して、対応するAppleScriptを上部メニューにあるスクリプトメニューから選択するだけで処理されます。
ただし、v1.5にて追加された機能は少々使い方が異なります。詳しくはこちら を参照ください。

パラメータありのものは、処理対象の最初か最後の行にパラメータを入力して、iBlogTagAssistというAppleScriptをスクリプトメニューから選択することで処理されます。パラメータがない場合は、下図のような登録済みのエイリアス一覧が表示され、選択されたエイリアスにて処理されます。処理内容はパラメータにより決まります。





2.2 パラメータなしのAppleScriptの使用方法

上述の通り、パラメータなしのものは、処理対象を選択して、対応するAppleScriptを上部メニューにあるスクリプトメニューから選択するだけで処理されます。

各スクリプトの処理は以下のようになります。

HTMLCode

HTMLCodeタグを選択範囲を囲むように作成します。
blockquote

blockquoteタグを選択範囲を囲むように作成します。
pre

preタグを選択範囲を囲むように作成します。
textarea

textareaタグを選択範囲を囲むように作成します(外側にはformタグも作成します)。
p

pタグを選択範囲を囲むように作成します。
ol

olタグを選択範囲を囲むように作成し、選択範囲の1行ごとにliタグを挿入します。
ul

ulタグを選択範囲を囲むように作成し、選択範囲の1行ごとにliタグを挿入します。
br

brタグを選択範囲の改行部分に挿入します。
escape

HTMLエスケープを実施。具体的には以下の置換を行う。

< → &lt;
> → &gt;
& → &amp;
" → &quot;
a

リンク先のURLをコピーした状態で、呼び出すと選択範囲を囲むようにaタグを作成します。
a_w_conversion

リンク先のURLをコピーした状態で、呼び出すと選択範囲を囲むようにaタグを作成します。事前にURLに対して指定された変換が実施されます。
as_text

コピーされている情報から文字のみを現在のカーソル位置にペーストします。Webやリッチテキストなどからの文字だけをペーストしたいときに利用できます。
table

tableタグを選択範囲を囲むように作成し、選択範囲の1行ごとにtrタグを挿入します。その際に選択範囲の各行におけるカンマ[,]ごとにthまたはtdタグを挿入します。thタグは先頭行に、tdタグは先頭行以外に挿入されます
r_HTMLCode

選択範囲を囲んでいるHTMLCodeタグを除去します。先頭行と最終行がHTMLCodeタグである必要があります。
r_blockquote

選択範囲を囲んでいるblockquoteタグを除去します。先頭行と最終行がblockquoteタグである必要があります。
r_pre

選択範囲を囲んでいるpreタグを除去します。先頭行と最終行がpreタグである必要があります。
r_textarea

選択範囲を囲んでいるtextareaタグを外側のformタグと一緒に除去します。先頭行と最終行がformタグである必要があります。
r_p

選択範囲を囲んでいるpタグを除去します。先頭行と最終行がpタグである必要があります。
r_ol

選択範囲を囲んでいるolタグ、選択範囲の各行のliタグを除去します。先頭行と最終行がolタグである必要があります。
r_ul

選択範囲を囲んでいるulタグ、選択範囲の各行のliタグを除去します。先頭行と最終行がulタグである必要があります。
r_br

「brタグ+改行」を改行に置換します。
r_escape

HTMLエスケープの逆置換を実施。具体的には以下の置換を行う。

&lt; → <
&gt; → >
&amp; → &
&quot; → "
r_a

選択範囲を囲んでいるaタグをURL(href属性)とともに除去します。先頭行と最終行がaタグである必要があります。
table

選択範囲を囲んでいるtableタグ、選択範囲の各行のtrタグを除去します。各行のthタグ、tdタグは元のカンマ[,]に戻します。先頭行と最終行がtableタグである必要があります。

2.3 パラメータありのAppleScriptの使用方法

上述の通り、パラメータありのものは、処理対象の上の行にパラメータを入力して、iBlogTagAssistというAlleScriptをスクリプトメニューから選択することで処理されます。処理内容はパラメータにより決まります。

パラメータの書式は次の通りです。

ta[:alias_name] [-tag:tag_targets] [-rtag:tag_targets] [-br] [-conv:convert_list_index] [-esc] [-ol] [-ul[-table] [-rtable] [-rul] [-rol] [-resc] [-rconv:convert_list_index] [-rbr

オプションは記載順に処理されるので注意してください。
例えば

-esc -br
-br -esc

では結果が違います(後者は<br />が文字として表示されます)。

それぞれの意味

alias_name

登録済みの省略名を指定する。ここを指定すると、以降のオプションは無視され、登録名に対応する処理が実行される。対応する名前がないと警告が表示され、何も処理されない。

デフォルトとして、以下のものが登録されている。

esc:HTMLCode、blockquoteで囲み、内容についてエスケープ処理を行う。改行を<br />には置き換える。aタグは<との間にスペースを入れる。
no-esc:HTMLCode、blockquoteで囲み、内容についてエスケープ処理を行わない。改行を<br />には置き換える。
src:HTMLCode、blockquote、preで囲み、内容についてエスケープ処理を行う。改行を<br />には置き換えない。
textarea:HTMLCode、form、textareaで囲む。改行を<br />には置き換えない。
ol:HTMLCode、olで囲み、各行をliタグで囲む。改行を<br />には置き換えない。
ul:HTMLCode、ulで囲み、各行をliタグで囲む。改行を<br />には置き換えない。
table:HTMLCode、tableで囲み、各行をtrタグで囲む。その際、各行のカンマをthタグまたはtdタグで置き換える。改行を<br />には置き換えない。
resc:escの処理を元に戻す。具体的には、HTMLCode、blockquoteの囲みを削除する。spanタグにより認識外にさせていたaタグは元に戻す。「<br />と改行」を改行に置き換える。逆エスケープ処理を行う。
rno-esc:no-escの処理を元に戻す。具体的には、HTMLCode、blockquoteの囲みを削除する。「<br />と改行」を改行に置き換える。
rsrc:srcの処理を元に戻す。具体的には、HTMLCode、blockquote、preの囲みを削除する。spanタグにより認識外にさせていたaタグは元に戻す。逆エスケープ処理を行う。
rtextarea:textareaの処理を元に戻す。具体的には、HTMLCode、form、textareaの囲みを削除する。
rol:olの処理を元に戻す。具体的には、HTMLCode、olで囲みを削除する。各行のliタグの囲みを削除する。
rul:ulの処理を元に戻す。具体的には、HTMLCode、ulで囲みを削除する。各行のliタグの囲みを削除する。
rtable:tableの処理を元に戻す。具体的には、HTMLCode、tableの囲みを削除する。各行のtrタグの囲みを削除する。各行に置けるthタグまたはtdタグをカンマに戻す。

-tag:tag_targets

選択された範囲を囲む形でタグを作成する。 タグはtag_targetsの部分で以下から指定する。複数組み合わせ可能(ex. hb)。指定順に囲まれる(hb ならば、<HTMLCode><blockquote>・・</blockquote></HTMLCode>(改行は省略))。

h:HTMLCodeタグで囲む
b:blockquoteタグで囲む
p:preタグで囲む
t:textareaタグで囲む
P:pタグで囲む

-br

選択された範囲の改行を<br />と改行に置き換える。

-conv:convert_list_index

選択された範囲内に置いて、置換を行う。置換内容は、convert_list_indexにて指定されたもの。詳しくはこちら を参照。

-esc

HTMLエスケープを実施。具体的には以下の置換を行う。

< → &lt;
> → &gt;
& → &amp;
" → &quot;

-ol

olタグを選択範囲を囲むように作成し、選択範囲の1行ごとにliタグを挿入します。

-ul

ulタグを選択範囲を囲むように作成し、選択範囲の1行ごとにliタグを挿入します。

-table

tableタグを選択範囲を囲むように作成し、選択範囲の1行ごとにtrタグを挿入します。その際に選択範囲の各行におけるカンマ[,]ごとにthまたはtdタグを挿入します。thタグは先頭行に、tdタグは先頭行以外に挿入されます。

-rtag:tag_targets

選択された範囲を囲んでいる該当タグを削除する。 タグはtag_targetsの部分で以下から指定する。複数組み合わせ可能(ex. hb)。指定順に削除される(hb ならば、最初に大外のHTMLCodeが削除され、次にその内側にあるblockquoteが削除される)。

h:囲んでいるHTMLCodeタグを除去する
b:囲んでいるblockquoteタグを除去する
p:囲んでいるpreタグを除去する
t:囲んでいるtextareaタグをformタグごと除去する
P:囲んでいるpタグを除去する

-rbr

選択された範囲の「<br />と改行」を改行に置き換える。

-rconv:convert_list_index

選択された範囲内において逆置換を行う(通常の置換元テキストと置換先テキストが逆となる。通常A→Bという置換であれば逆置換はB→Aとなる)。置換内容は、convert_list_indexにて指定されたもの。詳しくはこちら を参照。

-resc

HTMLエスケープの逆置換を実施。具体的には以下の置換を行う。

&lt; → <
&gt; → >
&amp; → &
&quot; → "

-rol

olタグ、選択範囲の各行のliタグを除去します。

-rul

ulタグ、選択範囲の各行のliタグを除去します。

-rtable

tableタグ、選択範囲の各行のtrタグを除去します。各行のthタグ、tdタグはカンマに置き換えられます。


2.4 具体例

パラメータなしのものについては、処理対象のテキストを選択して、処理したいAppleScriptを選択するだけですのでv1.5で追加された物以外は具体例は省略します。この節で先頭行と書いてあるものは最終行でもOKです(書かないと実行時に選択することとなります)。

2.4.1 HTMLの一部をHTMLとして処理されずにiBlogのエントリ内に表示したい。

<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

例えば、このようなHTMLの一部をHTMLとして処理されずにiBlogのエントリに表示したい場合、HTMLのエスケープを実施する必要があるので、デフォルトで用意されている"esc"エイリアスを次のようにして利用するのが簡単です。

まず、次のように

ta:esc
<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

先頭行に"ta:esc"を入力します。

次に、先頭行を含めて全体を選択して、iBlogTagAssist AppleScriptを選択します。すると

<HTMLCode>
<blockquote>
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;amp;feedId=cheep&quot;&gt;&lt;/script&gt;<br />
</blockquote>
</HTMLCode>

のように簡単に置換されます。

実際の出力結果は

<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

のようになります。


2.4.2 HTMLの一部をHTMLとしてiBlogのエントリ内に表示したい。

<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

のようなHTMLの一部をHTMLとして処理されるようにするには、デフォルトの"no-esc"エイリアスを利用するのが簡単です。

まず、次のように

ta:no-esc
<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

先頭行に"ta:no-esc"を入力します。

次に、先頭行を含めて全体を選択して、iBlogTagAssist AppleScriptを選択します。すると

<HTMLCode>
<blockquote>
<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script><br />
</blockquote>
</HTMLCode>

のように簡単に置換されます。

実際の出力結果は



のようになります。
#「ここで読む」だとうまく表示されないかもしれません。個別でつづきを読む... でお願いします。


2.4.3 ソースを表示したい。

-- replace text
on my_replace_text(theText, theFrom, theTo)
	set _list to my_divide_text(theText, theFrom)
	set _result to my_concat_text(_list, theTo)
	return _result
end my_replace_text

のようなHTMLの一部をHTMLとして処理されるようにするには、デフォルトの"src"エイリアスを利用するのが簡単です。

まず、次のように

ta:src
-- replace text
on my_replace_text(theText, theFrom, theTo)
	set _list to my_divide_text(theText, theFrom)
	set _result to my_concat_text(_list, theTo)
	return _result
end my_replace_text

先頭行に"ta:src"を入力します。

次に、先頭行を含めて全体を選択して、iBlogTagAssist AppleScriptを選択します。すると

<HTMLCode>
<blockquote>
<pre>
ta:src
-- replace text
on my_replace_text(theText, theFrom, theTo)
	set _list to my_divide_text(theText, theFrom)
	set _result to my_concat_text(_list, theTo)
	return _result
end my_replace_text
</pre>
</blockquote>
</HTMLCode>

のように簡単に置換されます。

実際の出力結果は

-- replace text
on my_replace_text(theText, theFrom, theTo)
	set _list to my_divide_text(theText, theFrom)
	set _result to my_concat_text(_list, theTo)
	return _result
end my_replace_text

のようになります。

2.4.4 元に戻したい

<HTMLCode>
<blockquote>
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;amp;feedId=cheep&quot;&gt;&lt;/script&gt;<br />
</blockquote>
</HTMLCode>

例えば、escエイリアスを利用して置換された上記のような結果をもとの状態に戻したい場合、"esc"エイリアスに対応した"resc"エイリアス(デフォルトで用意されています)を次のようにして利用するのが簡単です。

まず、次のように

ta:resc
<HTMLCode>
<blockquote>
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;amp;feedId=cheep&quot;&gt;&lt;/script&gt;<br />
</blockquote>
</HTMLCode>

先頭行に"ta:resc"を入力します。

次に、先頭行を含めて全体を選択して、iBlogTagAssist AppleScriptを選択します。すると

<script language="javascript" type="text/javascript" src="http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsAlpha.woa/wa/piyoFeeds?userId=kuki&amp;feedId=cheep"></script>

のように簡単に元の状態に戻ります。

2.4.5 順序付きリストを表示したい場合

最初の項目
2番目の項目
3番目の項目
最後の項目

例えば、上記のような項目リストを順序付きのリストにしたい場合、"ol"エイリアス(デフォルトで用意されています)を次のようにして利用するのが簡単です。

まず、次のように

ta:ol
最初の項目
2番目の項目
3番目の項目
最後の項目

先頭行に"ta:ol"を入力します。

次に、先頭行を含めて全体を選択して、iBlogTagAssist AppleScriptを選択します。すると

<HTMLCode>
<ol>
<li>最初の項目</li>
<li>2番目の項目</li>
<li>3番目の項目</li>
<li>最後の項目</li>
</ol>
</HTMLCode>

のようになります。実際の表示は

  1. 最初の項目
  2. 2番目の項目
  3. 3番目の項目
  4. 最後の項目

となります。

2.4.6 表を作成したい場合
項目名値名1値名2値名3
項目1値11値12値13
項目2値21値22値23
項目3値31値32値33

例えば、上記のような表を作りたい場合、"table"エイリアス(デフォルトで用意されています)を次のようにして利用するのが簡単です。
ここでは、先頭行などにパラメータを指定しないで選択する方法で説明します。
まず、次のように

項目名,値名1,値名2,値名3
項目1,値11,値12,値13
項目2,値21,値22,値23
項目3,値31,値32,値33

表に入れたい内容を入力します。
次に、全体を選択して、iBlogTagAssist AppleScriptを選択します。すると



エイリアスを選択するウィンドウが表示されるので、tableを選び、OKを押します。
すると、

<HTMLCode>
<table border="1">
<tr><th>項目名</th><th>値名1</th><th>値名2</th><th>値名3</th></tr>
<tr><td>項目1</td><td>値11</td><td>値12</td><td>値13</td></tr>
<tr><td>項目2</td><td>値21</td><td>値22</td><td>値23</td></tr>
<tr><td>項目3</td><td>値31</td><td>値32</td><td>値33</td></tr>
</table>
</HTMLCode>

のようになります。実際の表示は最初に示したように
項目名値名1値名2値名3
項目1値11値12値13
項目2値21値22値23
項目3値31値32値33

となります。


2.4.7 リンクを作成したい場合
リンクは、
<_a href="(リンク先のURL)">(リンク用の文字列)</a>

という構造をしています。

リンクを作成するためには、
  • リンク先のURL
  • リンク用の文字列

の情報が必要になります。そこで、リンク作成のためのパラメータなしのスクリプト(a、a_w_conversion)は、
  1. リンク先のURLをコピー
  2. リンク用の文字列を選択

という手順を踏んでから呼び出す必要があります。

例えば、
my cheep blog

という文字列に、
http://www.piyosystems.com/kuki/B1356262698/index.html

というURLのリンクを作成したい場合は、まずURLをコピーします。

コピーされた状態で、リンクを作成したい文字列である、[my cheep blog]を選択状態にします。
そして、リンク作成のアップルスクリプト(a、a_w_conversion)を選択します。
すると、
<_a href="http://www.piyosystems.com/kuki/B1356262698/index.html">my cheep blog</a>

[my cheep blog]という文字列が上記のように置き換わります。

実際には、

my cheep blog

というリンクとなります。

a_w_conversion はコピーされているURLに特定の置換を実施したい場合に利用します。
例えば、iBlogにてプレビューした状態では、リンク先のURLは[file:///xxx]などのようにローカルのファイルを参照することとなり、実際の公開時のURLと異なります。
実際の公開時のURLとプレビュー時のURLは規則性があるので置換することが可能です。よって、公開前に公開後のエントリへのリンクを作成したい場合などにURLを置換する機能は有効になります。
置換の設定はカスタマイズのエントリを参照して下さい。


以上です。
個人的にはかなり便利に使っています。

一応試験はしておりますが、バグ等のご報告はこちらのコメントまでお願いします。
改変はご自由にどうぞ。トラックバックしてくれるとうれしいです。

なお、こちらのスクリプトを利用したことによるいかなる損害にも一切責任を負いませんので自己責任でお願いします。#お約束。

( ・∀・)つ〃∩ ヘェーヘェーヘェー">
投稿時間: 2005年02月11日 (金) at 01:45   

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→

ブックオフオンライン

←前  |  ↑↑Blog |  ↑Category |  ↑Entry top |  ↑Comment |  次→