我已经完成了
gem install sinatra
和gem install haml
我有这个 .rb 文件
require 'sinatra'
get '/abc2' do
"<b>aaaaaaaaaaaaa</b>"
end
现在假设我想要那行 HTML,但是是 HAML 格式的。而不是外部
我知道我能行
get '/abc' do
haml :index # /views/index.haml
end
index.haml 可以有一行 haml
%b aaaaaaa
但是有什么方法可以将
%b aaaaaaa
包含在我的 ruby 文件本身中并渲染它。无需引用文件,例如无需参考 /views/index.haml ?
就像 CSS 可以让你拥有 CSS 外部,或者它可以让你在 html 文件内部拥有它一样。同样,Javascript 可以让你从外部导入 javascript,或者它可以让你在 html 文件内部拥有它。我问关于在 .rb 文件内部使用 HAML。可以吗?
我知道 HAML 旨在作为一种模板语言,用于将数据注入......但它也是更简洁地编写 HTML 的简写。
对于小型应用程序,您可以在脚本末尾添加视图,这样就没有外部文件。
get '/abc' do
haml :hello
end
__END__
@@ hello
%h1= "Hello there"
Haml::Engine#render
将 Haml 转换为 HTML,如下所示:
get '/abc2' do
Haml::Engine.new(<<-Haml).render(binding)
%b aaaaaa
Haml
end
这使用了定界文档(
<<-Haml
行和结束Haml
之间的所有内容。binding
是一个特殊变量,基本上指的是当前范围。