Skip to content

Commit 9568c1d

Browse files
committed
feat: add configurable edit link position
- Add a `where` parameter to `editURL` - Allow user to choose between `toc` (default) and `single` - Add to single through last-updated partial
1 parent 716af59 commit 9568c1d

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

exampleSite/hugo.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ params:
133133

134134
editURL:
135135
enable: true
136+
where: "single" # single | toc
136137
base: "https://github.com/imfing/hextra/edit/main/exampleSite/content"
137138

138139
blog:

layouts/partials/components/last-updated.html

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
{{- $lastUpdated := (T "lastUpdated") | default "Last updated on" -}}
2+
{{- $editThisPage := (T "editThisPage") | default "Edit this page"}}
23

34
{{- if site.Params.displayUpdatedDate -}}
5+
<div class="mt-12 mb-8 block text-xs text-gray-500 ltr:text-right rtl:text-left dark:text-gray-400">
6+
{{- if and (site.Params.editURL.enable) (eq site.Params.editURL.where "single") -}}
7+
{{- $editURL := site.Params.editURL.base | default "" -}}
8+
{{- with .Params.editURL -}}
9+
{{/* if `editURL` is set in the front matter */}}
10+
{{- $editURL = . -}}
11+
{{- else -}}
12+
{{- with .File -}}
13+
{{/* `.FileInfo.Meta.SourceRoot` is a Hugo internal field, e.g. `/path/to/repo/content/en/` */}}
14+
{{- $sourceDir := replace (strings.TrimPrefix .FileInfo.Meta.BaseDir .FileInfo.Meta.SourceRoot) "\\" "/" -}}
15+
{{- $sourceDir = strings.TrimPrefix "/content" $sourceDir -}}
16+
{{- $path := replace .Path "\\" "/" -}}
17+
{{- $editURL = urls.JoinPath $editURL $sourceDir $path -}}
18+
{{- end -}}
19+
{{- end -}}
20+
<a class="mb-4 block text-xs text-gray-500 ltr:text-right rtl:text-left dark:text-gray-400" href="{{ $editURL }}" target="_blank" rel="noreferer">{{ $editThisPage }}</a>
21+
{{- end -}}
422
{{- with .Lastmod -}}
523
{{ $datetime := (time.Format "2006-01-02T15:04:05.000Z" .) }}
6-
<div class="mt-12 mb-8 block text-xs text-gray-500 ltr:text-right rtl:text-left dark:text-gray-400">{{ $lastUpdated }} <time datetime="{{ $datetime }}">{{ partial "utils/format-date" . }}</time></div>
24+
{{ $lastUpdated }} <time datetime="{{ $datetime }}">{{ partial "utils/format-date" . }}</time></div>
725
{{- else -}}
826
<div class="mt-16"></div>
927
{{- end -}}

layouts/partials/toc.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
{{/* TOC bottom part */}}
2626
<div class="{{ $borderClass }} sticky bottom-0 flex flex-col items-start gap-2 pb-8 dark:border-neutral-800 contrast-more:border-t contrast-more:border-neutral-400 contrast-more:shadow-none contrast-more:dark:border-neutral-400">
27-
{{- if site.Params.editURL.enable -}}
27+
{{- if and (site.Params.editURL.enable) (eq site.Params.editURL.where "toc") -}}
2828
{{- $editURL := site.Params.editURL.base | default "" -}}
2929
{{- with .Params.editURL -}}
3030
{{/* if `editURL` is set in the front matter */}}

0 commit comments

Comments
 (0)