diff --git a/Changes b/Changes
index a95afbf..2b92041 100755
--- a/Changes
+++ b/Changes
@@ -10,6 +10,9 @@
         - Introduced 'page_title' helper.
         - Simplified documentation routing.
         - Added 'realm' parameter to 'embedded_link_to' helper.
+        - Introduced 'navigation' helper with 'realm' parameter.
+        - Deprecated 'doc_navi' helper in favor of 'navigation'
+          helper.
 
 0.36 2019-09-19
         - Rename all cookies to be independent
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 933b79b..51cb8f6 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -214,14 +214,14 @@
   };
 
   # Configure documentation navigation
-  my $navi = Mojo::File->new($self->home->child('templates','doc','navigation.json'))->slurp;
-  $navi = $navi ? decode_json($navi) : [];
+  my $doc_navi = Mojo::File->new($self->home->child('templates','doc','navigation.json'))->slurp;
+  $doc_navi = $doc_navi ? decode_json($doc_navi) : [];
 
   if ($conf->{navi_ext}) {
-    push @$navi, @{$conf->{navi_ext}};
+    push @$doc_navi, @{$conf->{navi_ext}};
   };
 
-  $self->config(navi => $navi);
+  $self->config(doc_navi => $doc_navi);
 
   $self->log->info('API expected at ' . $self->korap->api);
 
diff --git a/lib/Kalamar/Controller/Documentation.pm b/lib/Kalamar/Controller/Documentation.pm
index abcaadb..bcb6633 100644
--- a/lib/Kalamar/Controller/Documentation.pm
+++ b/lib/Kalamar/Controller/Documentation.pm
@@ -22,7 +22,7 @@
   # Set navigation to sidebar
   $c->content_block(
     sidebar => {
-      inline => '<nav>' . $c->doc_navi($c->config('navi')) . '</nav>'
+      inline => '<nav>' . $c->navigation('doc', $c->config('doc_navi')) . '</nav>'
     }
   );
 
diff --git a/lib/Kalamar/Plugin/KalamarPages.pm b/lib/Kalamar/Plugin/KalamarPages.pm
index 1943542..8f4f3b5 100644
--- a/lib/Kalamar/Plugin/KalamarPages.pm
+++ b/lib/Kalamar/Plugin/KalamarPages.pm
@@ -104,7 +104,7 @@
       my $scope = shift;
       my $url;
       if ($page) {
-        $url = $c->doc->url($scope, $page);
+        $url = $c->url_with('doc', scope => $scope, page => $page);
         $url->path->canonicalize;
       }
       else {
@@ -115,8 +115,10 @@
   );
 
 
+  # DEPRECATED: 2019-10-24
   $mojo->helper(
     'doc.url' => sub {
+      deprecated 'Deprecated "doc->url" in favor of direct usage with "url_with"';
       my $c = shift;
       my $page = pop;
       my $scope = shift;
@@ -129,14 +131,25 @@
   );
 
   # Documentation navigation helper
+  # DEPRECATED: 2019-10-24
   $mojo->helper(
     doc_navi => sub {
+      deprecated 'Deprecated "docnavi" in favor of "navigation"';
       my $c = shift;
+      return $c->navigation('doc', @_)
+    }
+  );
+
+  # Navigation helper
+  $mojo->helper(
+    'navigation' => sub {
+      my $c = shift;
+      my $realm = shift;
       my $items = pop;
       my $scope = shift;
 
       # Create unordered list
-      my $html = '<ul class="nav">'."\n";
+      my $html = '<ul class="nav nav-'.$realm.'">'."\n";
 
       # Embed all link tags
       foreach (@$items) {
@@ -152,7 +165,10 @@
           my $id = $_->{id};
           $id =~ s/^#//;
 
-          $url = $c->doc->url($part_scope, $page);
+          $url = $c->url_with($realm, scope => $part_scope, page => $page);
+
+          # Canonicalize (for empty scopes)
+          $url->path->canonicalize;
           $url->fragment($id);
         }
 
@@ -165,7 +181,7 @@
           };
 
           # Generate url with query parameter inheritance
-          $url = $c->doc->url($scope, $_->{id});
+          $url = $c->url_with($realm, scope => $scope, page => $_->{id});
 
           # Canonicalize (for empty scopes)
           $url->path->canonicalize;
@@ -194,7 +210,7 @@
         if ($_->{items} && ref($_->{items}) eq 'ARRAY') {
           $html .= "\n";
           my $subscope = $scope ? scalar($scope) . '/' . $_->{id} : $_->{id};
-          $html .= $c->doc_navi($subscope, $_->{items});
+          $html .= $c->navigation($realm, $subscope, $_->{items});
           $html .= "</li>\n";
         }
         else {
@@ -292,9 +308,9 @@
 Currently not used.
 
 
-=head2 doc_navi
+=head2 navigation
 
-Returns an HTML representation of the documentation navigation,
+Returns an HTML representation of a navigation structure
 based on active navigation items.
 
 
diff --git a/t/docnavi.t b/t/navigation.t
similarity index 93%
rename from t/docnavi.t
rename to t/navigation.t
index c1aa8ea..f9518e8 100644
--- a/t/docnavi.t
+++ b/t/navigation.t
@@ -40,7 +40,7 @@
   }
 ];
 
-my $render = $app->doc_navi($navi);
+my $render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!KorAP!, 'Title matches');
 
@@ -55,7 +55,7 @@
   }
 ];
 
-$render = $app->doc_navi($navi);
+$render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!KorAP!, 'Title matches');
 like($render, qr!/doc/krill!, 'Path matches doc/krill');
@@ -78,7 +78,7 @@
   }
 ];
 
-$render = $app->doc_navi($navi);
+$render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!/doc/faq!, 'Path matches doc/faq');
@@ -128,7 +128,7 @@
   }
 ];
 
-$render = $app->doc_navi($navi);
+$render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!/doc/korap/koral!, 'Path matches korap/koral');
@@ -144,7 +144,7 @@
 
 my $c = $app->build_controller;
 $c->stash(page => 'korap');
-$render = $c->doc_navi($navi);
+$render = $c->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!/doc/ql!, 'Path matches doc/ql');
@@ -155,7 +155,7 @@
 like($render, qr!class="active".*?KorAP!, 'Active value for KorAP');
 
 $c->stash(page => 'poliqarp-plus');
-$render = $c->doc_navi($navi);
+$render = $c->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!/doc/ql!, 'Path matches doc/ql');
@@ -211,7 +211,7 @@
     title => 'F.A.Q.'
   }
 ];
-$render = $c->doc_navi($navi);
+$render = $c->navigation('doc', $navi);
 
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
@@ -241,7 +241,7 @@
   }
 ];
 
-$render = $app->doc_navi($navi);
+$render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!<a href="/doc/korap/krill(?:#[^"]+)?">Krill</a>!,
@@ -252,7 +252,7 @@
 # Change preferred language
 $languages = [qw/de en/];
 
-$render = $app->doc_navi($navi);
+$render = $app->navigation('doc', $navi);
 like($render, qr!/doc/korap!, 'Path matches doc/korap');
 like($render, qr!/doc/korap/krill!, 'Path matches korap/krill');
 like($render, qr!<a href="/doc/korap/krill(?:#[^"]+)?">Krill</a>!,
