如何解决在没有在RoR上运行的小项目中,如何将HAML文件自动编译为HTML文件?
| 我直到今天才开始玩compass
和haml
。尽管我对sass
的工作方式非常熟悉,并且了解了sass
的compass
以及如何使用它,但是在有效使用haml
方面我遇到了一些障碍。
当然,我希望这里的人已经知道了我的问题的答案,可以让我跳到haml
。
这是我要完成的工作:
保存时自动编译我的HAML文件。
但是,该项目只是一个很小的静态站点(几页),用于建立模板集,以便稍后集成到ExpressionEngine CMS(基于php
的解决方案)中。
因此请记住,我自己使用HAML只是加快了“设计成HTML / CSS”的初始过程,这是将我的HAML文件自动编译为HTML的一种好方法,基本上这给了我一个haml watch
命令,在我的项目上运行?
那里甚至有这样的东西吗?
至于我运行的平台,我有一台运行OS X 10.6.6的Mac。
感谢您的阅读,任何想法,建议和帮助将不胜感激。
解决方法
谢谢@Jacob和@Jonathan,我最终都没有使用任何方法来支持using9ѭ,因此回答了我自己的问题。
对于那些阅读此主题的人来说,他们也有类似的问题,我之所以非常喜欢
middleman
,是因为它可以将我的整个工作流程有效地组合到1个小型服务器应用程序中。
使用目录中的mm-ini project_name
和mm-server
,我可以立即访问Compass,HAML和SASS,并可以选择在任何给定时间将其简单输出为纯HTML。
这是有关middleman
的更多信息:http://middlemanapp.com/
Staticmatic和Nanoc也可以进行HAML,但据我所知,它们并不“开箱即用”地支持Compass(SASS)编译,对于某些人来说这可能是个优势,但对我而言却不是。
再次感谢您的回答,但这是我最终选择遵循的答案。
,如果您已安装Ruby,则可以使用watcher gem。
在我在这里找到的一个不错的脚本的帮助下,您可以启动一个过程,该过程可以识别对haml文件的任何更改。
在下面您可以找到我的自定义watchr.rb
def compile_haml
%x[haml index.haml index.html]
end
def do_growl(message)
growlnotify = `which growlnotify`.chomp
title = \"Watchr Message\"
passed = message.include?(\'0 failures,0 errors\')
image = passed ? \"~/.watchr_images/passed.png\" : \"~/.watchr_images/failed.png\"
severity = passed ? \"-1\" : \"1\"
options = \"-w -n Watchr --image \'#{File.expand_path(image)}\'\"
options << \" -m \'#{message}\' \'#{title}\' -p #{severity}\"
system %(#{growlnotify} #{options} &)
end
do_growl \"Watching folders and waiting for changes...\"
watch(\".*\\.haml$\") { |x|
compile_haml
do_growl \"Compiled HAML!\"
}
如果您没有安装咆哮声,那就把那部分丢掉
,我发现StaticMatic非常适合在HAML中构建静态网站。
,Maybee可能需要更多手册,但是您可以始终安装fs-events gem并按照以下步骤进行操作
require \'rb-fsevent\'
require \"open3\"
include Open3
fsevent = FSEvent.new
fsevent.watch Dir.pwd do |directories|
puts \"Detected change inside: #{directories.inspect}\"
popen3(\'haml\',\'..parameters..\',\'..parameters..\') do |stdin,stdout,stderr|
stdout.read.split(\"\\n\").each do |line|
puts line
end
end
end
fsevent.run
使用“ 16”对象中的值对更改后的文件调用“ 1”可执行文件。
,尽管您显然已经找到了所要查找的内容,但我仍然会发布另一种方法,因为ѭ9可能并不是每个人的完美解决方案。
我的方法使用Rake。我已经编写了一个简单的rakefile文件,其中包含一个“ watch”任务,该任务在文件更改时会重新编译我的sass(或罗盘)和haml文件。另外,它会重新加载浏览器预览:)(我不知道Middleman是否可以做到这一点)。
rakefile在github上:https://gist.github.com/1635301/
,我使用的是Codekit,它很棒,可以处理SASS,Compass,HAML以及许多其他内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。