Question

I know that I can customize the set of navigation links at the top of the page in the standard template by overriding the header_site_navigation_tabs block e.g. as in the [datahub.io customization](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 %}

However, I want to add a link to this list to an external website? Can I just do (see extra entry at the end):

{% block header_site_navigation_tabs %}
        {{ h.build_nav_main(
          ('search', _('Datasets')),
          ('organizations_index', _('Organizations')),
          ('about', _('About'))
          ('http://blog.datahub.io/', 'Blog')
        ) }}
{% endblock %}
Was it helpful?

Solution

No, you can't do that. The helper method looks for routes declared internally (config['routes.named_routes']). You can, however, simply add a li element, so the whole block would look like this

{% 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 %}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top