テンプレートエンジンを追加します。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 件のコメント:
コメントを投稿