2010-06-20 2 views
19

좋아, 그래서 나는 정말로 HAML을 좋아한다. 특히 RedCloth 및 BlueCloth와의 통합이 좋아서 Markdown과 Textile을 HAML과 섞어 사용할 수 있습니다.Ruby HAML with Django?

나는 Python과 Django도 좋아한다.

그래서 저는 장고와 함께 HAML을 사용하고 싶습니다. 이제는 이미 HAML과 유사한 구문을 Python (SHPAML 및 다른 언어)에서 복제하려는 시도가 있음을 이미 알고 있습니다. 나는 이것들을 시험해 보았고, 나쁘지는 않지만, 나는 진짜로 진짜 햄을 원한다는 것을 발견했다. 부분적으로는 구문을 사용하지만 RedCloth 및 BlueCloth와 같은 경우에도 사용됩니다.

제 질문은, HAML과 Django를 함께 사용하는 것입니다.

한 가지 해결책은 HAML 템플릿을 만든 다음 업데이트 할 때마다 명령 줄 도구를 사용하여 HTML로 컴파일하는 것입니다.

Quesiton 1 : 여기에 문제가 있습니까?

Python과 Ruby를 함께 사용하는 방법이 있는지 궁금합니다. 내가 가진 한 가지 생각은 루비 프로세스를 실제로 포크하는 것입니다. 이것은 아마 나쁜 생각 일 수 있습니다. 그러나 누구든지 이것에 대해 어떤 생각을 가지고 있습니까?

질문 2 : 파이썬을 사용하여 실제 Ruby HAML을 호출하는 것은 어떻습니까? 사람이 완료입니다 HAML의 파이썬 구현을 알고, 그리고 그 섬유 또는 마크 다운뿐만 아니라 일반 텍스트 경유 중 하나를 지원하는 경우

마지막으로, 다음 알려주세요.

질문 3 Markdown 또는 Textile 지원을 포함하여 HAML과 Python의 완벽한 번역이 있습니까?

감사합니다!

답변

8

질문 1 : 동적 HTML 파일은 미세하게 작동해야합니다 (HAML의 루비 평가 기능을 사용하여 콘텐츠를 동적으로 계획하지 않는 한). 나는 SASS 스타일 시트가있는 PHP 웹 사이트에서 비슷한 방법을 사용한다. 그냥 해킹하기 전에 디렉토리 감시 모드에서 HAML을 시작했는지 확인하십시오.)

질문 2 : 질문 2 : ruby ​​프로세스를 포크하면서 HTML 코드를 만들 수는 있지만 권장하지는 않습니다. 왜냐하면 루비를 초기화하기 때문에 인터프리터 및 필요한 파일로드에 많은 CPU 시간이 소요되므로 정적 파일을 사용하는 것이 좋습니다. 루비 평가 기능을 사용하여 런타임에 생성 된 데이터를 문서에 포함하려면 이벤트 머신을 살펴보고 서버로 만들어야합니다 (Django 응용 프로그램에서 연결할 수 있으므로 새 프로젝트를 생성하지 않고도 HTML 생성을 요청할 수 있습니다). 통역사마다).

질문 3 : 아마도 이것이 가장 힘들 수 있습니다. 버려진 GHRML이 있습니다. HAML의 작은 하위 집합 인 DMSL을 구현하는 SHPAML은 현재 매우 실험적이지만 이미 대부분의 HAML을 지원하고 Python 코드를 호출하지만 Markdown 또는 Textile 지원이 부족합니다. 그러나 필요한 모든 기능을 지원하는 Ruby HAML에 대한 대안은 아직 없습니다.

+0

http://stackoverflow.com/questions/519671/is-there-a-haml-implementation-for-use-with-python-and-django/2765628#2765628 – Andrei

0

이것은 가치가있는 것보다 더 많은 문제를 야기 할 수 있지만, Java 또는를 활용하는 것이 가능합니다.NET 플랫폼을 사용하고 Jython 또는 IronPython에서 Django 응용 프로그램을 실행하고 (약간의 조정만으로) 또한 jRuby 또는 IronRuby를 통해 Ruby의 HAML gem을 활용할 수 있습니다.

나는 일이 점점 몇 가지 단점이있을 것이라 확신합니다,하지만 난 그게 가능할 것이다 확신합니다.

다시 말하지만, 이것은 (당신은 완전히 새로운 플랫폼으로 응용 프로그램을 이동해야 거라고 생각) 가치보다 아마 더 많은 문제가 있지만,에서 작동하는 꽤 재미있는 프로젝트가 될 것입니다.

0

난 강력하게 오버 헤드가 중요하기 때문에 당신이 당신의 장고보기에서 모든 프로세스를 포크하지 않는 것이 좋습니다.

당신은 당신을 위해 템플릿을 제공하기 위해 지속적 루비 프로세스를하고 장고 코드에서 호출해야합니다. 나는 IPC 기술을 당신에게 맡긴다. 그러나 확실한 선택은 메시지 큐잉 기술이거나 루비 프로세스에 소켓을 통한 HTTP를 말하는 것이다.