まつもと ゆきひろです

In message "[ruby-list:35052] ruby_lib/html/"
    on 02/05/12, Wakou Aoyama <wakou / fsinet.or.jp> writes:

|require "html/html3"
|html = HTML::Html3.new
|html.html() do
|  html.head{ html.title{"TITLE"} }
|  html.body() do
|    html.h1{"head 1"}
|    html.p() do
|      "paragraph"
|    end
|    html.form() do
|      html.textarea("field_name")
|      html.br
|      html.submit
|    end
|  end
|end

これはたとえば

<p>
Ruby's home page is here.
</p>

というのを表現するために

html.p{
  "Ruby's home page is "
  html.a(:href=>"http://www.ruby-lang.org"){"here"}
  "."
}

とはできないわけですよね、連結しないから。これはどうしましょ
う。タグをつけないメソッドを用意するんですかね。

html.p{
  html.text("Ruby's home page is ")
  html.a(:href=>"http://www.ruby-lang.org"){"here"}
  html.text(".")
}

とか(textという名前がよいかどうかは分かりません)。

あと、htmlの各ブロックでselfをすりかえると

html = HTML::Html3.new
html.html() do
  head{ html.title{"TITLE"} }
  body() do
    h1{"head 1"}
    p() do
      "paragraph"
    end
    form() do
      textarea("field_name")
      br
      submit
    end
  end
end

とちょっとすっきりかけますが、selfのすりかえはやや特殊なので、
そっちのほうがよいのかどうかはにわかには判断できません。