diff --git a/libs/Format/HTML/Template.php b/libs/Format/HTML/Template.php
index <HASH>..<HASH> 100644
--- a/libs/Format/HTML/Template.php
+++ b/libs/Format/HTML/Template.php
@@ -108,6 +108,10 @@ class Template
                     'class' => ($current_url === $link) ? 'active' : ''
                 ];
             } elseif ($node instanceof Directory) {
+                if (!$node->hasContent()) {
+                    continue;
+                }
+
                 $link = ($path === '') ? $url : $path . '/' . $url;
 
                 $folder = [
diff --git a/libs/Tree/Directory.php b/libs/Tree/Directory.php
index <HASH>..<HASH> 100644
--- a/libs/Tree/Directory.php
+++ b/libs/Tree/Directory.php
@@ -98,6 +98,27 @@ class Directory extends Entry
         $this->first_page = $first_page;
     }
 
+    /**
+     * Used when creating the navigation.
+     * Hides folders without showable content
+     *
+     * @return bool
+     */
+    public function hasContent()
+    {
+        foreach ($this->getEntries() as $node) {
+            if ($node instanceof Content) {
+                return true;
+            } elseif ($node instanceof Directory) {
+                if ($node->hasContent()) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
     private function compareEntries($a, $b)
     {
         $name_a = explode('_', $a->name);
Hide directories that have no content