高亮活动菜单项

你经常想要一个带有活动导航项的导航栏。这相当容易实现。因为在 block 外的声明在子模板中是全局的,并且在布局模板求值前执行,在子模板中定义活动的菜单项:

  1. {% extends "layout.html" %}
  2. {% set active_page = "index" %}

布局模板之后就可以访问 active_page 。此外,这意味着你可以为它定义默认值:

  1. {% set navigation_bar = [
  2. ('/', 'index', 'Index'),
  3. ('/downloads/', 'downloads', 'Downloads'),
  4. ('/about/', 'about', 'About')
  5. ] -%}
  6. {% set active_page = active_page|default('index') -%}
  7. ...
  8. <ul id="navigation">
  9. {% for href, id, caption in navigation_bar %}
  10. <li{% if id == active_page %} class="active"{% endif
  11. %}><a href="{{ href|e }}">{{ caption|e }}</a>/li>
  12. {% endfor %}
  13. </ul>
  14. ...