From a287d11246cc0c18a9bf4435bddffc9e163e64fd Mon Sep 17 00:00:00 2001
From: meleu <meleu.dev@gmail.com>
Date: Mon, 04 Apr 2022 01:12:55 +0000
Subject: [PATCH] add a collapsible ToC
---
layouts/_default/_markup/render-link.html | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html
index 2bde76c..64a9f7c 100644
--- a/layouts/_default/_markup/render-link.html
+++ b/layouts/_default/_markup/render-link.html
@@ -1,9 +1,16 @@
{{$trimmed := strings.TrimSuffix ".md" (.Destination | safeURL)}}
-{{$trimmed = replace $trimmed "%20" "-" }}
-{{$external := strings.HasPrefix $trimmed "http" }}
+{{$dashedurl := replace $trimmed "%20" "-" }}
+{{$external := strings.HasPrefix $dashedurl "http" }}
{{- if $external -}}
-<a href="{{ $trimmed }}" rel="noopener">{{ .Text | safeHTML }}</a>
+<a href="{{ $dashedurl }}" rel="noopener">{{ .Text | safeHTML }}</a>
{{- else -}}
-{{$fixedUrl := (cond (hasPrefix $trimmed "/") $trimmed (print "/" $trimmed)) | urlize}}
-<a href="{{$fixedUrl}}" rel="noopener" class="internal-link" data-src="{{$fixedUrl}}">{{ .Text | safeHTML }}</a>
-{{- end -}}
\ No newline at end of file
+{{$spacedurl := replace $trimmed "%20" " " }}
+{{$fixedUrl := (cond (hasPrefix $spacedurl "/") $spacedurl (print "/" $spacedurl)) | urlize}}
+{{$nonexistent := eq (.Page.GetPage $spacedurl).RelPermalink ""}}
+{{$rooted := default $spacedurl (strings.TrimRight "/" (.Page.GetPage $spacedurl).RelPermalink) }}
+<a
+ {{if not $nonexistent}}href="{{$rooted}}"{{end}}
+ rel="noopener" class="internal-link{{if $nonexistent}} broken{{end}}"
+ data-src="{{$rooted}}">{{ .Text | safeHTML }}
+</a>
+{{- end -}}
--
Gitblit v1.10.0