2009-02-06 19 views
69

Ocurrí tropezar con HAML, una forma interesante y hermosa de marcar contenidos y escribir plantillas para HTML.¿Hay una implementación HAML para usar con Python y Django

Dado que uso Python y Django para mi necesidad de desarrollo web, me gustaría ver si hay una implementación Python de HAML (o algunos conceptos similares - no necesitan ser exactamente idénticos) que puedan usarse para reemplazar el Django motor de plantilla.

Respuesta

21

echaría un vistazo a GHRML, Haml para Genshi. El autor admite que es básicamente Haml para Python y que la mayoría de la sintaxis es la misma (y que funciona en Django). He aquí algunos GHRML sólo para mostrar lo cerca que están:

%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

Ese enlace devuelve 404. El proyecto no está abandonado ¿verdad? –

+0

Ídem. La página me devuelve un error también. –

+1

Enlace de Borken, ¿se puede actualizar esto? – arbales

4

Esta realidad no soluciona su problema, pero el componente de CSS HAML, SASS, se puede utilizar libremente con cualquier marco. Lo estoy usando ahora mismo con Django.

+0

Sudhir ¿podría decirme acerca de cómo configurar esto? La instalación usa "instalación de gemas", así que supongo que has descargado la fuente y la has manipulado de otra forma. DETALLES por favor! =] –

+1

No es tan complicado ... Estoy usando el framework Compass: viene con un programa de vigilancia que compila automáticamente archivos .scss en .css. Eche un vistazo a http://compass-style.org/ –

36

Usted puede estar interesado en SHPAML:

http://shpaml.com/

estoy manteniendo activamente. Es un preprocesador simple, por lo que no está vinculado a ninguna otra herramienta como Genshi. Lo uso con Django, por lo que hay un poco de compatibilidad con Django, pero no debería interferir con la mayoría de los otros casos de uso.

+4

¿SHPAML aún está en desarrollo activo? Pareces haber abandonado el mantenimiento y desde entonces no ha pasado mucho. Estaba pensando en usarlo (sin el resto del repositorio del sitio web) en Github, pero no estoy del todo seguro de si esta es una buena idea, ya que el paquete PyPI parece estar aún presente. –

+0

@ Alan, una pregunta más aquí ... – rapadura

+0

Me gustaría saberlo también. – zakdances

3

No estoy seguro de cuál es el estado del bit GHRML, ya que hace poco lo estaba buscando. No se puede encontrar un repositorio, el desarrollador original ya no tiene tiempo y el mantenimiento fue recogido por otra persona interesada en el proyecto. Cualquier información adicional sobre esto sería útil.

Por desgracia, ya que estas cosas pasan, empecé a escribir mi propio procesador estilo HAML;)

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

Está en ningún ajuste camino para su uso en producción en el momento (su, literalmente, un lactante de 4 días ahora pero como 60 + horas abarrotadas en esos 4 días) pero cualquier persona interesada puede verificarlo aquí. Tiene una serie de características ya implementadas que lo hacen útil como juguete, y mientras limpio la base de código durante la próxima semana, espero ver que reemplace todas mis extensiones personalizadas XSLT/xpath y plantillas que tengo.

18

estoy buscando lo mismo. Yo no lo he probado, pero se encontró lo siguiente:

http://github.com/jessemiller/HamlPy

+2

Esto funciona muy bien y también tiene un observador muy parecido al de SASS. Definitivamente más activo que la respuesta principal. – bcoughlan

+1

Este proyecto ahora está básicamente muerto; no se compromete en 2 años, no admite Python 3. No sé cómo los encargados de repo/package pueden ceder el control ... pero eso debería suceder. –

+0

Soporte de @NickT Py3: hamlpy3 – Natacha

2

El proyecto de Daniel Skinner (mencionado anteriormente) parece haber cambiado de nombre a DMSL. Parece muy potente, pero emula HAML le permite utilizar las funciones de Python, lambdas, etc comprensiones en ella de sintaxis: https://github.com/dasacc22/dmsl

+1

La página de DMSL (o de hecho dasacc22) github ya no existe. Ahora en https://github.com/dskinner/dmsl –

3

Mi proyecto, PyHAML, es un preprocesador Mako que le da muy sintaxis HAML similar. Algunos de los Ruby no se traducen muy bien a Python, por lo que hay algunas diferencias, pero el espíritu es el mismo.

3

Me encontré con jade haciendo algún trabajo node.js y cuando volvía a Django estaba buscando algo similar. Encontré Pyjade y aunque es casi exactamente lo que estoy buscando, maneja los errores y la depuración bastante mal dentro de Django.

+0

Esto es fantástico. Debería ser la respuesta aceptada. Todavía en desarrollo activo en el momento de este comentario – Ben

6

Usted podría estar interesado en Plim. Es un puerto python maduro de Slim.

Cuestiones relacionadas