我使用HAML来生成一个网站中的一些静态的HTML页面,而我想通用组件拆分为谐音,我可以包括多个页面,就像在轨道上。 不过,我不希望使用整个Rails堆栈要做到这一点,因为它似乎有点小题大做。
我环顾四周,在互联网上,但没有发现任何东西,不仅仅是做类似更好:
Haml::Engine.new(IO.read("header.haml")).render
难道有内HAML包括所谓的泛音的更好的方式? 现有的过滤器或命令我失踪?
我使用HAML来生成一个网站中的一些静态的HTML页面,而我想通用组件拆分为谐音,我可以包括多个页面,就像在轨道上。 不过,我不希望使用整个Rails堆栈要做到这一点,因为它似乎有点小题大做。
我环顾四周,在互联网上,但没有发现任何东西,不仅仅是做类似更好:
Haml::Engine.new(IO.read("header.haml")).render
难道有内HAML包括所谓的泛音的更好的方式? 现有的过滤器或命令我失踪?
这是最好的HAML和SASS与建设静态网站的工具结合起来。 下面是一些链接:
我使用杰奇为我的博客,但如果你没有建立一个博客,它可能不适合您的需求。
该死,你是对的 - 没有一个内置的方式。 我用佣工的haml
命令行,但总是那些,其输出已经HTML格式。
我最好的建议是写一个partial()
方法和需要它。 它看起来像你已经开始了这条路。 我会建议任何人写这样的功能考虑周围保持原有的结合以某种方式。 HAML ::助手#capture_hame看起来是做到这一点的最简单方法。
如果执行速度是一个问题,这也可能是缓存一些解析模板在同样的方式,Merb的确实是个好主意。
如果有人得到一些代码的工作,请把它挂在GitHub上 ,并作出评论在这里。
我终于找到了我一直在寻找的,所以我想我会与你分享我的发现。 你可以简单地使用你首先使用HAML相同的语法- http://www.semicomplete.com/blog/geekery/partials-in-haml-in-sinatra.html
/views/file.haml
%h3 Title
%div= haml :content, :layout => false
/views/content.haml
%p your content here
所有的解决方案似乎是庞大的,我的目的,虽然我试图做的基本上是同样的事情。 这里是一个Ruby脚本,我写的确实少得可怜-评估Haml的用粘在选项= partial "test.haml"
任何你喜欢的。 它的逻辑的一个微不足道的金额,试图找到一个部分文件。
require 'haml'
def find filename
return filename if File.exists? filename
path = File.dirname ARGV[0]
filename = path+"/"+filename
return filename if File.exists? filename
throw "Could not find file."
end
def partial filename
source = File.read(find(filename))
engine = Haml::Engine.new(source)
engine.render(binding)
end
puts partial ARGV[0]
你执行它,像这样:红宝石hamlize.rb input.haml> output.html
我有同样的问题。 我需要产生一些HTML代码段来优化服务器响应,一旦这个片段有大量的计算(绘制图)的,每一个用户做了不必要做的所有东西的请求的时间。
一旦我有几个HAML谐音分区的意见,我想重用此生成HTML文件。
我的第一种方法是用Haml的发动机很努力,但一旦我有谐音渲染等谐音和应用助手的某些功能,但它并没有奏效。 终局我发现,通过了创造,我想创建一个HTML文件(to_html)的机型功能的解决方案这是它:
def to_html
ActionView::Base.send :include, ActionView::Helpers::ApplicationHelper
File.open(File.join(Rails.root, "public", 'test.html'), "w") do |file|
file.print ActionView::Base.new(Rails.configuration.paths["app/views"].first).render(
:partial => 'partial_folder/partial',
:format => :html,
:locals => { :model => self}
)
end
end
这样一来,我就能够使用已经完成的谐音,打印HTML文件。 这个工作对我来说,也许它可以帮你还。