Как добавить динамически объединенное имя файла для тега include в Selmer (Clojure)?

Я новичок в Clojure. Моя проблема связана с библиотекой шаблонов Selmer.

Что я хочу сделать, это применить переменную следующим образом. Но это не работает;

{% include  {{right-page}} %} -------  X

(здесь правая страница представляет собой объединенную строку для имени целевого файла)

2 ответа

Решение

Если правая страница является верной строкой, которую вы передаете на страницу, я думаю, что это будет работать для вас

{% include right-page %}

Любые цели для включения в selmer должны быть известны, когда selmer компилирует шаблон, что происходит без переданных данных. Это означает, что, учитывая шаблон:

template.html_template:

{% include right-page %}

и код закрытия:

(selmer/render-file template.html_template 
                    {right-page "some/other/template/file.html_template})

Вы можете ожидать исключения. Что касается обхода, вы могли бы рассмотреть

(selmer/render-file template.html_template 
  {right-page (selmer/render-file 
                "some/other/template/file.html_template {})})

или что-то подобное.

Вам, конечно, придется обновить template.html, чтобы включить уже обработанный текст и отключить экранирование, например, так:

template.html_template:

{{right-page|safe}}
Другие вопросы по тегам