ユーザ用ツール

サイト用ツール


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=&lt;xx&gt;&amp;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