#compilation #project #haml #watch #compass-sass
#Сборник #проект #haml #Смотреть #compass-sass
Вопрос:
Я только сегодня начал играть с compass
и haml
. Хотя я довольно хорошо знаком с тем, как sass
это работает, и я получаю представление о том, для чего compass
это нужно sass
и как это использовать, я столкнулся с небольшим препятствием, когда дело доходит до haml
эффективного использования.
Конечно, я надеюсь, что кто-то здесь уже знает ответ на мою проблему и может дать мне небольшой толчок к haml
.
Вот чего я хотел бы достичь: автоматическая компиляция моих файлов HAML при их сохранении.
Однако проект представляет собой всего лишь крошечный статический сайт (пара страниц) для создания набора шаблонов для последующей интеграции в ExpressionEngine CMS (решение на php
основе).
Итак, имея в виду, что я использую HAML просто для ускорения начального процесса «Дизайн в HTML / CSS», какой хороший способ автоматической компиляции моих файлов HAML в HTML, в основном что-то, что дает мне haml watch
команду, которую я могу запустить в своем проекте?
Есть ли вообще что-то подобное?
Что касается платформы, на которой я работаю, у меня Mac под управлением OS X 10.6.6.
Спасибо за чтение, любые идеи, предложения, помощь были бы очень признательны.
Ответ №1:
Спасибо вам обоим @Jacob и @ Jonathan, в конечном итоге я не использовал ни один из ваших подходов в пользу использования middleman
, отсюда и ответ на мой собственный вопрос.
Для тех, кто читает эту тему, имея в виду аналогичный вопрос, причина, по которой мне так нравится middleman
, заключается в том, что он эффективно объединяет весь мой рабочий процесс в одно мини-серверное приложение. Используя mm-ini project_name
, а затем mm-server
в каталоге, я мгновенно получаю доступ ко всем Compass, HAML и SASS с возможностью простого вывода в обычный html в любой момент времени.
Вот дополнительная информация о middleman
: http://middlemanapp.com
Staticmatic и Nanoc также поддерживают HAML, но, насколько я смог выяснить, они «из коробки» не поддерживают компиляцию Compass (SASS), что для некоторых может быть плюсом, но для меня нет.
Еще раз, спасибо за ваши ответы, однако вот ответ, которому я в конечном итоге решил следовать.
Ответ №2:
Если у вас установлен 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} amp;)
end
do_growl "Watching folders and waiting for changes..."
watch(".*.haml$") { |x|
compile_haml
do_growl "Compiled HAML!"
}
Если у вас не установлен growl, просто оставьте эту часть
Комментарии:
1. Приятно, спасибо, это именно то, что я искал в другом моем проекте, поэтому ваш ответ не мог быть рассчитан лучше 🙂
Ответ №3:
Я обнаружил, что StaticMatic действительно хорош для создания статических веб-сайтов на HAML.
Ответ №4:
Возможно, потребуется немного больше инструкций, чем вам хотелось бы, но вы всегда можете установить драгоценный камень fs-events и сделать что-то вроде
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
исполняемого файла для измененных файлов.
Ответ №5:
Хотя вы, по-видимому, нашли то, что искали, я все равно опубликую другой подход, потому что middleman
это может быть не идеальным решением для всех. Мой подход использует Rake. Я написал простой rakefile, включающий задачу ‘watch’, которая перекомпилирует мои файлы sass (или compass) и haml всякий раз, когда файл изменяется. Плюс это перезагружает предварительный просмотр браузера 🙂 (Я не знаю, может ли посредник это сделать).
Файл rakefile находится на github:https://gist.github.com/1635301
Ответ №6:
Я использую Codekit, он фантастический и обрабатывает SASS, Compass, HAML, а также многие другие вещи.
Комментарии:
1. Есть ли вероятность, что вы связаны с продуктом?
2. CodeKit хорош, я сам использую его довольно часто, но поскольку он не поддерживает пользовательские компиляторы в среде RVM, довольно часто это не лучший выбор. Хотя для простых проектов этого может быть вполне достаточно. Спасибо за ваш пост.