2007/05/14

[リリース]   MTで改行の反映とURL自動リンクだけするテキストフィルタープラグイン「hirosikitextfilter」

at 19:31JST
 
作りますた。

・hirosikitextfilterとは

MovableType 3.2以上用のプラグインです。使用中MTのplugins/ディレクトリに置くと、blogの「環境設定」→「設定」→「新規投稿」画面で
「改行設定」

「改行を変換+URL自動リンク(ひろ式)」
が新たに追加されます。

これを指定して新たに記事を投稿すると、生成されるページのHTMLが下記のようになります。
・改行したところが自動的に<br />に変換される
・http... で始まるアドレスが自動的にリンクに変換される
フリーBLOGサービスの「Seesaa BLOG」の動作に近くなります。

そのほかの特徴:
・下記のタグの中では改行の自動変換が起きません
 pre, script, object, embed, textarea, table, dl, menu, dir
・下記のタグの中ではアドレスの自動リンク変換が起きません
 a, pre, script, object, embed
・自動リンク対象となるのは下記のプロトコルです
 http, https, ftp, mailto, gopher

そのほかのデメリット系の特徴:
・MT標準の自動改行と異なり、pタグを使用しません。MTのこの動作にはやや問題があるので採用しませんでした。あとあとニーズがあれば対応するかもしれません
・動作にperlのHTML::TokeParserモジュールが必要です。MTが動く環境ではほとんど導入されていると思いますが…(本腰を入れればなくても動くように修正できると思います)
・作成したエントリの改行コードがサーバOSの改行コードに統一されます(かなり専門的)

→ダウンロード
 hirosikitextfilter.pl
 2007/05/14 バージョン2

ライセンス:
勝手に使ってください

謝辞:
MTのpluginは初めて作ったので、藤本壱氏の「ModTextFilter」の大枠をそのままパ(検閲)参考にしました_o_




以下は余談。

なぜこんなのを作ったかというと、
・SeesaaからMTに移行したい
・PC/インターネットに詳しくない人でもMTを直感的に使えるようにしたい
という必要からです。

調べてみたら
「単純にURLを自動リンクにする*だけ*」
のプラグインというのがMTには存在しないようなので自分で作りました。そうしたら、見た感じではMTのテキストフィルタープラグインってチェーンにできないのね…。しかたないので改行部分も自分で作りました。

MT向けにはほかにもいくつか優れたプラグインがありますが、

・mt-sukeroku-plus.pl Ver.1.00
http://hsj.jp/works/2004/08/01/movabletypetextformat_mtsukero_17.html

自動リンク以外ははてな、Wiki形式。ちょっとふつうの人に勧めるのは…。

・ModTextFilter
http://www.sixapart.jp/movabletype/plugins/modtextfilter.html

改行にこだわっている優良プラグインなのだけれど、URL自動リンクはできない…。

みたいでした。


で、MTはコメント部分のHTML化については
「自動改行+URL自動リンク」
の機能があります。

こいつのメソッドを流用すれば速攻でプラグインができると思ったら、実はいくつか気になる点が。たとえば、
this is test. 
http://www.yahoo.co.jp/
<a href="http://www.foo.co.jp/">http://www.yahoo.co.jp/ </a>
test.
というテキストを投稿したとします。

これ、Seesaa BLOGでは、HTMLを解析して
this is test.<br /> 
<a href="http://www.yahoo.co.jp/" target="_blank">http://www.yahoo.co.jp/ </a><br />
<a href="http://www.foo.co.jp/">http://www.yahoo.co.jp/ </a><br />
test.<br />

と変換してくれます(正確には改行は削除されます)。Seesaaエロイ。いや、エライ。しかし、MTのコメント部分用のフィルターでは、
<p>this is test.<br /> 
<a href="http://www.yahoo.co.jp/" rel="nofollow">http://www.yahoo.co.jp/</a><br />
<a href="http://www.foo.co.jp/" rel="nofollow"><a href="http://www.yahoo.co.jp/" rel="nofollow">http://www.yahoo.co.jp/</a></a><br />
test.</p>

となってしまいます。つまり、HTMLの要素をあまりきちんとチェックしていないのですね。軽快さを重視しているのでしょう。

で、ぼくは些末なことを気にするタイプなので自分で作りました。その際、Seesaaでは↑のサンプルを見るとわかるように
「pre、scriptなどの中のテキストも
 改行挿入・URL自動リンク化されてしまう」
という問題があったので、こいつも解消して便利にしてしまうことにしました。

もうひとつ。
このフィルターでは、段落をpで囲みません。すべてbrによる強制改行に変換されます。
「なにそれ、論理マークアップになってないじゃんm9(^Д^)プギャー!」
と言われそうですが無視です(ちなみにぼくは無宗教なので「HTMLは論理マークアップ言語である」などという古代バビロニア神話は信じていません)。というのは、MTの
「段落をpで囲む」
標準のアルゴリズムには問題があって、まじめに段落認識させようとするとめんどくさかったからです。

MTでは、たとえば、
aaaa 
<font color="red">
red

not red
</font>
bbbb
と入力すると、
<p>aaaa 
<font color="red">
red</p>

<p>not red
</font>
bbbb</p>

と変換してくれてしまいます。
「fontなんか使うな!」
「そんなの投稿する人がタグに配慮すればいいんだよ!」
という人もいそうですが、それじゃCMSの意味がぜんぜんないですね。ということなので、プラグマティックに「見た目そのままにbrを挿入する」ようにしました。

ただし、TokeParserまで引っ張り出してきているくらいなので、ホントはマジメに書けばこれもpを使ったマークアップに対応できるはずです。めんどうなのでパス。誰か興味をもってくれるかわいい女の子がいたら書き直すかもしれません。

つーことでたいしたことないプラグインですが、後半の諸事情にちょっと不満をもったのでブチまけがてら公開しておきます。

関連しそうな過去記事:
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/41793651

この記事へのトラックバック

MT プラグイン:Movable Typeで記事内のURLを自動リンクさせる
Excerpt: 参考リンクなどをつけるときに 記事内のURLが自動でリンクしたらいなぁとおもって...
Weblog: kubolog - クボログ:久保のブログ -
Tracked: 2007-06-06 23:36

「hirosikitextfilter」はXML-RPCぶん回しにも有効だった
Excerpt: 生成されるページのHTMLが下記のようになります。 ・改行したところが自動的に...
Weblog: 不惑仔
Tracked: 2008-05-06 21:17
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。