| assets/js/popover.js | ●●●●● patch | view | raw | blame | history | |
| assets/js/router.js | ●●●●● patch | view | raw | blame | history | |
| layouts/_default/section.html | ●●●●● patch | view | raw | blame | history | |
| layouts/_default/single.html | ●●●●● patch | view | raw | blame | history | |
| layouts/_default/taxonomy.html | ●●●●● patch | view | raw | blame | history | |
| layouts/_default/term.html | ●●●●● patch | view | raw | blame | history | |
| layouts/index.html | ●●●●● patch | view | raw | blame | history | |
| layouts/partials/head.html | ●●●●● patch | view | raw | blame | history | |
| layouts/partials/popover.html | ●●●●● patch | view | raw | blame | history |
assets/js/popover.js
@@ -1,5 +1,5 @@ function htmlToElement(html) { const template = document.createElement('template') const template = document.createElement("template") html = html.trim() template.innerHTML = html return template.content.firstChild @@ -7,12 +7,11 @@ function initPopover(baseURL) { const basePath = baseURL.replace(window.location.origin, "") document.addEventListener("DOMContentLoaded", () => { fetchData.then(({ content }) => { const links = [...document.getElementsByClassName("internal-link")] links .filter(li => li.dataset.src) .forEach(li => { .filter((li) => li.dataset.src) .forEach((li) => { const linkDest = content[li.dataset.src.replace(/\/$/g, "").replace(basePath, "")] if (linkDest) { const popoverElement = `<div class="popover"> @@ -31,5 +30,4 @@ } }) }) }) } assets/js/router.js
New file @@ -0,0 +1,25 @@ import { router, navigate } from "https://unpkg.com/million/dist/router.mjs" export const init = (loader) => { // SPA navigation for access later window.navigate = navigate // We only mutate document.title and content within .singlePage element router(".singlePage") // We need on initial load, then subsequent redirs window.addEventListener("million:navigate", () => callback(loader)) window.addEventListener("DOMContentLoaded", () => callback(loader)) } export const callback = (loader) => { // requestAnimationFrame() delays graph draw until SPA routing is finished const draw = () => { const container = document.getElementById("graph-container") // retry if the graph is not ready if (!container) return requestAnimationFrame(draw) // clear the graph in case there is anything within it container.textContent = "" loader() } requestAnimationFrame(draw) } layouts/_default/section.html
@@ -19,7 +19,6 @@ </article> {{partial "contact.html" .}} </div> {{partial "popover.html" .}} </body> </html> layouts/_default/single.html
@@ -26,7 +26,6 @@ {{partial "textprocessing.html" . }} </article> {{partial "footer.html" .}} {{partial "popover.html" .}} </div> </body> layouts/_default/taxonomy.html
@@ -28,7 +28,6 @@ </article> {{partial "contact.html" .}} </div> {{partial "popover.html" .}} </body> </html> layouts/_default/term.html
@@ -19,7 +19,6 @@ </article> {{partial "contact.html" .}} </div> {{partial "popover.html" .}} </body> </html> layouts/index.html
@@ -17,8 +17,6 @@ {{partial "textprocessing.html" . }} </article> {{partial "footer.html" .}} {{partial "popover.html" .}} </div> </body> </html> layouts/partials/head.html
@@ -35,6 +35,10 @@ <script src="{{$darkMode.Permalink}}"></script> {{partial "katex.html" .}} {{ $popover := resources.Get "js/popover.js" | resources.Fingerprint "md5" | resources.Minify }} <script src="{{$popover.Permalink}}"></script> <!-- Preload page vars --> {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint "md5" | resources.Minify | }} {{$contentIndex := resources.Get @@ -59,21 +63,11 @@ })) </script> {{if $.Site.Data.config.enableSPA}} {{ $router := resources.Get "js/router.js" | resources.Fingerprint "md5" | resources.Minify }} <script type="module"> import { router, navigate } from "https://unpkg.com/million/dist/router.mjs"; // SPA navigation for access later window.navigate = navigate; // We only mutate document.title and content within .singlePage element router(".singlePage"); const callback = () => { // requestAnimationFrame() delays graph draw until SPA routing is finished const draw = () => { const container = document.getElementById("graph-container"); // retry if the graph is not ready if (!container) return requestAnimationFrame(draw); // clear the graph in case there is anything within it container.textContent = ""; import { init } from '{{$router.Permalink}}'; init(() => { drawGraph( {{strings.TrimRight "/" .Page.Permalink}}, {{strings.TrimRight "/" .Site.BaseURL}}, @@ -83,12 +77,11 @@ {{$.Site.Data.graphConfig.enableLegend}}, {{$.Site.Data.graphConfig.enableZoom}} ); }; requestAnimationFrame(draw); }; // We need on initial load, then subsequent redirs window.addEventListener("million:navigate", callback); window.addEventListener("DOMContentLoaded", callback); {{if $.Site.Data.config.enableLinkPreview}} initPopover({{strings.TrimRight "/" .Site.BaseURL }}) {{end}} }); </script> {{else}} <script>window.navigate = (url) => window.location.href = url</script> layouts/partials/popover.html
File was deleted