ラベル エスケープ の投稿を表示しています。 すべての投稿を表示
ラベル エスケープ の投稿を表示しています。 すべての投稿を表示

2007年9月26日水曜日

Emacsで見たままの状態をHTMLに変換する

以前に「"」とか、「<」とかのメタ文字をエスケープするだけのモノを作ったんですが、もっと便利な物があったんですね。知らなかったorz

ということで、emacsでfont-lockでコードなんかを色付けして表示している場合、その体裁ごとHTMLに変換してくれるelisp.

htmlize.el


 emacsの強調表示や色付けされた見たままの状態をCSS付きでHTMLに変換してくれます。
 変換は、選択された範囲や、Buffer全体、ファイルから行えます。
 ですがHTMLで変換されるので、部分引用したいときは不便を感じる。

face2html


 同じく見たままをHTMLに変換してくれる。<pre>で囲んだHTMLを吐き出してくれます。
 コードなんかをポトペタと張り付ける時にはこちらの方がいい感じです。


便利だね。Emacs♪

2007年5月4日金曜日

emacsでHTMLメタ文字をエスケープ

HTMLのソースを貼り付けたいときは、HTMLのメタ文字 「&、<、>、"」 をそれぞれ「&amp;、&lt;、&gt;、&quot;」 に変換しないといけない。
Emacsで自動で変換してくれるelispはないかと探したけど、ないので適当に書いてみた。

(defun html-quote (start end)
"選択範囲の「< > & 」と引用符記号「\"」をエスケープする"
(interactive "r")
(save-excursion
(save-restriction
(narrow-to-region start end)
(goto-char (point-min))
(while (re-search-forward "<" nil t)
(replace-match "&lt;"))
(goto-char (point-min))
(while (re-search-forward ">" nil t)
(replace-match "&gt;"))
(while (re-search-forward "\"" nil t)
(replace-match "&qute;"))
(while (re-search-forward "&" nil t)
(replace-match "&amp;amp;amp;amp;amp;"))
)))


使いかたは上の関数を ~/.emacs にでも貼り付けて保存し、変換したいHTML文書を選択範囲してから、M-x html-quote で実行すれば、エスケープしてくれる。

20080718:追記

こちらのEmacsで見たままの状態をHTMLに変換する記事もどうぞ。