{{- /*
|
edit-page partial
|
|
Renders a link to edit the current page's source file on GitHub. Visitors
|
without write access are offered GitHub's standard "fork and propose changes"
|
flow automatically when they follow an /edit/ link, so no extra handling is
|
needed here.
|
|
This partial is the single source of truth shared by the `edit-page`
|
shortcode and by any hook (for example `content-after`) that wants to render
|
the link automatically.
|
|
Accepts either a Page directly, or a map:
|
- page (required) the Page whose source file should be edited.
|
- branch (optional) overrides the configured branch for this call.
|
|
Configuration (under params.ananke.shortcodes.edit_page):
|
- repo_url (required) Base URL of the GitHub repository, e.g.
|
"https://github.com/owner/repo". When unset nothing renders.
|
- branch The branch to edit. Defaults to "main".
|
- content_dir The directory the content lives in inside the repository.
|
Defaults to "content".
|
- target Link target. Defaults to "_blank". Set to false to open in
|
the same window.
|
*/ -}}
|
{{- $page := . -}}
|
{{- $branch := "" -}}
|
{{- if reflect.IsMap . -}}
|
{{- $page = .page -}}
|
{{- with .branch }}{{ $branch = . }}{{ end -}}
|
{{- end -}}
|
{{- $repoURL := "" -}}
|
{{- $contentDir := "content" -}}
|
{{- $target := "_blank" -}}
|
{{- with site.Params.ananke -}}
|
{{- with .shortcodes -}}
|
{{- with .edit_page -}}
|
{{- with .repo_url }}{{ $repoURL = . }}{{ end -}}
|
{{- if not $branch }}{{ $branch = .branch | compare.Default "main" }}{{ end -}}
|
{{- with .content_dir }}{{ $contentDir = . }}{{ end -}}
|
{{- if isset . "target" }}{{ $target = .target }}{{ end -}}
|
{{- end -}}
|
{{- end -}}
|
{{- end -}}
|
{{- if not $branch }}{{ $branch = "main" }}{{ end -}}
|
{{- with $page.File -}}
|
{{- if $repoURL -}}
|
{{- $filePath := strings.Replace .Path "\\" "/" -}}
|
{{- $path := path.Join $contentDir $filePath -}}
|
{{- $url := printf "%s/edit/%s/%s" (strings.TrimSuffix "/" $repoURL) $branch $path -}}
|
{{- $rel := "" -}}
|
{{- if and $target (ne $target "_self") }}{{ $rel = "noopener" }}{{ end -}}
|
<a class="f6 link dim br2 ba bw1 ph3 pv2 mb2 dib navy" href="{{ $url }}"
|
{{- with $target }} target="{{ . }}"{{ end -}}
|
{{- with $rel }} rel="{{ . }}"{{ end }}>
|
{{ T "editPage" }}
|
</a>
|
{{- else -}}
|
{{- warnf "[ananke] the 'edit-page' partial in %q needs params.ananke.shortcodes.edit_page.repo_url to be set" .Path -}}
|
{{- end -}}
|
{{- end -}}
|