rattlepy.templatingモジュール : Rattle.py APIリファレンス

テンプレートクラスと関数

rattlepy.templating.escapeHtmlEntities(string)

特定の文字をエスケープする

class rattlepy.templating.Element(tag, *, className=None, **kwargs)

子ノードを持つ要素のクラス

使い方:

with Element(tagname, attributes...):
  ...

クラス属性には"class"の代わりに"className"を使ってください。 または、こういう方法もあります:

with Element(tagname, **{'class': 'my-class'}):
  ...

Pythonの"data-"のような識別子として無効な属性は、上記の方法を使って指定できます。

exposes(element=None)

カスタムコンポーネントの作成を容易にするヘルパー関数です。 動的に親ノードを変更します。

コード例:

with Element("hoge") as hoge:
  # この要素の親クラスは :code:`hoge` です。
  with Element("some-inner") as inner:
    hoge.exposes(inner)

with hoge:
  # この要素の親クラスは :code:`some-inner` です。
  with Element("other-element"):
    ...
  hoge.exposes()

with hoge:
  # この要素の親クラスは :code:`hoge` です。
  with Element("some-other-element"):
    ...
serialize(formatter='human_friendly', force_add_doctype=False)

HTML要素をシリアライズします。 str(elem) は圧縮されますが、圧縮せずに出力することも可能です。

formatter引数は["human_friendly", "minify"]のうちのどれかを指定してください。デフォルトは"human_friendly"です。 force_add_doctype引数にtrueを指定すると要素のタイプにかかわらず、doctype宣言を先頭に追加します。

class rattlepy.templating.SelfClosedElement(tag, *, _outer=2, className=None, **kwargs)

子ノードを持たない要素のクラス

使い方:

with Element("hoge"):
  SelfClosedElement(tagname, attributes...)
addself(*, outer=1)

特定の親ノードに自分自身を追加します。

使い方:

with some_parent_node:
  # これはsome_parent_nodeの子ノードになります。
  SelfClosedElement('hr').addself()
rattlepy.templating.text(content)

テキストノードを作成して追加します。

content引数の型はstrである必要があります。

複数行にわたる文字列は次のようにしてください:

with Element("hoge"):
  text('''\
  |some
  |multiline
  |text''')

| の前の文字列は無視されます。存在しない場合はその行のすべての文字が挿入されます。

& のようなHTMLの特殊文字はエスケープされます。 エスケープなしで挿入したい場合は rtext 関数を代わりに使ってください。

rattlepy.templating.node(tag, **kwargs)

要素を作成して返します。 Element(tag, attributes...) と同じです。

rattlepy.templating.closed(tag, **kwargs)

子ノードを持たない要素を作成して返します。 SelfClosedElement(tag, attributes...) と同じです。