Gibt es eine HAML-Implementierung zur Verwendung mit Python und Django?

72

Ich bin zufällig auf HAML gestoßen , eine interessante und schöne Möglichkeit, Inhalte zu markieren und Vorlagen für HTML zu schreiben.

Da ich Python und Django für meine Webentwicklungsanforderungen verwende, würde ich gerne sehen, ob es eine Python-Implementierung von HAML gibt (oder einige ähnliche Konzepte - müssen nicht genau identisch sein), die zum Ersetzen der Django-Vorlagen-Engine verwendet werden kann.

Ber
quelle

Antworten:

38

Sie könnten an SHPAML interessiert sein:

http://shpaml.com/

Ich pflege es aktiv. Es ist ein einfacher Präprozessor, daher ist es nicht an andere Tools wie Genshi gebunden. Ich verwende es zufällig mit Django, daher gibt es ein wenig Django-Unterstützung, aber es sollte die meisten anderen Anwendungsfälle nicht beeinträchtigen.

Steve Howell
quelle
4
Befindet sich SHPAML noch in der aktiven Entwicklung? Sie scheinen die Wartung aufgegeben zu haben und seitdem ist nicht viel passiert. Ich habe darüber nachgedacht, es (ohne den Rest des Website-Repos) auf Github zu veröffentlichen, bin mir aber nicht ganz sicher, ob dies eine gute Idee ist, da das PyPI-Paket noch vorhanden zu sein scheint.
Alan Plum
5
Laut der Mailingliste der Google-Gruppen sucht der Autor einen Betreuer. Ich habe festgestellt, dass hamlpy ( github.com/jessemiller ) ein bisschen besser ist, und die Entwicklung ist noch aktiv.
Bcoughlan
1
Ärgerliche Sache dabei: Es gibt keine einfache Möglichkeit, leere Elemente wie <div class="c" id="i"></div>ohne HTML
Callum Rogers
21

Ich suche das gleiche. Ich habe es nicht ausprobiert, aber Folgendes gefunden:

http://github.com/jessemiller/HamlPy

Roger
quelle
2
Dies funktioniert hervorragend und hat auch einen Beobachter, der dem von SASS sehr ähnlich ist. Auf jeden Fall aktiver als die Top-Antwort.
Bcoughlan
1
Dieses Projekt ist jetzt im Grunde tot; Keine Commits in 2 Jahren, keine Python 3-Unterstützung. Ich weiß nicht, wie Repo- / Paketbetreuer die Kontrolle aufgeben können ... aber das sollte passieren.
Nick T
@ NickT Py3 Unterstützung: hamlpy3
Natacha
21

Ich würde GHRML , Haml für Genshi überprüfen . Der Autor gibt zu, dass es im Grunde Haml für Python ist und dass der größte Teil der Syntax dieselbe ist (und dass es in Django funktioniert). Hier sind einige GHRML, um Ihnen zu zeigen, wie nahe sie sind:

%html
  %head
    %title Hello World
    %style{'type': 'text/css'}
      body { font-family: sans-serif; }
    %script{'type': 'text/javascript', 'src': 'foo.js'}

  %body
    #header
      %h1 Hello World
    %ul.navigation
      %li[for item in navigation]
        %a{'href': item.href} $item.caption

    #contents
      Hello World!
Chris Bunch
quelle
6

Sie könnten an Plim interessiert sein . Es ist eine ausgereifte Python-Portierung von Slim .

Maxim Avanov
quelle
4

Dies beantwortet Ihre Frage nicht wirklich, aber die CSS-Komponente von HAML, SASS , kann mit jedem Framework frei verwendet werden. Ich benutze es gerade mit Django.

Sudhir Jonathan
quelle
Sudhir, kannst du mir erzählen, wie du das eingerichtet hast? Die Installation verwendet "gem install", also haben Sie wohl die Quelle heruntergeladen und auf andere Weise manipuliert? DETAILS bitte! =]
Carl Crott
1
Es ist kaum so kompliziert ... Ich verwende das Compass-Framework - es wird mit einem Überwachungsprogramm geliefert, das .scss-Dateien automatisch in .css kompiliert. Werfen
Sudhir Jonathan
3

Ich bin mir nicht sicher, wie der Status des GHRML-Bits ist, da ich es erst kürzlich untersucht habe. Ich kann kein Repo dafür finden, der ursprüngliche Entwickler hat keine Zeit mehr dafür und die Wartung wurde von jemand anderem mit Interesse an dem Projekt übernommen. Alle zusätzlichen Informationen hierzu wären hilfreich.

Leider habe ich im Laufe der Zeit angefangen, meinen eigenen HAML-Prozessor zu schreiben;)

http://dasacc22.wordpress.com/2010/05/03/python-implementation-of-haml/

Es ist im Moment in keiner Weise für die Produktion geeignet (es ist jetzt buchstäblich ein 4 Tage altes Kind, aber wie 60+ Stunden in diesen 4 Tagen voll), aber jeder Interessierte kann es hier nachlesen. Es sind bereits eine Reihe von Funktionen implementiert, die es als Spielzeug nützlich machen. Wenn ich die Codebasis in der nächsten Woche bereinige, hoffe ich, dass sie alle meine benutzerdefinierten XSLT / xpath-Erweiterungen und -Vorlagen ersetzt.

Daniel Skinner
quelle
3

Mein Projekt, PyHAML , ist ein Mako-Präprozessor, der Ihnen eine sehr HAML-ähnliche Syntax bietet. Einige der Ruby lassen sich nicht sehr gut in Python übersetzen, daher gibt es einige Unterschiede, aber der Geist ist der gleiche.

Mike Boers
quelle
3

Ich bin auf Jade gestoßen, als ich einige node.js-Arbeiten erledigte, und als ich nach Django zurückkehrte, suchte ich nach etwas Ähnlichem. Ich habe Pyjade gefunden und obwohl es fast genau das ist, wonach ich suche, behandelt es Fehler und Debugging in Django ziemlich schlecht.

Aaron Caito
quelle
Das ist fantastisch. Sollte die akzeptierte Antwort sein. Zum Zeitpunkt dieses Kommentars noch in aktiver Entwicklung
Ben
2

Daniel Skinners Projekt (oben erwähnt) scheint in DMSL umbenannt worden zu sein. Es scheint sehr leistungsfähig zu sein, emuliert HAML, ermöglicht es Ihnen jedoch, Python-Funktionen, Lambdas, Verständnis usw. in seiner Syntax zu verwenden: https://github.com/dasacc22/dmsl

Zeekay
quelle
1
Die DMSL-Github-Seite (oder tatsächlich dasacc22) existiert nicht mehr. Jetzt bei github.com/dskinner/dmsl
Matthias Urlichs
2

Ich würde dieses verwenden, es scheint das Standard zu sein: https://pypi.org/project/HamlPy3/0.83.0/

Angenommen, Sie verwenden Python3, sollten Sie keine Probleme mit Django, Flask oder sogar Standalone haben.

Ariel Monaco
quelle