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

Pythonで静的サイト運営

まず妥当性検証強制ツールについて。agendaではMTなので既存のプラグインで可能だが、公開書庫の方はそういう贅肉だらけのシステムに依存したくないのでローカル環境のPythonで再構築と妥当性検証と公開のプロセスを行なう。拡張子*.pywでPythonファイルを作ってコンソールなしのGUIアプリケーションを作るか、CUIにするか、テキストエディタから呼び出して処理結果諸々をwebbrowserモジュールでFirefox2に表示するか。4Suiteサーバーを使った「ウェブ」アプリケーションにしてFirefox2で操作するか。やっぱりテキストエディタだよな。無駄がない。

  1. 文書型宣言とかaddress要素とかはテキストエディタのHTML文書用テンプレートに記述しておき
  2. テキストエディタでomitしまくりのHTML文書を書いたら
  3. テキストエディタの機能を使ってパスを引数にrebuild.pyw(仮名)を実行
    1. (サイトマップに存在しなければ)rel="contents"な属性を持つ要素のhref属性をみてサイトマップの適切な位置に加え
    2. (ナビがなければ)サイトマップからナビを生成し、h1の直前に挿入
    3. (title要素が空なら)h1要素にサイト名を加えてtitle要素を挿入
    4. HTML4.01として妥当性を検証
    5. ついでだからAtomを生成
    6. 更新されたファイルをFTPでput

やりたいことなんてこんな程度。昔MSXMLとPythonで作ったのは今一融通の利かないGUIアプリケーションで、テキストエディタとの連携をあまり考えていなかった。ソース(コード)や文章を書くには使い慣れたテキストエディタが一番だから、今度はテキストエディタからクリック一発でサイトの再構築と更新/公開をやってしまおう。サイトマップの形式をどうするかだが、これも手書きのHTMLでOK。ul/olだろうがdlだろうが木構造の中に始点アンカーが入っていればいい。で、ここでHTMLTidyを使おうというわけ。何故ならXPathとXSLTを使いたいから。サイトマップは一つだけだから、HTMLTidyをかます冗長性も問題にならないはずだ。

XML.com: Wrestling HTMLを読んだ。HTMLをwell-formed XMLに変換したり、HTMLから一寸したデータを取得したりする方法について書かれている。HTMLTidyのPython版、 µTidylibの文字コード指定について触れられていて、例えば"utf-8"ではなく"utf8"という文字列でなければならないそうな。

By trial and error I figured out that "shiftjis" and "utf8" were required for things to work and that I could not use any likely spelling of "ISO-8859-1" at all, but had to use the alternate name "latin1" instead.

XML.com: Wrestling HTML"より

師匠ありがとう。


浦島太郎やっている間に、随分と便利な世の中になったものよのう。

easy_install amara

これだけでOgbuji師匠のXMLツールキットをインストールできてしまうとは。関連パッケージ込みで。


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