2009-02-06 5 views
69

Ich stolperte zufällig über HAML, eine interessante und schöne Möglichkeit, Inhalte zu markieren und Vorlagen für HTML zu schreiben.Gibt es eine HAML-Implementierung für die Verwendung mit Python und Django

Da ich Python und Django für meine Webentwicklung brauche, würde ich gerne sehen, ob es eine Python-Implementierung von HAML (oder einige ähnliche Konzepte - muss nicht genau identisch sein), die verwendet werden kann, um die Django zu ersetzen Vorlagen-Engine.

Antwort

21

Ich würde auschecken GHRML, Haml für Genshi. Der Autor gibt zu, dass es im Grunde Haml für Python ist und dass die Syntax größtenteils dieselbe ist (und dass es in Django funktioniert). Hier einige GHRML nur um Ihnen zu zeigen, wie nah 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! 
+2

Dieser Link gibt 404 zurück. Projekt wird nicht aufgegeben, oder? –

+0

Dito. Die Seite gibt auch Fehler für mich zurück. –

+1

Borken Link, kann dies aktualisiert werden? – arbales

4

Dies gilt nicht wirklich Ihre Frage beantworten, aber die CSS-Komponente von HAML, SASS können frei mit jedem Rahmen verwendet werden. Ich benutze es gerade jetzt mit Django.

+0

Sudhir könnten Sie mir erzählen, wie Sie das einrichten? Bei der Installation wird "gem install" verwendet. Ich nehme an, Sie haben die Quelle heruntergeladen und auf andere Weise manipuliert. DETAILS bitte! =] –

+1

Es ist kaum so kompliziert ... Ich benutze das Compass-Framework - es kommt mit einem Watch-Programm, das .scss-Dateien automatisch nach .css kompiliert. Werfen Sie einen Blick auf http://compass-style.org/ –

36

Sie könnten in SHPAML interessieren:

http://shpaml.com/

ich sie aktiv aufrechterhalten werde. Es ist ein einfacher Präprozessor, daher ist es nicht an andere Tools wie Genshi gebunden. Ich benutze es zufällig mit Django, also gibt es ein bisschen Django-Unterstützung, aber es sollte die meisten anderen Anwendungsfälle nicht stören.

+4

Ist SHPAML noch in der aktiven Entwicklung? Sie scheinen den Unterhalt aufgegeben zu haben und seither ist nicht viel passiert. Ich habe erwogen, es (ohne den Rest des Website-Repos) auf Github zu verzichten, aber ich bin mir nicht ganz sicher, ob das eine gute Idee ist, da das PyPI-Paket immer noch da ist. –

+0

@Alan, noch eine Frage hier ... – rapadura

+0

Ich möchte es auch wissen. – zakdances

3

Ich bin mir nicht sicher, was der Status des GHRML-Bit ist, wie ich 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 übernommen, der Interesse an dem Projekt hat. Alle zusätzlichen Informationen dazu wären hilfreich.

Leider, wie diese Dinge gehen, begann ich meine eigenen HAML Stil Prozessor zu schreiben;)

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

Es ist in keiner Art und Weise fit für den produktiven Einsatz im Moment (seine wahrsten Sinne des Wortes ein 4 alte Tag Kind jetzt aber wie 60 + Stunden in diesen 4 Tagen vollgestopft) aber jeder Interessierte kann es hier überprüfen. Es hat eine Reihe von Funktionen bereits implementiert, die es als Spielzeug nützlich machen, und wenn ich die Codebase in der nächsten Woche aufräumen werde, hoffe ich, dass es alle meine benutzerdefinierten XSLT/XPath-Erweiterungen und Vorlagen, die ich habe, ersetzt.

18

Ich bin auf der Suche nach dem gleichen. Ich habe es nicht ausprobiert, aber diese gefunden:

http://github.com/jessemiller/HamlPy

+2

Das funktioniert gut und hat auch einen Beobachter ähnlich wie SASS's. Definitiv aktiver als die beste 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. –

+0

@NickT Py3-Unterstützung: hamlpy3 – Natacha

2

Daniel Skinners Projekt (oben erwähnt) scheint in DMSL umbenannt worden zu sein. Es scheint sehr mächtig, emuliert HAML sondern ermöglicht es Ihnen Python-Funktionen zu verwenden, Lambda-Ausdrücke, Comprehensions etc in seiner Syntax: https://github.com/dasacc22/dmsl

+1

Die Github-Seite DMSL (oder tatsächlich dasacc22) existiert nicht mehr. Jetzt bei https://github.com/dskinner/dmsl –

3

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

3

Ich lief über Jade tun einige node.js Arbeit und bei der Rückkehr nach Django war auf der Suche nach etwas Ähnlichem. Ich habe gefunden Pyjade und während es ist fast genau das, was ich suche es behandelt Fehler und Debugging eher schlecht in Django.

+0

Das ist fantastisch. Sollte die akzeptierte Antwort sein. Zur Zeit dieses Kommentars noch in aktiver Entwicklung – Ben

6

Das könnte Sie interessieren: Plim. Es ist ein reifer Python-Port von Slim.