Рекурсивная генерация HTML с помощью Гамлета
Я хотел бы создать дерево комментариев.
<ul>
<li> First comment
<ul>
<li> reply to first comment
<li> another reply to first comment
</ul>
</li>
</ul>
у меня есть Tree (Entity Comment)
состав. Я хотел бы иметь все преимущества Гамлета (#{commentContent comment}
будет защищен от XSS).
Как я могу добиться рекурсивного рендеринга Html с помощью Hamlet?
1 ответ
Решение
Вы, вероятно, не можете сделать это в простой деревушке, но вы можете создать вспомогательную функцию commentTree, к которой вы можете получить доступ, используя ^{commentTree comments}
, Эта функция вернула бы Гамлета и может сама использовать [hamlet|<li>^{commentTree subcomment}|]
для рекурсии и [hamlet|<u>#{commentContent comment}|]
для безопасной интерполяции.
(Вдохновлен этим ответом.)