diff --git a/src/Elastic.Markdown/Assets/pages-nav.ts b/src/Elastic.Markdown/Assets/pages-nav.ts
index ff9df8073..5686256f2 100644
--- a/src/Elastic.Markdown/Assets/pages-nav.ts
+++ b/src/Elastic.Markdown/Assets/pages-nav.ts
@@ -1,4 +1,8 @@
import {$, $$} from "select-dom";
+import {initHighlight} from "./hljs";
+import {initCopyButton} from "./copybutton";
+import {initTabs} from "./tabs";
+import {initTocNav} from "./toc-nav";
type NavExpandState = {
current:string,
@@ -109,6 +113,34 @@ export function initNav() {
keepNavStateCallback();
keepNavPositionCallback();
}, true);
+
+ $$('a', pagesNav).forEach(a => {
+ a.addEventListener('click', (e) => {
+ e.preventDefault();
+ history.pushState(null, '', a.href);
+ const markdownContentContainer = $('.markdown-content');
+ markdownContentContainer.innerHTML = 'loading...';
+ const url = a.href;
+ fetch(url)
+ .then(response => response.text())
+ .then(text => {
+ const doc = new DOMParser().parseFromString(text, 'text/html')
+ const markdownContent = $('.markdown-content', doc);
+ const toc = $('#toc-nav', doc);
+ const tocContainer = $('#toc-nav');
+ if (toc && tocContainer) {
+ tocContainer.innerHTML = toc.innerHTML;
+ }
+ if (markdownContent && markdownContentContainer) {
+ markdownContentContainer.innerHTML = markdownContent.innerHTML;
+ initHighlight();
+ initCopyButton();
+ initTabs();
+ initTocNav();
+ }
+ });
+ });
+ });
}
initNav();
diff --git a/src/Elastic.Markdown/Slices/Layout/_PagesNav.cshtml b/src/Elastic.Markdown/Slices/Layout/_PagesNav.cshtml
index 52d8ed4db..85df8310d 100644
--- a/src/Elastic.Markdown/Slices/Layout/_PagesNav.cshtml
+++ b/src/Elastic.Markdown/Slices/Layout/_PagesNav.cshtml
@@ -5,7 +5,6 @@
data-current-page-parent-ids="@(string.Join(",",Model.ParentIds))"
@* used to invalidate session storage *@
data-current-navigation="@LayoutViewModel.CurrentNavigationId">
-
@(new HtmlString(Model.NavigationHtml))
diff --git a/src/Elastic.Markdown/Slices/Layout/_TocTree.cshtml b/src/Elastic.Markdown/Slices/Layout/_TocTree.cshtml
index 01de18781..8e837e00d 100644
--- a/src/Elastic.Markdown/Slices/Layout/_TocTree.cshtml
+++ b/src/Elastic.Markdown/Slices/Layout/_TocTree.cshtml
@@ -1,7 +1,7 @@
@inherits RazorSlice
Elastic Docs
-
+
@await RenderPartialAsync(_TocTreeNav.Create(new NavigationTreeItem
{
Level = Model.Tree.Depth,