summaryrefslogtreecommitdiff
path: root/themes/hugo-book/layouts/_partials/docs/links/portable-link.html
diff options
context:
space:
mode:
Diffstat (limited to 'themes/hugo-book/layouts/_partials/docs/links/portable-link.html')
-rw-r--r--themes/hugo-book/layouts/_partials/docs/links/portable-link.html29
1 files changed, 29 insertions, 0 deletions
diff --git a/themes/hugo-book/layouts/_partials/docs/links/portable-link.html b/themes/hugo-book/layouts/_partials/docs/links/portable-link.html
new file mode 100644
index 0000000..4c5c0c0
--- /dev/null
+++ b/themes/hugo-book/layouts/_partials/docs/links/portable-link.html
@@ -0,0 +1,29 @@
+{{- $destination := .Destination -}}
+{{- $url := urls.Parse .Destination -}}
+
+{{- $isRemote := gt (len $url.Host) 0 -}}
+{{- $isFragment := strings.HasPrefix .Destination "#" -}}
+
+{{- if and (not $isRemote) (not $isFragment) -}}
+ {{- $path := strings.TrimPrefix "./" $url.Path -}}
+ {{- $path = strings.TrimSuffix ".md" $path -}}
+ {{- $path = strings.TrimSuffix "/_index" $path -}}
+
+ {{- with (.Page.GetPage $path) -}}
+ {{- $destination = .RelPermalink -}}
+ {{- else with (.Page.Resources.Get $path) -}}
+ {{- $destination = .RelPermalink -}}
+ {{- else with (resources.Get $path) -}}
+ {{- $destination = .RelPermalink -}}
+ {{- else -}}
+ {{- warnf "Reference '%s' not found in '%s'" .Destination .Page.Permalink -}}
+ {{- end -}}
+
+ {{- with $url.RawQuery -}}
+ {{- $destination = print $destination "?" . -}}
+ {{- end -}}
+ {{- with $url.Fragment -}}
+ {{- $destination = print $destination "#" . -}}
+ {{- end -}}
+{{- end -}}
+{{- return $destination -}} \ No newline at end of file
Directive (EU) 2019/790, Article 4(3); all rights regarding Text and Data Mining (TDM) are reserved.