Существует ли реализация HAML для использования с Python и Django

Я случайно наткнулся на HAML, интересный и красивый способ разметки содержимого и написания шаблонов для HTML.

Поскольку я использую Python и Django для своей веб-разработки, я хотел бы посмотреть, есть ли реализация HAML на Python (или некоторые похожие концепции - не обязательно должны быть точно идентичными), которую можно использовать для замены движка шаблонов Django.

Ответ 1

Возможно, вас заинтересует SHPAML:

http://shpaml.com/

Я активно поддерживаю это. Это простой препроцессор, поэтому он не привязан к каким-либо другим инструментам, таким как Genshi. Я использую его с Django, поэтому поддержка Django немного, но это не должно мешать большинству других случаев использования.

Ответ 2

Я проверил GHRML, Haml для Genshi. Автор признает, что это в основном Haml для Python и что большая часть синтаксиса одинакова (и что он работает в Django). Вот некоторые GHRML, чтобы показать вам, насколько они близки:

%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!

Ответ 4

Вам может быть интересно Plim. Это зрелый порт python Slim.

Ответ 5

Это не отвечает на ваш вопрос, но компонент CSS HAML, SASS, может использоваться свободно с любой структурой, Я использую его прямо сейчас с Django.

Ответ 6

Я не уверен, какой статус имеет бит GHRML, поскольку я только недавно изучал его. Невозможно найти репо для этого, у первоначального разработчика больше нет времени, и обслуживание было поднято кем-то еще с интересом к проекту. Любая дополнительная информация об этом будет полезна.

К сожалению, поскольку все это происходит, я начал писать свой собственный процессор стиля HAML;)

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

Он никоим образом не подходит для производства на данный момент (его буквально 4-дневный младенец теперь, но как 60 + час, переполненный за эти 4 дня), но все желающие могут это проверить здесь. Он имеет ряд функций, которые уже реализованы, что делает его полезным как игрушка, и когда я очищаю кодовую базу в течение следующей недели, я надеюсь увидеть, что она заменит все мои собственные расширения XSLT/xpath и шаблоны, которые у меня есть.

Ответ 7

Мой проект PyHAML, является препроцессором Mako, который дает вам очень синтаксис, похожий на HAML. Некоторые из Ruby не очень хорошо переводятся на Python, поэтому есть некоторые различия, но дух тот же.

Ответ 8

Я столкнулся с нефритом, выполнив некоторую работу node.js, и, вернувшись в Django, искал что-то подобное. Я нашел Pyjade, и хотя почти точно, что я ищу, он обрабатывает ошибки и отлаживает довольно плохо в Django.

Ответ 9

Я только что сделал это http://github.com/fitoria/django-haml, но он все еще находится на очень ранней стадии, но он работает.

Ответ 10

Проект Daniel Skinner (упомянутый выше), похоже, был переименован в DMSL. Он кажется очень мощным, эмулирует HAML, но позволяет использовать в нем синтаксис функций python, lambdas, понятий и т.д. https://github.com/dasacc22/dmsl

Ответ 11

Я хотел бы использовать этот, кажется, самый стандартный: https://pypi.org/project/HamlPy3/0.83.0/

Предполагая, что вы используете Python3, вы не должны сталкиваться с какими-либо проблемами, используя его с Django, Flask или даже автономно.