【问题标题】:How to use Slim (or haml) directly with Rack?如何在 Rack 中直接使用 Slim(或 haml)?
【发布时间】:2015-10-21 10:31:50
【问题描述】:

在 Sinatra 中,根据请求渲染纤薄模板非常容易:

get '/some_request' do
  slim :file_name
end

因为 Rack 需要一个带有 .call 方法的类,然后返回 [status, headers, [body]] 数组,例如:

class RequestManager
  def call(env)
    return [200, {}, ['why am I in an array?']]
  end
end

如何返回渲染后的 slim 模板以使 Rack 满意?

例如[200, {}, '<html><head></head><!-- you get the idea --></html>']

【问题讨论】:

    标签: ruby routing rack slim-lang


    【解决方案1】:

    您可以通过在 config.ru 中包含 haml gem 来完成此操作, 然后使用

    require 'haml' # or put haml in your gemfile and start rack with `bundle exec`
    # ...
    run lambda {|env|
      template = File.read(path)
      page = Haml::Engine.new(template).render()
    }
    # ...
    

    从您的模板中设置您的page 属性。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      相关资源
      最近更新 更多