| 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,12 @@ import { router, navigate } from "https://unpkg.com/million@1.8.9-0/dist/router.mjs" export const attachSPARouting = (draw) => { // 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 // requestAnimationFrame() delays graph draw until SPA routing is finished window.addEventListener("million:navigate", () => requestAnimationFrame(draw)) window.addEventListener("DOMContentLoaded", () => 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,20 +63,17 @@ })) </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 import { attachSPARouting } from '{{$router.Permalink}}'; // NOTE: everything within this callback will be executed for every page navigation. This is a good place to put JavaScript that loads or modifies data on the page. const draw = () => { const container = document.getElementById("graph-container"); const container = document.getElementById("graph-container") // retry if the graph is not ready if (!container) return requestAnimationFrame(draw); if (!container) return requestAnimationFrame(draw) // clear the graph in case there is anything within it container.textContent = ""; container.textContent = "" drawGraph( {{strings.TrimRight "/" .Site.BaseURL}}, @@ -82,12 +83,12 @@ {{$.Site.Data.graphConfig.enableLegend}}, {{$.Site.Data.graphConfig.enableZoom}} ); {{if $.Site.Data.config.enableLinkPreview}} initPopover({{strings.TrimRight "/" .Site.BaseURL }}) {{end}} }; requestAnimationFrame(draw); }; // We need on initial load, then subsequent redirs window.addEventListener("million:navigate", callback); window.addEventListener("DOMContentLoaded", callback); attachSPARouting(draw); </script> {{else}} <script>window.navigate = (url) => window.location.href = url</script> layouts/partials/popover.html
File was deleted