Захватить содержание тела в Мако? - PullRequest
2 голосов
/ 20 сентября 2011

Можно ли получить визуализированное содержимое тела из шаблона Mako?Я имею в виду, что могу отображать тело, используя ${self.body()}, но что, если я сначала хочу что-то с ним сделать?

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Очевидно, что я искал функцию capture .Из документов:

Другой способ буферизовать вывод def или любого вызываемого по Мако вызова - использовать встроенную функцию захвата.Эта функция выполняет операцию, аналогичную указанной выше операции буферизации, за исключением того, что она указана вызывающей стороной.

${" results " + capture(somedef) + " more results "}

Или в моем случае:

<%
    body = capture(self.body)
    # etc.
%>
1 голос
/ 20 сентября 2011

Один из подходов состоит в том, чтобы пропустить его через пользовательский фильтр

<%
    def myFilter(txt): 
        return "whatever I want to do it"
>%

${self.body() | myFilter}
...