altemplate:テンプレートファイル
テンプレートファイル
テンプレートの使い方には、大きく分けて2種類の使い方があります。
方法1:セクションを指定する方法
テンプレートに以下のようにセクションを指定する、簡易的な方法です。
- index.rhtml
<%= header_section %> <title>Hello</title> <%= body_section %> <p>Hello world.</p> <%= footer_section %>
- AlTemplate.runメソッドに渡したテンプレートファイルを解釈して、htmlを生成します。
- 単純な画面を作る場合に、簡易的に使うことができます。
方法2:レイアウトファイルを使う方法
全体のレイアウトを決定するテンプレートを作成し、それに個々の出力を当てはめてページを生成する方法です。
- main.rb
@contents = "my_contents.rhtml" AlTemplate.run( "layout.rhtml" )
- layout.rhtml
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello</title> </head> <body> <% include( @contents ) %> </body> </html>
- my_contents.rhtml
<p>Hello world.</p>
- レイアウトファイル(layout.rhtml)にフルセットのhtmlを記述し、画面によって変化のある部分だけ別のテンプレートを挿入(include)する方法です。
- 本格的なアプリケーションを作る場合に向いた方法です。
eRubyについて
eRubyのサブセットです。以下の機能があります。
<%=h xxx %>
- インスタンス変数を表示します。
- 式を評価し、結果を表示します。
- htmlエスケープします。
例
<%=h @my_message %> <%=h @my_message * 3 %>
<%= xxx %>
- 上記と機能は同じですが、htmlエスケープせずに表示します。
<%=s "FILENAME" %>
- al_config.rb中のAL_URI_STATICに定義されたURLのパスを付加した文字列を生成します。
例
AL_URI_STATIC = "/img"の場合
テンプレートファイル
<img src="<%=s "image-file.png" %>">
結果
<img src="/img/image-file.png">
<%=u xxx %>
- urlエンコードして表示します。
例
@url_param = "a=<xx>&b= SPACE"
テンプレートファイル
URL:<a href="http://example.com?<%=u @url_param %>">http://example.com?<%=h @url_param %></a>
結果
URL:<a href="http://example.com?a%3d%3cxx%3e%26b%3d%20SPACE">http://example.com?a=<xx>&b= SPACE</a>
<% xxx %>
- 制御構造を記述します。
例
<% 5.times do %> <p>Hello, world.</p> <% end %>
サブコマンド
<%= include( インクルードするサブテンプレートファイル名 ) %>
- サブテンプレートをその位置に挿入します。
<%= header_section %>
<%= body_section %>
<%= footer_section %>
- 各セクションを宣言します。
- 実際は、その位置に規定のHTML断片を埋め込むだけです。
サブコマンドの追加
- AlTemplateクラスへ、cmd_XXXの命名規則でメソッドを追加し、COMMAND_EXTRACTOR定数に追加すると、それがサブコマンドとして使えるようになります。
- 詳細は、al_template_main.rb を見てください。
altemplate/テンプレートファイル.txt · 最終更新: 2019/02/21 09:49 by hirohito