From 24d08d580d61363faab495a8a022248a7499dc26 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 03 May 2022 14:43:22 +0000
Subject: [PATCH] cfg: make SPA optional

---
 assets/js/search.js             |    3 ++-
 data/config.yaml                |    1 +
 layouts/partials/graph.html     |   11 +++++++++++
 layouts/partials/head.html      |    4 ++++
 layouts/partials/backlinks.html |    1 +
 5 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/assets/js/search.js b/assets/js/search.js
index 56ce1b0..f124d58 100644
--- a/assets/js/search.js
+++ b/assets/js/search.js
@@ -35,6 +35,7 @@
       .replace(/<[^>]*>/g, '')
       .replace(/^[=\-]{2,}\s*$/g, '')
       .replace(/\[\^.+?\](\: .*?$)?/g, '')
+      .replace(/(#{1,6})\s+(.+)\1?/g, '<b>$2</b>')
       .replace(/\s{0,2}\[.*?\]: .*?$/g, '')
       .replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g, options.useImgAltText ? '$1' : '')
       .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, '$1')
@@ -143,7 +144,7 @@
     // SPA navigation
     window.navigate(
       new URL(
-        `${BASE_URL.slice(0, -1)}${id}#:~:text=${encodeURIComponent(term)}/`
+        `${BASE_URL}${id}#:~:text=${encodeURIComponent(term)}/`
       ),
       '.singlePage'
     )
diff --git a/data/config.yaml b/data/config.yaml
index e33c329..afa531c 100644
--- a/data/config.yaml
+++ b/data/config.yaml
@@ -3,6 +3,7 @@
 openToc: false
 enableLinkPreview: true
 enableLatex: true
+enableSPA: false
 description:
   Host your second brain and digital garden for free. Quartz features extremely fast full-text search,
   Wikilink support, backlinks, local graph, tags, and link previews.
diff --git a/layouts/partials/backlinks.html b/layouts/partials/backlinks.html
index deb82e8..e42351a 100644
--- a/layouts/partials/backlinks.html
+++ b/layouts/partials/backlinks.html
@@ -10,6 +10,7 @@
     {{$cleanedInbound := apply (apply $inbound "index" "." "source") "replace" "." " " "-"}}
     {{- range $cleanedInbound | uniq -}}
       {{$l := printf "%s%s/" $host .}}
+      {{$l = cond (eq $l "//") "/" $l}}
       {{with (index $contentTable .)}}
       <li>
           <a href="{{$l}}">{{index (index . "title")}}</a>
diff --git a/layouts/partials/graph.html b/layouts/partials/graph.html
index b9f7976..b8b2f61 100644
--- a/layouts/partials/graph.html
+++ b/layouts/partials/graph.html
@@ -16,3 +16,14 @@
 </style>
 {{ $js := resources.Get "js/graph.js" | resources.Fingerprint "md5" }}
 <script src="{{ $js.Permalink }}"></script>
+<script>
+drawGraph(
+  {{strings.TrimRight "/" .Page.Permalink}},
+  {{strings.TrimRight "/" .Site.BaseURL}},
+  {{$.Site.Data.graphConfig.paths}},
+  {{$.Site.Data.graphConfig.depth}},
+  {{$.Site.Data.graphConfig.enableDrag}},
+  {{$.Site.Data.graphConfig.enableLegend}},
+  {{$.Site.Data.graphConfig.enableZoom}}
+);
+</script>
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 1dabaf6..37938a5 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -58,6 +58,7 @@
           content,
         }))
   </script>
+  {{if $.Site.Data.config.enableSPA}}
   <script type="module">
     import { router, navigate } from "https://unpkg.com/million/dist/router.mjs";
     // SPA navigation for access later
@@ -89,5 +90,8 @@
     window.addEventListener("million:navigate", callback);
     window.addEventListener("DOMContentLoaded", callback);
   </script>
+  {{else}}
+  <script>window.navigate = (url) => window.location.href = url</script>
+  {{end}}
 </head>
 {{ template "_internal/google_analytics.html" . }}

--
Gitblit v1.10.0