Вот что происходит с enlive 1.1.5
(изменения исходного форматирования/пробелов добавлены для ясности):
blogen.core> (html/sniptest "<html><head>
<title><span id=\"foo\"/></title>
</head></html>"
[:#foo] (html/substitute "f"))
"<html><head><title></title></head></html>f"
blogen.core> (html/sniptest "<html><head>
<title><span id=\"foo\"/></title>
</head></html>"
[:#foo] (constantly "f"))
"<html><head><title></title></head></html>f"
Я хочу написать постоянный префикс в исходниках HTML, чтобы мой код clojure не насыщался моим конечным контентом. Но, как показывает приведенный выше фрагмент, у меня не может быть тегов span
внутри title
. Второй тест с использованием основной функции constantly
показывает, что любое дополнительное преобразование, написанное пользователем, вряд ли будет успешным.
Я бы не хотел использовать ${vars}
, потому что в шаблонах они выглядят глупо. Я предпочитаю писать достойные примеры в шаблонах, которые enlive можно потом заменить без повреждений.
Мотивация
Мне бы понравилось писать шаблоны в виде HTML и использовать элементы span
с определенными id
в качестве переменных заполнителей, в основном. Но enlive не анализирует эти теги span
внутри тегов title
как хотелось бы. Чтобы вещи были менее завершенными. Примеры:
<title><span id="article-name"/> - <span id="my-site" /></title>
or
<p>Welcome, <span id="visitor-ip" /></p>
append
, который достаточно хорош :) 21.01.2014