validじゃないHTML、XHTMLをなんとかする方法
試してみようみようと思っててなかなか試せなかったけど機会ができた。
lxmlを知らないとモグリです。
とりあえず見習いであればXMLParser走らせてチェックでもいいんだけど。(練習になるので)
仕事だとめんどいのでvalidにしちゃう。
lxmlでできるはずだなあと思って試しただけ。
# vim: fileencoding=utf8 from lxml import etree import os import sys def format(input): parser = etree.HTMLParser() et = etree.parse(input, parser) base = os.path.basename(input) base = '_' + base dirname = os.path.dirname(input) out = os.path.join(dirname, base) writer = open(out, 'w') writer.write(etree.tostring(et.getroot(), 'utf-8', pretty_print = True)) writer.close() if __name__ == '__main__': format(sys.argv[1])
lxmlでやるだけですよと。
閉じタグだけでなく、属性を囲ってない、属性名が妙にcamelcaseとかも直してくれる。
(属性名は小文字にしちゃうだけだけど)
XHTMLがテンプレートなフレームワーク、TeedaやNevowで開発する時に重宝します。
僕の場合、できあがったHTMLを最後にEclipseのWTPのHTMLEditorで整形して使ってます。
マークアップエンジニアの人もドンドン使って行こうぜ!
うくく。