В настоящее время я разрабатываю небольшую CMS, используя замечательный Enlive в качестве движка шаблонов.В Enlive есть макрос at
, который принимает узел (карту), задающий фрагмент HTML, и произвольное количество кортежей, каждый из которых состоит из селектора (вектор) и преобразования (замыкание).1006 * Теперь я хочу генерировать кортежи в зависимости от входящих данных / контекста.Я перепробовал много разных вещей без успеха.Например
(let [this (repository/u "http://example.com/ACMECorp")
statements (repository/find-by-subject this)
context {:depth 1}]
`(at (snippet-for 'this 'context)
[root] (set-attr :about (str 'this))
~@(loop [rules []
st statements]
(if-not (seq st)
rules
(recur (conj rules
`[:> (attr= :property ~(str (repository/predicate (first st))))]
`(content (renderit ~(repository/object (first st)) 'context)))
(rest st))))))
Любая помощь высоко ценится.
-Jochen