werdi
August 27, 2020, 9:46am
1
Can anyone let me know how I would include an external link into the header menu of my site? Would I modify the base.html.twig
file? If so, how?
Thanks!
<body id="top" class="{{ page.header.body_classes ?: 'header-image fullwidth' }}">
<div id="sb-site">
{% if not page.header.hide_header %}
{% block header %}
<header id="header">
<div id="logo">
<h3><a href="{{ base_url == '' ? '/' : base_url }}"><img src="/user/img/MariaBusqueLogo2.png"/></a></h3>
</div>
<div id="navbar">
{% block header_extra %}{% endblock %}
{% if not page.header.hide_navigation %}
{% block header_navigation %}
{% include 'partials/navigation.html.twig' %}
{% endblock %}
{% endif %}
<span class="panel-activation sb-toggle-left navbar-left menu-btn fa fa-bars"></span>
</div>
</header>
{% endblock %}
{% endif %}
{% if not page.header.hide_langswitcher|defined(false) %}
{% if config.plugins.langswitcher.enabled %}
{% include 'partials/langswitcher.html.twig' %}
{% endif %}
{% endif %}
{% block showcase %}{% endblock %}
1 Like
@werdi , Have you tried the directions for adding custom menu items from the README?
By default, Grav generates the menu from the page structure. However, there are times when you may want to add custom menu items to the end of the menu. This is now supported in Antimatter by creating a menu list in your site.yaml
file. An example of this is as follows:
menu:
- text: Source
url: https://github.com/getgrav/grav
- icon: twitter
url: http://twitter.com/getgrav
In templates/partials/navigation.html.twig
you will find the following snippet that adds the (external) links to the menu.
Starting at line 40:
{% for mitem in site.menu %}
<li>
<a href="{{ mitem.url }}">
{% if mitem.icon %}<i class="fa fa-{{ mitem.icon }}"></i>{% endif %}
{{ mitem.text }}
</a>
</li>
{% endfor %}
2 Likes
In addition to the helpful info @anon76427325 provided, you can also use Pages within Grav itself to refer to external URLs, here is a brief video about that approach:
VIDEO
This approach should also work with all themes.
3 Likes
@werdi . And to add even more alternatives…
Alternative 3:
In Admin, create a new page.
In the modal popup, set the template to ‘External’
Then in the next page, add the url to the external site:
Alternative 4:
Of course, knowing Grav, you could also create page ‘external.md’ manually and add the following config in the header:
---
title: 'External Link'
external_url: 'https://your-external-site'
---
So, you have 4 alternatives now… Surely one of these should fit your needs
3 Likes
werdi
August 30, 2020, 4:25pm
5
Thank you @anon76427325 and @paulhibbitts for your support! I chose the 3rd option. Thanks for taking the time to reply.
1 Like