diff options
Diffstat (limited to 'themes/hugo-book/layouts/_default/_markup')
3 files changed, 52 insertions, 0 deletions
diff --git a/themes/hugo-book/layouts/_default/_markup/render-heading.html b/themes/hugo-book/layouts/_default/_markup/render-heading.html new file mode 100644 index 0000000..5439d20 --- /dev/null +++ b/themes/hugo-book/layouts/_default/_markup/render-heading.html @@ -0,0 +1,4 @@ +<h{{ .Level }} id="{{ .Anchor | safeURL }}"> + {{ .Text | safeHTML }} + <a class="anchor" href="#{{ .Anchor | safeURL }}">#</a> +</h{{ .Level }}> diff --git a/themes/hugo-book/layouts/_default/_markup/render-image.html b/themes/hugo-book/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..148cbaf --- /dev/null +++ b/themes/hugo-book/layouts/_default/_markup/render-image.html @@ -0,0 +1,19 @@ +{{- if .Page.Site.Params.BookPortableLinks -}} + {{- template "portable-image" . -}} +{{- else -}} + <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title }}title="{{ . }}"{{ end }}/> +{{- end -}} + +{{- define "portable-image" -}} + {{- $isRemote := or (in .Destination "://") (strings.HasPrefix .Destination "//") }} + {{- if not $isRemote }} + {{- $path := print .Page.File.Dir .Destination }} + {{- if strings.HasPrefix .Destination "/" }} + {{- $path = print "/static" .Destination }} + {{- end }} + {{- if not (fileExists $path) }} + {{- warnf "Image '%s' not found in '%s'" .Destination .Page.File }} + {{- end }} + {{- end }} + <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title }}title="{{ . }}"{{ end }}/> +{{- end -}} diff --git a/themes/hugo-book/layouts/_default/_markup/render-link.html b/themes/hugo-book/layouts/_default/_markup/render-link.html new file mode 100644 index 0000000..288d81c --- /dev/null +++ b/themes/hugo-book/layouts/_default/_markup/render-link.html @@ -0,0 +1,29 @@ +{{- if .Page.Site.Params.BookPortableLinks -}} + {{- template "portable-link" . -}} +{{- else -}} + <a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}>{{ .Text | safeHTML }}</a> +{{- end -}} + +{{- define "portable-link" -}} + {{- $destination := .Destination }} + {{- $isRemote := or (in .Destination ":") (strings.HasPrefix .Destination "//") }} + {{- $isFragment := strings.HasPrefix .Destination "#" }} + {{- if and (not $isRemote) (not $isFragment) }} + {{- $url := urls.Parse .Destination }} + {{- $path := strings.TrimSuffix "/_index.md" $url.Path }} + {{- $path = strings.TrimSuffix "/_index" $path }} + {{- $path = strings.TrimSuffix ".md" $path }} + {{- $page := .Page.GetPage $path }} + {{- if $page }} + {{- $destination = $page.RelPermalink }} + {{- if $url.Fragment }} + {{- $destination = print $destination "#" $url.Fragment }} + {{- end }} + {{- else if fileExists (print .Page.File.Dir .Destination) }} + <!-- Nothing --> + {{- else -}} + {{- warnf "Page '%s' not found in '%s'" .Destination .Page.File }} + {{- end }} + {{- end }} + <a href="{{ $destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}>{{ .Text | safeHTML }}</a> +{{- end -}} |
