Руби ХАМЛ с Джанго? - PullRequest
       39

Руби ХАМЛ с Джанго?

19 голосов
/ 20 июня 2010

Хорошо, я действительно люблю ХАМЛ.В частности, мне нравится интеграция с RedCloth и BlueCloth, поэтому я могу использовать Markdown и Textile, смешанные с моим HAML.

Я также люблю Python и Django.

Итак, я хотел бы использовать HAMLс Джанго.Теперь я уже понимаю, что есть некоторые попытки клонировать HAML-подобный синтаксис в Python (SHPAML и другие).Я попробовал это, и хотя они не плохие, я обнаружил, что я действительно хочу настоящий HAML.Частично для его синтаксиса, но также и для таких вещей, как RedCloth и BlueCloth.

Итак, мой вопрос, как заставить HAML и Django работать вместе?

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

Вопрос 1: У меня возникнут какие-либо проблемы здесь?

Мне также интересно, есть ли способ заставить Python и Ruby играть немного больше вместе.Одна идея, которая у меня была, заключалась в том, чтобы на самом деле исключать процессы Ruby.Вероятно, это плохая идея, но у кого-нибудь есть какие-либо мысли по этому поводу?

Вопрос 2: Как насчет использования Python для вызова реального Ruby HAML?

Наконец, еслиКто-нибудь знает о реализации HAML на Python, которая complete и которая поддерживает либо Textile, либо Markdown, а также обычный текстовый переход, тогда дайте мне знать.

Вопрос 3: Есть ли полный перевод HAML на Python, включая поддержку Markdown или Textile?

Спасибо!

Ответы [ 4 ]

8 голосов
/ 28 июня 2010

Вопрос 1 : статические HTML-файлы должны работать нормально (если только вы не планируете использовать функцию оценки Ruby в HAML для динамического содержимого).Я использую аналогичный способ на php-сайте с таблицами стилей SASS.Просто убедитесь, что вы запускаете HAML в режиме просмотра каталогов, прежде чем приступить к взлому;)

Вопрос 2 : хотя разветвление процесса ruby ​​для создания HTML-кода возможно, но я не рекомендую егоВы, потому что инициализация интерпретатора ruby ​​и загрузка необходимых файлов занимает много времени процессора, поэтому вам лучше придерживаться статических файлов.Если вам нужна функция оценки ruby ​​для включения данных, созданных во время выполнения, в документ, вам лучше взглянуть на eventmachine и сделать его сервером (чтобы ваше приложение Django могло подключиться к нему и запросить генерацию HTML, не разветвляя новыйпереводчик каждый раз).

Вопрос 3 : возможно, это самое сложное.Есть GHRML, который заброшен;SHPAML, который реализует только небольшое подмножество HAML, DMSL , который в настоящее время очень экспериментален, но уже поддерживает большую часть HAML и также вызывает код Python, но не имеет поддержки Markdown или Textile.Но, очевидно, нет альтернативы (пока) Ruby HAML, которая поддерживает все необходимые функции.

2 голосов
/ 17 августа 2010
1 голос
/ 22 августа 2011

Я настоятельно рекомендую вам не исключать какие-либо процессы из ваших представлений django, потому что накладные расходы значительны.

У вас должен быть постоянный процесс ruby, который будет обслуживать ваши шаблоны для вас и вызывать его из кода django.Я оставляю вам технологию IPC, но очевидным выбором будет либо какая-то технология очереди сообщений, либо передача HTTP через сокет процессу ruby.

0 голосов
/ 30 июня 2010

Несмотря на то, что это может привести к большим проблемам, чем оно того стоит, ВЕРОЯТНО возможно использовать платформу Java или .NET и при этом запускать ваше приложение Django в Jython или IronPython (с некоторыми небольшими изменениями, я уверен), а также быть в состоянии использовать гем HAML Руби через jRuby или IronRuby.

Я уверен, что будут некоторые причуды, чтобы заставить это работать, но я уверен, что это будет возможно.

Опять же, это, вероятно, намного больше проблем, чем стоит (учитывая, что вам придется переместить ваше приложение на совершенно новую платформу), но это был бы довольно забавный проект для работы.

...