From 6d9d41359c46882d9b64a446d5a83fac5b3e20a7 Mon Sep 17 00:00:00 2001
From: Peter Mosses <18308236+pdmosses@users.noreply.github.com>
Date: Fri, 14 Oct 2022 22:08:42 +0200
Subject: [PATCH] Fix duplicated external links in collections (#1001)

Fix external links and collections

The navigation should only display the external links once, after the links to pages that are not in collections.

The test for PR #876 at https://just-the-docs.github.io/just-the-docs-tests/navigation/external-links fails with v0.4.0.rc3,
and succeeds when the updated `nav.html` is added locally.

The docs need updating to clarify how the interaction between the collections feature and the external links feature is resolved.
---
 _includes/nav.html           | 20 +++++++++++---------
 docs/navigation-structure.md |  6 ++++--
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/_includes/nav.html b/_includes/nav.html
index 19a69e46..93ab7be3 100644
--- a/_includes/nav.html
+++ b/_includes/nav.html
@@ -183,15 +183,17 @@
       </li>
     {%- endunless -%}
 {%- endfor -%}
-{%- assign nav_external_links = site.nav_external_links -%}
-{%- for node in nav_external_links -%}
-      <li class="nav-list-item external">
-        <a href="{{ node.url | absolute_url }}" class="nav-list-link external">
-          {{ node.title }}
-          {% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
-        </a>
-      </li>
-{%- endfor -%}
+{%- unless include.key -%}
+  {%- assign nav_external_links = site.nav_external_links -%}
+  {%- for node in nav_external_links -%}
+        <li class="nav-list-item external">
+          <a href="{{ node.url | absolute_url }}" class="nav-list-link external">
+            {{ node.title }}
+            {% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
+          </a>
+        </li>
+  {%- endfor -%}
+{%- endunless -%}
 </ul>
 
 {%- comment -%}
diff --git a/docs/navigation-structure.md b/docs/navigation-structure.md
index d127369e..badae37c 100644
--- a/docs/navigation-structure.md
+++ b/docs/navigation-structure.md
@@ -252,10 +252,9 @@ aux_links:
 ## External Navigation Links
 
 To add external links to the navigation, add them to the `nav_external_links` [configuration]({{ site.baseurl }}{% link docs/configuration.md %}) option in your site's `_config.yml` file.
-External links will appear under all other items in the listing order.
+External links will appear in the navigation after the links to ordinary pages, but before any collections.
 
 #### Example
-
 {: .no_toc }
 
 ```yaml
@@ -266,6 +265,9 @@ nav_external_links:
     hide_icon: false # set to true to hide the external link icon - defaults to false
 ```
 
+The external links are decorated by an icon, which distinguishes them from internal links.
+You can suppress the icon by setting `hide_icon: true`.
+
 ---
 
 ## In-page navigation with Table of Contents
-- 
GitLab