xyzzyでHTMLを入力するときに補助的に使うと便利なライブラリーです。minor-modeとして作成してみました。xyzzy標準の HTMLモードまたはYMTZさんのHTML+モードなどと一緒にお使いください。といっても特にそれらの存在を前提とはしていませんので、お好きな場面でどうぞ。
現状提供する機能は次の2つです。
- HTML文字実体参照とUnicodeキャラクターの相互変換
- tidyを利用した構文チェック、xhtmlへの変換
ダウンロード
- html-support.l(17KB)
"(xyzzyのインストールディレクトリ)\site-lisp\"などにおいて、お好みによりbyte-compileしてください。
設定・起動
たとえばxyzzy標準のHTMLモードと併用する場合、~/.xyzzyに以下のように記述してください。
(require "htmlmode")
...
(require "html-support")
(add-hook '*html-mode-hook* 'ht:html-support-mode)
HTML+モードと併用する場合もほぼ同様で以下のように記述してください。
(require "html+-mode")
...
(require "html-support")
(add-hook '*html+-mode-hook* 'ht:html-support-mode)
html-supportの機能はトグルになっており、以下のコマンドでON/OFFを切り替えられます。現在の状態はモード行の"HTML Support"という文字のあるなしで確認できます。
M-x ht:html-support-mode
HTML文字実体参照とUnicodeキャラクターの相互変換
"ç"や" "、"¡"、"ÿ"などのHTMLの文字実体参照とそれに対応するUnicodeキャラクターを双方向に変換します。
Unicodeのコード表を見ながらJISにない特殊な文字を入力するのでなく、よりわかりやすい文字実体参照の形式で入力しておいてから、後から一括して変換することができます。また逆にJIS系の文字コードのみしか扱えないツールを介して処理を行なう場合、JISにない特殊な文字を文字実体参照の形式に変換してから渡すことができます。
| コマンド | キー | 機能 |
|---|---|---|
| M-x ht:entity-to-character | C-c c | カレントバッファ内の全ての文字参照実体を対応するUnicodeキャラクターに変換します。ただし、"""、"&"、">"、"<"の4つは変換しません。前置引数C-uをつけて実行すると、全ての文字参照実体を変換します。 |
| M-x ht:entity-to-character-region | 上と同じですが、現在のリージョン内だけ変換します。 | |
| M-x ht:character-to-entity | C-c e | カレントバッファ内の全てのUnicodeキャラクターを対応する文字参照実体に変換します。ただし、'"'、'&'、 '<'、 '>'の4文字は変換しません。前置引数C-uをつけて実行すると、全ての文字を変換します。 |
| M-x ht:character-to-entity-region | 上と同じですが、現在のリージョン内だけ変換します。 |
tidyによる構文チェック、xhtmlへの変換
tidyとはHTMLの構文チェックをしたりHTMLからxhtmlへの変換を行うためのツールです。Windows環境用には tidy.exe というファイルが提供されています。tidy.exeをPATHの通ったディレクトリに置くか、あるいは"ht:tidy-command"という変数にtidy.exeのパスをフルパスで指定してください。
(setq ht:*tidy-command* "c:/Program Files/tidy/tidy.exe")
また実行時のオプションはht:tidy-optionsという変数に指定します。デフォルトではxhtmlへの変換に都合がいいオプション("-m --char-encoding utf8 --output-xhtml true --clean true")が指定されています。
| コマンド | キー | 機能 |
|---|---|---|
| M-x ht:execute-tidy | C-c t | カレントバッファのhtmlファイルの内容をxhtmlに変換します。変換中に発生したエラーやワーニングの情報は"*Shell output*"というバッファに出力されます。 |
履歴
- Sat 30 Mar 2002 21:10:14 +0900
- latin文字の入力は iso8859-1.l という標準添付のライブラリで可能なことにいまさらながら気がついたので、こちらの同等な機能は削除。
- Thu, 31 Jan 2002 01:26:56 +0900
- バグフィックス。HH; という形の文字実体参照が正しく認識されていなかった。
- 2001-12-24
- とりあえず公開
コメントする