我知道我可以通过覆盖header_site_navigation_tabs块来自定义标准模板中页面顶部的导航链接集,例如在 [datahub.io 自定义](https://github.com/okfn/ckanext-datahub/blob/3d64748fc1f3c4499780b199e971a5929ba69315/ckanext/datahub/templates/header.html#L9)
{% block header_site_navigation_tabs %}
{{ h.build_nav_main(
('search', _('Datasets')),
('organizations_index', _('Organizations')),
('about', _('About'))
) }}
{% endblock %}
但是,我想添加指向此列表的链接到外部网站?我可以做吗(见最后的额外条目):
{% block header_site_navigation_tabs %}
{{ h.build_nav_main(
('search', _('Datasets')),
('organizations_index', _('Organizations')),
('about', _('About'))
('http://blog.datahub.io/', 'Blog')
) }}
{% endblock %}
不,你不能那样做。帮助程序方法查找内部声明的路由 ( config['routes.named_routes']
)。但是,您可以简单地添加一个 li 元素,因此整个块看起来像这样
{% block header_site_navigation %}
<nav class="section navigation">
<ul class="nav nav-pills">
{% block header_site_navigation_tabs %}
{{ h.build_nav_main(
('search', _('Datasets')),
('organizations_index', _('Organizations')),
('about', _('About'))
) }}
<li><a href="http://blog.datahub.io">Blog</a></li>
{% endblock %}
</ul>
</nav>
{% endblock %}