2010年5月1日土曜日

chameleon.genshiを試してみた

easy_install ChameleonでChameleonをインストール。
以下のテンプレートファイルを使用して出力。

base.html
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/" py:strip="">
<py:match path="head" once="true">
<head>
<title>base</title>
</head>
</py:match>
<py:match path="body" once="true">
<body class="index">
<div id="header">
<h1>base</h1>
</div>

<p>Welcome!</p>

<div id="footer">
<hr />
<p class="legalese">c 2007 Edgewall Software</p>
</div>
</body>
</py:match>
</html>


genshi.html
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="base.html" />
  <head>
    <title>$title</title>
  </head>
  <body class="index">
    <div id="header">
   <h1>$title</h1>
 </div>

 <p>Welcome!</p>

 <div id="footer">
   <hr />
   <p class="legalese">c 2007 Edgewall Software</p>
 </div>
  </body>
</html>


chameleon.genshiを使用して出力した結果は以下のようになる。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org">
<div id="footer">
<hr>
<p class="legalese">c 2007 Edgewall Software</p>
</div>
<p>Welcome!</p>

<div id="header">
<h1>base</h1>
</div>

</html>


genshiでの出力はgenshi.htmlの内容がbase.htmlで上書きされるので大幅に出力結果が違う。
<head>の中身がなくなっている。<body>タグがなくなっている。<body>タグの中身の順番が逆になっている。

速度は速いけど現時点で実用するのは無理。
genshi以外のテンプレートとくにZPTは使えるかもしれないが試していない。

0 件のコメント:

コメントを投稿