gpt4 book ai didi

ruby - 没有 Rails 的 Ruby 中的部分 HAML 模板

转载 作者:数据小太阳 更新时间:2023-10-29 06:33:54 25 4
gpt4 key购买 nike

对于我的小项目,我真的不需要 Rails 的开销,所以我尝试只使用普通的 Ruby 和 HAML 来实现这一点。

我想在我的 HAML 模板中包含另一个 HAML 文件。但我还没有找到一种好的或真正可用的方法来做到这一点。

例如,我有这两个 HAML 文件:

文档.haml

%html
%body
= include(menu.haml) body
%article …

菜单.haml

%ul
%li
%a whatever …

包含显然不是去这里的方式。但它很好地描述了我在此示例中要实现的目标。

最佳答案

我完全推荐 Tilt这些东西的 gem 。它提供了一个标准接口(interface),用于使用相同的 API 呈现许多不同的模板语言,允许您设置自定义范围和局部变量,允许您使用 yield,并且健壮且快速。 Sinatra 将其用于模板。

例子:

require 'haml'
require 'tilt'

template = Tilt.new('path/to/file.haml')
# => #<Tilt::HAMLTemplate @file="path/to/file.haml" ...>
layout = Tilt.new('path/to/layout.haml')

output = layout.render { template.render }

这让您可以在布局内yield 来获取呈现的模板,就像 Rails 一样。至于部分,David 已经描述了一种简单而不错的方法。

但实际上,如果您正在编写的内容将通过 HTTP 提供服务,我建议您查看 Sinatra ,它已经提供了模板,并且具有您能想象到的最简单的请求路由。

关于ruby - 没有 Rails 的 Ruby 中的部分 HAML 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com