diff --git a/templates/docs/_data/plugins.py b/templates/docs/_data/plugins.py
index 1b356fed9bb6222b1d6ad82acd0deded524f6ebd..3fa53275ab6ea0fab7c9be03fbae29ceaaaaade1 100644
--- a/templates/docs/_data/plugins.py
+++ b/templates/docs/_data/plugins.py
@@ -100,6 +100,7 @@ def add_internal_to_nav(
     """
     if nav_parent:
         for i_nav in nav:
+            # "nav_entry" is a key of current parsed `nav`
             if nav_parent[0] in i_nav:
                 for i_key in i_nav:
                     add_internal_to_nav(
@@ -109,6 +110,16 @@ def add_internal_to_nav(
                         repo_parent,
                         nav_parent[1:],
                     )
+            # "nav_entry" is a subkey of current parsed `nav`
+            elif nav_parent[0] in yaml.dump(i_nav):
+                for i_key in i_nav:
+                    add_internal_to_nav(
+                        env,
+                        i_nav[i_key],
+                        repo_dict,
+                        repo_parent,
+                        nav_parent[0:],
+                    )
     else:
         mkdocs_path = env.project_dir
         for i_parent in repo_parent:
@@ -153,10 +164,14 @@ def add_external_to_nav(
                         repo_parent,
                         nav_parent[1:],
                     )
-    elif repo_dict["online_url"].startswith('/'):
-        nav.append({
-            repo_dict["nav_entry"]: repo_dict["online_url"].replace('/','../',1)
-        })
+    elif repo_dict["online_url"].startswith("/"):
+        nav.append(
+            {
+                repo_dict["nav_entry"]: repo_dict["online_url"].replace(
+                    "/", "../", 1
+                )
+            }
+        )
     else:
         nav.append({repo_dict["nav_entry"]: repo_dict["online_url"]})
 
@@ -229,13 +244,15 @@ def update_nav(
             nav_parent.append(repo_dict["nav_entry"])
         elif i_key == "internal":
             for i_repo in repo_dict["internal"]:
-                add_nav_entry(env.conf["nav"], nav_parent)
+                if nav_parent[0] not in yaml.dump(env.conf["nav"]):
+                    add_nav_entry(env.conf["nav"], nav_parent)
                 add_internal_to_nav(
                     env, env.conf["nav"], i_repo, repo_parent, nav_parent
                 )
         elif i_key == "external":
             for i_repo in repo_dict["external"]:
-                add_nav_entry(env.conf["nav"], nav_parent)
+                if nav_parent[0] not in yaml.dump(env.conf["nav"]):
+                    add_nav_entry(env.conf["nav"], nav_parent)
                 add_external_to_nav(
                     env, env.conf["nav"], i_repo, repo_parent, nav_parent
                 )
@@ -406,9 +423,7 @@ def set_copyright(env: dict, git_repo: git.Repo) -> None:
         curr_year = time.strftime("%Y", time.localtime())
 
         if first_year == curr_year:
-            env.variables[
-                "date_copyright"
-            ] = f"Copyright © {curr_year}"
+            env.variables["date_copyright"] = f"Copyright © {curr_year}"
         else:
             env.variables[
                 "date_copyright"
@@ -419,7 +434,6 @@ def set_copyright(env: dict, git_repo: git.Repo) -> None:
         ] = f"{env.variables['date_copyright']} {env.variables['copyright']}"
 
 
-
 def set_repo_name(env: dict, repo_slug: str) -> None:
     """Update content of the `repo_name` key in `env.conf`.
 
@@ -561,7 +575,7 @@ def set_config(env: dict) -> None:
 
     if "subrepo" in env.variables:
         if (
-            env.variables["internal_subdoc"]
+            not env.variables["internal_subdoc"]
             and "monorepo" in env.conf["plugins"]
         ):
             env.conf["plugins"].pop("monorepo")
@@ -682,7 +696,7 @@ def update_subrepo_info(
                 f"{INFO_CLR}INFO [macros] - Pulling repo {i_repo['name']}{RESET_CLR}"
             )
             git_subrepo = git.Repo(subrepo_root)
-            git_subrepo.remotes.origin.pull()
+            git_subrepo.remotes.origin.pull('master')
         else:
             print(
                 f"{INFO_CLR}INFO [macros] - Cloning repo {i_repo['name']}{RESET_CLR}"
@@ -834,8 +848,8 @@ def update_version(env: dict) -> None:
         minor = int(i_tag[1])
         patch = str()
         for i_remain_tag in i_tag[2:]:
-            if i_remain_tag and i_remain_tag not in ("","\n"):
-                i_remain_tag = i_remain_tag.replace("\n","")
+            if i_remain_tag and i_remain_tag not in ("", "\n"):
+                i_remain_tag = i_remain_tag.replace("\n", "")
                 if not patch:
                     patch = f"{i_remain_tag}"
                 else: