问题 如何在一个不在RoR上运行的小项目中将我的HAML文件自动编译为HTML文件?
我今天才开始玩 compass
和 haml
。虽然我对这种方式非常熟悉 sass
工作,我明白了什么 compass
是为了 sass
以及如何使用它,我在使用时遇到了一些障碍 haml
有效率的。
当然我希望这里的某个人已经知道我的问题的答案,并且可以给我一点启动 haml
。
这是我想要完成的事情:
保存时自动编译我的HAML文件。
然而,该项目只是一个非常小的静态站点(几页),用于构建模板集,以便以后集成到ExpressionEngine CMS中( php
基于解决方案)。
所以请记住,我自己使用HAML来简化最初的“设计到HTML / CSS”过程,这是一个自动编译我的HAML文件到HTML的好方法,基本上是给我一个东西的东西 haml watch
命令,我可以在我的项目上运行?
那里有甚至这样的东西吗?
至于我正在运行的平台,我有一台运行OS X 10.6.6的Mac。
感谢阅读,任何想法,建议,帮助将非常感谢。
4725
2018-04-13 12:43
起源
答案:
非常感谢@Jacob和@Jonathan,我最终都没有使用你的方法来支持使用 middleman
, 因此回答了我自己的问题。
对于那些阅读本主题的人来说,有一个类似的问题,我喜欢的原因 middleman
它将我的整个工作流程有效地整合到一个迷你服务器应用程序中。
运用 mm-ini project_name
接着 mm-server
在目录中,我可以立即访问Compass,HAML和SASS,只需在任何给定时间将其输出到纯HTML。
这里有更多信息 middleman
: http://middlemanapp.com/
Staticmatic和Nanoc也做HAML,但据我所知,他们没有“开箱即用”支持Compass(SASS)编译,这对某些人来说可能是一个好处,但对我来说却不是。
再次,感谢您的回答,这是我最终选择遵循的答案。
7
2018-04-20 08:24
如果你安装了Ruby,你可以使用watchr 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!"
}
如果您没有安装咆哮,请将该部分留下
3
2017-12-17 08:33
答案:
非常感谢@Jacob和@Jonathan,我最终都没有使用你的方法来支持使用 middleman
, 因此回答了我自己的问题。
对于那些阅读本主题的人来说,有一个类似的问题,我喜欢的原因 middleman
它将我的整个工作流程有效地整合到一个迷你服务器应用程序中。
运用 mm-ini project_name
接着 mm-server
在目录中,我可以立即访问Compass,HAML和SASS,只需在任何给定时间将其输出到纯HTML。
这里有更多信息 middleman
: http://middlemanapp.com/
Staticmatic和Nanoc也做HAML,但据我所知,他们没有“开箱即用”支持Compass(SASS)编译,这对某些人来说可能是一个好处,但对我来说却不是。
再次,感谢您的回答,这是我最终选择遵循的答案。
7
2018-04-20 08:24
如果你安装了Ruby,你可以使用watchr 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!"
}
如果您没有安装咆哮,请将该部分留下
3
2017-12-17 08:33
我发现了 StaticMatic 非常适合在HAML中构建静态网站。
2
2018-04-13 13:01
也许你想要更多的手册,但你可以随时安装 FS-事件 宝石并做一些事情
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
使用中的值 directories
反对的对象 haml
更改文件的可执行文件
1
2018-04-13 12:58
虽然你显然找到了你想要的东西,但我仍会发布另一种方法,因为 middleman
可能不是每个人的完美解决方案。
我的方法使用Rake。我写了一个简单的rakefile,包括一个'watch'任务,可以在文件发生变化时重新编译我的sass(或指南针)和haml文件。此外,它重新加载浏览器预览:)(我不知道中间人是否可以这样做)。
rakefile在github上: https://gist.github.com/1635301/
1
2018-01-19 19:22
Codekit是我使用的,它很棒,可以处理SASS,Compass,HAML以及许多其他东西。
1
2017-10-08 11:02