1
我想在Django中使用不同的模板語言。它實際上是HamlPy,它是一種HAML啓發式語言,可直接轉換爲Django模板。 因此,我可以這樣做Django自定義模板語言
from hamlpy import Compiler
compiler = Compiler()
django_template_string = compiler.process(hamlpy_template_string)
請注意,它不需要任何上下文 - 它只是模板文本預處理。生成的文本可以以正常方式用作Django模板。
所以,我想包裝內即會擺好intervent模板裝載和預處理它的Django之前試圖渲染,甚至解析它的一些殺出-EX-MACHINA代碼此代碼。
從我所看到的,如果我能重載Parser
類,做
def parse(str):
str = preprocess(str)
super().parse(str)
這將是最透明的解決方案。
我知道自定義標籤和過濾器。我意識到我的任務可以通過「global」`preprocess_hamlpy'標籤來解決。
但我不知道它是否能夠以不同的方式來完成。
肯定的,這是很有意義的,但限制了用戶能夠伸出一種類型的模板裝載(或需要多個相同的拷貝)。這是推薦的方式嗎? – Guard 2011-06-09 08:00:46
我的意思是,我可以從FSLoader和預處理它的發現之後,該文件繼承,但後來我將需要複製它AppDirsLoader – Guard 2011-06-09 08:01:30
您可以編寫一個封裝了裝載機。 – 2011-06-09 08:03:28