Могу ли я использовать макросы и переменные Jinja для динамического изменения классов панели навигации в шаблоне?Html

Программисты Html
Ответить
Anonymous
 Могу ли я использовать макросы и переменные Jinja для динамического изменения классов панели навигации в шаблоне?

Сообщение Anonymous »

Я создал веб-сайт с использованием HTML и CSS, который теперь хочу перенести в шаблоны Pelican/Jinja. Я хочу, чтобы панель навигации автоматически выделяла текущий раздел при создании страницы.
Например, на странице «Маст-шапка» (которая находится в разделе «О программе») я хочу, чтобы вкладка «О программе» на панели навигации имела другой цвет. Раньше я делал это, добавляя класс CSS (и ) вручную. Теперь я хочу сделать это более эффективно, используя макросы и переменные Jinja. Я также хочу добавить еще одну внутреннюю кнопку навигации на текущей странице.
Вот соответствующая часть base.html:

Код: Выделить всё

{% block nav %}

{% set btnH = '[url=/]Home[/url]'%}
{% set btnA = '[url=/about.html]About[/url]'%}

{% macro set_curr (section) %}
{% if section == 'Home' %}
{% set btnH = '[url=/]Home[/url]'%}
{% elif section == 'About' %}
{% set btnA = '[url=/about.html]About[/url]'%}
{% endif %}
{% endmacro %}

{{ set_curr("{{ section }}") }}

{{ btnH }}
{{ btnA }}
{% endblock nav %}
И в index.html:

Код: Выделить всё

{% extends "base.html" %}
{% block title %}Homepage{% endblock title %}
{% block section %}{% set section = 'Home' %}{% endblock section %}
{% block content %}

Lorem ipsum

{% endblock content %}
Но когда я запускаю его, на панели навигации просто отображается:

Код: Выделить всё

[url=/]Home[/url]
[url=/about.html]About[/url]
Классы не менялись и не добавлялись . В остальном шаблон работает нормально.
Почему это не работает? Что я неправильно понимаю в макросах Jinja или области видимости переменных?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ses-in-a-t
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»