Genshi

Genshi
開発元 Edgewall Software
初版 2006年8月3日 (2006-08-03)
最新版
0.7.9 / 2024年6月16日 (2024-06-16)
リポジトリ
対応OS クロスプラットフォーム
種別 テンプレートエンジン
公式サイト genshi.edgewall.org

Genshiは、XMLのような語彙を持ったテンプレートエンジンで、Pythonで書かれている。 Genshiを利用することにより、XMLをベースとした言語、通常HTMLに出力内容を簡単に挿入したり、ドキュメント間の要素を再利用できる[1]。Genshiは、Kidを元にしており、テンプレート処理を高速化する機能のいくらかを実装することを目的としている[2]。

Genshiは、さまざまなPythonWebフレームワークで利用可能であり、例えばCherryPy[3][4]、TurboGears[5]、Pylons[6]、web2pyで利用されている[7]。 GenshiはTurboGears 2.x内のKidを置き換えた[8]。

Genshiによるマークアップ

Genshiは、名前空間を利用する形でHTMLに対して構文を埋め込む。典型的な構文は属性として与えられ、Python式をクオートした内部に記述する。例えば、下のような構文では、この段落を処理すると「4」が表示される。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/">
    <body>
        <p py:content="2 + 2">ここが4で置き換えられる</p>
    </body>
</html>

名前空間の使用により、GenshiはWYSIWYG HTMLエディタで利用可能である[9][10]。

KidとGenshiの違い

  • Genshiは、直接テンプレートを処理する。(KidのようにPythonコードを出力したりしない)[11]
  • Genshiは、テンプレートの再利用のためにXIncludeを使用する[11]
  • Genshiは、Kidが持たない属性が追加されている。例:py:choose[11]

参照

  1. ↑ “GenshiTutorial – Genshi”. genshi.edgewall.org. 2025年2月21日閲覧。
  2. ↑ “What is Genshi?”. 2008年1月20日閲覧。
  3. ↑ “CherryPy – Genshi”. 2009年9月26日閲覧。
  4. ↑ “Genshi - CherryPy Tools - Trac”. 2009年9月26日閲覧。
  5. ↑ “Genshi Templating”. 2008年1月20日閲覧。
  6. ↑ “Genshi Templates - Pylons Cookbook”. 2008年1月20日閲覧。
  7. ↑ “web2py: Enterprise Web Framework”. 2009年9月26日閲覧。
  8. ↑ Ramm, Mark. “TurboGears 1.1 and Beyond”. 2008年1月20日閲覧。
  9. ↑ “Choosing a templating language”. 2010年5月30日閲覧。
  10. ↑ “Choosing a templating language”. 2008年1月20日閲覧。
  11. 1 2 3 “Comparing Genshi to Kid”. 2008年1月20日閲覧。

外部リンク