Ich bin ziemlich aufgeregt über HAML und CoffeeScript und arbeite an einer Anleitung, die zeigt, wie man sie in einer Nicht-Rails-Umgebung verwendet. So hat haml einfaches BefehlszeilenprogrammVerwenden von HAML mit benutzerdefinierten Filtern
haml input.haml output.html.
Und was groß ist, gibt es ein Projekt (eines von vielen Gabeln: https://github.com/aussiegeek/coffee-haml-filter) zu verwenden, sollten auf der Bereitstellung benutzerdefinierte Filter, Coffeescript in JS konvertiert innerhalb von HAML Dateien. Leider (oder fehlt mir etwas?) Erlaubt haml nicht benutzerdefinierte Filter in der Befehlszeile oder mit einer Konfigurationsdatei zu spezifizieren.
I (kein Ruby-Fan oder sogar wissen, dass es genug ist) geschafft, es zu lösen (basierend auf einigen cleveren Vorschlag irgendwo auf SO) mit dieser Hilfsskript: haml.rb
require 'rubygems'
require 'active_support/core_ext/object/blank'
require 'haml'
require 'haml/filters/coffee'
template = ARGV.length > 0 ? File.read(ARGV.shift) : STDIN.read
haml_engine = Haml::Engine.new(template)
file = ARGV.length > 0 ? File.open(ARGV.shift, 'w') : STDOUT
file.write(haml_engine.render)
file.close
die recht einfach ist, außer benötigt am Anfang.
Nun werden die Fragen sind:
1) sollte ich es wirklich verwenden, oder gibt es eine andere Art und Weise on-demand HAML zu HTML Zusammenstellung mit benutzerdefinierten Filtern zu haben?
2) Was ist mit HAML Watch-Modus? Es ist großartig und praktisch. Ich kann natürlich ein Abfrageskript in python
erstellen, das die Verzeichnisänderungen beobachten und dieses .rb
Skript benennen wird, aber es sieht wie eine schmutzige Lösung aus.
Neben Heikki antworten, meine Lösung folgt: https://gist.github.com/759002
Fühlen Sie sich frei zu verwenden, wenn Sie es nützlich finden ja
Ich lese haml - helfen, natürlich%) 1) versuchte dies bereits - kein Glück. Beachten Sie auch die Anzahl der benötigten Module (z. B. wird ActiveSupport für leere benötigt?Funktion) 2) in Python ist es auch ziemlich einfach, obwohl sieht aus wie bereits implementiert Feature reimplementieren, und hat einige Probleme mit warten, bis die Kompilierung abgeschlossen ist, bevor der Watcher – Guard
die Antwort – Heikki
Danke für Ihre Antwort abgeschlossen. Ich akzeptiere es, obwohl ich es bereits mit Python-Polling-Skript gemacht habe, das auch das Zielverzeichnis versteht. – Guard