• 更新:
  • 投稿:
  • カテゴリィ:

世のMovable Typer(造語)の中でも、Xyzzy愛用者に送る記事です。

Windowsのテキストエディタ・XyzzyでHTMLを書くときに便利なのが、html+-modeです。自分も、「Xyzzy + html+-mode」の組み合わせを愛用しています。

ただ、Movable Typeのテンプレートを編集しているときにhtml+-modeを利用すると、いろいろと問題があります。

どうしてXyzzyに「mt-mode」が無いのかなーと疑問に思いつつ、「Web上から人様の作ったコードをパクって来て、適当にでっち上げる」という、いつもの手法(asiamothメソッド)で問題を解決してみました。

xyzzy: mt-mode!?こんな感じで、MTタグも色分けされるようになります。

2005-09-22T13:02:40+09:00 追記

"mt-kwd.txt"に下記プラグイン用のタグを追加しました。また、タグの閉じ方がおかしかった(説明が難しい)ので修正しました。

2005-09-23T13:17:23+09:00 追記

重複行が200行くらいあったので削除しました(……)。また、"If"が付くタグがほとんど閉じていなかったのを修正しました。

MT + html+-modeの問題点

普通にMTのテンプレートをhtml+-modeで編集する時は、以下の問題があります。

  1. MTタグが色分けされない
  2. インデントを行うときにMTタグが先頭にあると、インデントがずれる

他にも問題はあるのかもしれませんが、パッと思いつくのは以上ですね。

要するにこれは、「MTのタグが、(HTML)タグと扱われない」から起こるわけです。

解決方法

解決方法は単純で、「MTタグのキーワードファイルを作る」ということです。要するに、html+-modeを利用しているときに、通常のHTMLタグだけではなく、「MTタグも認識するためのファイル」を作ればいいわけです。

html+-mode本体をごにょごよして──というのは、今の自分には無理です……。

で、実際どうするの?

操作手順は、次の通りです。

  1. mt-kwd.txtをダウンロードする・または内容をコピーする
  2. Xyzzyディレクトリ配下の"etc"ディレクトリ内にある"HTML"ファイルをエディタで開く
  3. "mt-kwd.txt"の内容を貼り付けて保存する
  4. ".xyzzy"か"siteinit.l"に下記のコードを記入する("siteinit.l"の場合はバイトコンパイルが必要)
  5. Xyzzyを再起動する

".xyzzy"か"siteinit.l"に記入するコードは下記の通りです。

(setq ed::*html+-use-html-kwd* t)

下記のページを参照しました。

補完するタグを充実させる

html+-mode はデフォルトでは、一部の要素を認識(色分け)しなかったり補完できなかったりすることがあります。この不満を解消するために、 html-keyword-file を読み込ませることで、補完できるタグを充実させ、割と仕様に準拠した HTML を書きやすくしてみます。

.xyzzy に下記のコードを書き加えるだけで、 html-keyword-file を読み込んでくれるようになります。

(setq ed::*html+-use-html-kwd* t)

閑古鳥 -> 呟き -> xyzzy の html+-mode を使う

できれば、MTタグのキーワードファイルは"HTML"ファイルに書き加えるのではなく、"MT"というファイル名にして別に作り、

(setq ed::*html+-use-html-kwd* t)
(setq ed::*html+-use-mt-kwd* t)

という感じで読み込めるといいのですが、うまく行きませんでした。ひとつのmodeに複数のキーワードファイルを読み込ませるにはどうしたらいいのでしょうか?(NDOメソッド

Movable Type-modeの課題

以上の操作を行うと、html+-modeでMTタグも色分けしてくれます。

──が、問題もあって、<$MTBlogURL$>のように$を含むタグは認識できないようです。上記の"mt-kwd.txt"は一応$付きのMTタグも入れておきましたが、そもそもhtml+-modeは<$から始まる物をタグとして認識できないようです(未確認)。

解決方法として、自分は<MTBlogURL>$無しでMTタグを書くようにしました。他の人が作ったテンプレートを利用する場合は、テキストエディタの置換機能で$を削除するとうまく動作します。

Xyzzyの場合は、「検索を<$\(.*\)$>、置換を<\1>」とすると一回で置換できます。

ちなみに

"mt-kwd.txt"はMovable Type 3.2 User Manual: A: Template Tag Reference Archivesを参考にしました。

簡単なスクリプトを走らせて、自動で生成──なんてことはできないので、ほとんど手入力で作りました。ということで、抜けがあるかもしれません。

参照

その他、html+-modeの解説で参考になるのが、html+-mode黒い羽根)です。

キーワードファイルについても同サイトのキーワードが詳しいです。ぜひどうぞ。

[2] このページの一番上へ戻る