Jintrick.netagenda2007年12月アーカイブ → 2007年12月26日

µTidylib(TidyのPython Wrapper)に関するメモ

Tidy オプションの簡易リファレンスを読み、 Python版のµTidylibで色々試してみた。まず共通の注意点。

以下、注意の必要なオプションについて。

fix-backslash
URI中のバックスラッシュを単純にスラッシュに置換するらしい。%5Cに置換しようよ。しかもこのオプション、デフォルトで有効になっているというのだから怖い。
doctype
"strict"を指定すると、HTMLなら4.01 Strict、XHTMLなら1.0 Strictな文書型宣言を吐く。
"transitional"を指定すると、HTMLなら4.01 Transitional、XHTMLなら1.0 Transitionalの文書型宣言を吐く。
"omit"を指定すると、文書型宣言を吐かない。
デフォルトでは"auto"で、HTML3.2とかになってしまうので、このオプションは明示的な指定が必須のような気がする。
ユーザー定義のものも指定できるらしいがTidy的に不要だろう。確認する気無し。
char-encoding
文字符号化方式を指定。us-asciiとかでない限りたぶん必須のオプション。input-encodingとoutput-encodingを別々に指定することもできる。
drop-proprietary-attributes
不明な属性を消去。デフォルトは無効。有効でも無効でも一応警告は出されるが、エラーにはならない。Tidyは単純な属性名の書き間違いを修正してくれるわけでないので、テキストエディタの強調表示などで要素名、属性名を確認できるようにしておいた方が良いと思った。
output-bom
Byte-Order-Markをつけるか否か。デフォルトは"auto"になっていて、入力するHTML文書に従う。しかし「間違って付いちゃった」的なBOMを自動で消去して欲しいので、無効にしておいた方がいいような気がする。いつの間にかBOMをつけているテキストエディタは結構ある。
wrap
折り返す文字数を指定(int型)。デフォルトは68文字。0を指定すれば折り返されない。
tidy-mark
「Tidyを使ったよ」情報をmeta要素として吐くか否か。デフォルトで有効になっているので侮れない。
indent
シリアライザ系によくあるソースのインデント用のオプション。終了タグを省略するモードだとかなりお粗末。XHTMLならソースなんか見ないからFalseがいい。HTMLならフラットに書くからやっぱりFalse。
hide-endtags
確認した限りでは、省略可能なタグは終了タグに限らず全て省略しているような気配を感じる。
output-xhtml
XHTMLで出力する。デフォルトでは無効。hide-endtags等のオプションは無視され、少なくともwell-formed XMLが吐かれる。
add-xml-decl
冒頭にXML宣言を吐く。デフォルトでは無効。
show-body-only
これを指定すると入力を文書断片として扱うようになる。parseStringメソッドで"<dt>被定義語句<dd>定義"という文字列をパースすれば、単に<dl>タグを付けてくれるといった感じ。日記やブログ用に便利かもしれない。

追記

add-xml-declオプションの説明にNote that if the input already includes an <?xml ... ?> declaration then this option will be ignored.とある。XML宣言のあるXHTML文書はValidなHTMLに変換できないのか。


webmaster@jintrick.net
公開: 2007年12月26日
カテゴリ: HTML ,Python