RubyでHTMLファイル作成
Rubyで静的HTMLファイル吐き出しのプログラムを作成したいなぁ思い、PerlのHTML::TemplateのようなものがRubyにもないか探してみました。
以下サイトにRuby版のHTML::Templateがあり使用したいと思ったのですが、少し使い勝手がわるいようです。
そのためerbにより作成することにしました。以下がテスト用でつくったサンプルコードです。
■メインプログラム
#!/usr/bin/ruby -Ks require 'erb' include ERB::Util $KCODE = 's' filename = ARGV[0] erb = ERB.new(File.read(filename), nil, "-") # hash create. h = Hash.new title = "title_key" title_value = "title_val" h.store(title, title_value) detail = "detail_key" detail_value = "detail_val" h.store(detail, detail_value) # list create. list = Array.new list.push(h) print erb.result(binding())
■テンプレートファイル
<dl> <%- i = 0 -%> <%- for item in list -%> <dt><%=h item['title_key'] %></dt> <dd><%=h item['detail_key'] %></dd> <%- i += 1 -%> <%- end -%> </dl>
コマンドプロンプトより以下を実行してくれればOK
>ruby create_html.rb sample.rhtml
- title_val
- detail_val
もうちょっとデータの持ち方だけ考えればもっと使いやすくなりそうです。
今度は外部ファイルから静的HTML吐き出しをするプログラムを書いてみます。
追記
外部ファイルを読み込んで静的HTMLファイル吐き出しするプログラムを書きました
【参考サイト】


コメントする