テンプレートエンジンを追加します。ErbやHamlなど色々ありますが、今回はSlimを使用します。
. ├── config ├── config.ru ├── Gemfile ├── Gemfile.lock ├── Guardfile ├── lib │ └── app.rb ├── public ├── spec │ ├── app_spec.rb │ └── spec_helper.rb └── views └── index.slim # 追加 └── layout.slim # 追加
Gemfile
source :rubygems gem 'sinatra', require: 'sinatra/base' gem 'slim' group :development do gem 'sinatra-reloader', require: 'sinatra/reloader' end group :test do gem 'rspec' gem 'rack-test', require: 'rack/test' gem 'guard-rspec' end
lib/app.rb
class MyApp < Sinatra::Base configure do set :root, File.expand_path('../../', __FILE__) end configure :development do Bundler.require :development register Sinatra::Reloader end get '/' do slim :index end end
views/index.slim
h1 Hello World!
$ bundle install $ bundle exec rackupこれで表示できますが、画面のソースを確認するとヘッダ等は記述されていません。
index.slimに直接追記してもよいですが、ここではlayout.slimとして分割します。
views/layout.slim
doctype html html head title My App body == yield展開されたhtmlのソースは圧縮されているので、インデント表示させたい時はオプションを変更しましょう。
configure :development do # (略) Slim::Engine.set_default_options :pretty => true end
0 件のコメント:
コメントを投稿