Prevent flashing during navigation

This commit is contained in:
2026-09-30 16:00:10 +02:00
parent b5a8d3d003
commit 9fadfda70d
3 changed files with 69 additions and 3 deletions
+15
View File
@@ -45,6 +45,21 @@
<div class="shell">
{{if not .EditMode}}<aside class="tree-sidebar col">
<div class="tree-scroll"></div>
<script>
// Paint the previous page's tree before first render so the rail
// doesn't flash empty; tree-sidebar.js swaps in the live tree.
(function () {
try {
var s = JSON.parse(sessionStorage.getItem("tree-snapshot"));
if (!s) return;
var el = document.currentScript.previousElementSibling;
el.innerHTML = s.html;
var a = el.querySelector('a.tree-name[href="' + CSS.escape(location.pathname.replace(/\/*$/, "/")) + '"]');
if (a) a.parentNode.classList.add("is-active");
el.scrollTop = s.top;
} catch (e) {}
})();
</script>
</aside>{{end}}
<div class="center">
<main>