11

我今天才开始玩compassand haml。虽然我对sass工作方式非常熟悉,并且知道compasssass的用途和使用方法,但在有效使用方面我遇到了一些障碍haml

当然,我希望这里的某个人已经知道我的问题的答案,并且可以让我快速入门haml

这就是我想要完成的事情:当我保存它们时自动编译我的 HAML 文件。

然而,该项目只是一个很小的静态站点(几个页面),用于构建模板集,以便稍后集成到 ExpressionEngine CMS(php基于解决方案)中。

所以请记住,我自己使用 HAML 来简单地加速最初的“设计到 HTML/CSS”过程,什么是自动将我的 HAML 文件编译成 HTML 的好方法,基本上是给我一个haml watch可以在我的项目?

那里甚至有这样的东西吗?

至于我运行的平台,我有一台运行 OS X 10.6.6 的 Mac。

感谢您的阅读,任何想法、建议、帮助将不胜感激。

4

6 回答 6

7

谢谢@Jacob 和@Jonathan,我最终没有使用你们的任何一种方法来支持 using middleman因此我自己的问题的答案。

对于那些在阅读本主题时心中有类似问题的人来说,我middleman非常喜欢它的原因是它有效地将我的整个工作流程整合到了 1 个迷你服务器应用程序中。使用mm-ini project_name然后mm-server在目录中,我可以立即访问 Compass、HAML 和 SASS,并且可以选择在任何给定时间将其简单地输出到纯 html。

以下是有关以下内容的更多信息middleman: http: //middlemanapp.com/

Staticmatic 和 Nanoc 也做 HAML,但据我所知,它们并不“开箱即用”支持 Compass (SASS) 编译,这对某些人来说可能是一个好处,但对我来说不是。

再次感谢您的回答,但这是我最终选择遵循的答案。

于 2011-04-20T08:24:14.597 回答
3

如果你安装了 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!"
}

如果您没有安装咆哮,请离开该部分

于 2012-12-17T08:33:38.037 回答
2

我发现StaticMatic非常适合在 HAML 中构建静态网站。

于 2011-04-13T13:01:10.263 回答
1

也许你想要更多的手册,但你总是可以安装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

使用directories对象中的值在更改的文件上调用haml可执行文件。

于 2011-04-13T12:58:21.163 回答
1

尽管您显然已经找到了您正在寻找的东西,但我仍然会发布另一种方法,因为middleman可能不是每个人的完美解决方案。我的方法使用 Rake。我编写了一个简单的 rakefile,其中包括一个“监视”任务,该任务在文件更改时重新编译我的 sass(或 compass)和 haml 文件。另外它会重新加载浏览器预览:)(我不知道中间人是否可以这样做)。

rakefile 在 github 上:https ://gist.github.com/1635301/

于 2012-01-19T19:22:31.843 回答
1

我使用的是 Codekit,它非常棒,可以处理 SASS、Compass、HAML 以及许多其他东西。

于 2012-10-08T11:02:02.943 回答