diff --git a/layouts/partials/head/social-image.html b/layouts/partials/head/social-image.html index 273a168d..47d810fb 100644 --- a/layouts/partials/head/social-image.html +++ b/layouts/partials/head/social-image.html @@ -2,18 +2,39 @@ {{- $isCoverImage := false -}} {{- $alt := "" -}} {{- with .Params.cover -}} - {{- $cover := $.Resources.GetMatch . -}} + {{- $cover := false -}} + {{- $coverPath := (urls.Parse .).Path -}} + {{- if ne $coverPath "" -}} + {{- $coverPathLower := lower $coverPath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $.Resources.Get $coverPath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $cover = $.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $cover = $.Resources.Get $coverPath -}} + {{- end -}} + {{- end -}} {{- if and $cover (ne $cover.MediaType.SubType "svg") -}} {{- $image = $cover -}} {{- $isCoverImage = true -}} {{- $coverName := path.Base . | replaceRE "\\.[^.]+$" "" -}} {{- $coverDataFile := $.Resources.Get (printf "data/images/%s.yaml" $coverName) -}} {{- if not $coverDataFile -}} - {{- $coverDataFile = $.Resources.Get (printf "data/%s.yaml" $coverName) -}} + {{- $coverDataFile = $.Resources.Get (printf "data/%s.yaml" $coverName) -}} {{- end -}} {{- $coverData := dict -}} {{- if $coverDataFile -}} - {{- $coverData = $coverDataFile.Content | transform.Unmarshal -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- $coverData = . -}} + {{- end -}} {{- end -}} {{- $alt = index $coverData "description" | default "" -}} {{- if not $alt -}} diff --git a/themes/2026/layouts/_partials/article-header.html b/themes/2026/layouts/_partials/article-header.html index 0915fe4b..f0f7cbd8 100644 --- a/themes/2026/layouts/_partials/article-header.html +++ b/themes/2026/layouts/_partials/article-header.html @@ -61,14 +61,34 @@ {{- $coverDataFile = $page.Resources.Get (printf "data/%s.yaml" $coverName) -}} {{- end -}} {{- if $coverDataFile -}} - {{- $coverData = $coverDataFile.Content | transform.Unmarshal -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- $coverData = . -}} + {{- end -}} {{- end -}} {{- end -}} {{- $coverImage := false -}} {{- $coverDisplay := false -}} {{- if $showCover -}} - {{- $coverImage = $page.Resources.GetMatch $coverPath -}} + {{- $coverResourcePath := (urls.Parse $coverPath).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverMetaFile := $page.Resources.Get $coverResourcePath -}} + {{- if $coverMetaFile -}} + {{- with $coverMetaFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $coverImage = $page.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $coverImage = $page.Resources.Get $coverResourcePath -}} + {{- end -}} + {{- end -}} {{- if $coverImage -}} {{- $coverDisplay = $coverImage -}} {{- if ne $coverDisplay.MediaType.SubType "svg" -}} diff --git a/themes/2026/layouts/_partials/asides/complementary-images.html b/themes/2026/layouts/_partials/asides/complementary-images.html index eea06487..7d07c62b 100644 --- a/themes/2026/layouts/_partials/asides/complementary-images.html +++ b/themes/2026/layouts/_partials/asides/complementary-images.html @@ -17,9 +17,10 @@ {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} {{- $coverDataFile := $page.Resources.GetMatch $coverPath -}} {{- if $coverDataFile -}} - {{- $coverData := $coverDataFile.Content | transform.Unmarshal -}} - {{- with index $coverData "file" -}} - {{- $coverImagePath = strings.TrimSpace (printf "%v" .) -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverImagePath = strings.TrimSpace (printf "%v" .) -}} + {{- end -}} {{- end -}} {{- end -}} {{- else -}} @@ -28,7 +29,8 @@ {{- end -}} {{- $coverImageName := "" -}} {{- if ne $coverImagePath "" -}} - {{- $coverImageName = lower (path.Base $coverImagePath) -}} + {{- $coverImageName = lower (path.Base ((urls.Parse $coverImagePath).Path)) -}} + {{- $coverImageName = replace $coverImageName "%20" " " -}} {{- end -}} {{- $contentImageNames := slice -}} @@ -37,9 +39,12 @@ {{- range $imageTags -}} {{- $srcMatch := findRESubmatch `(?is)src=["']([^"']+)["']` . -}} {{- if gt (len $srcMatch) 0 -}} - {{- $src := lower (index (index $srcMatch 0) 1) -}} + {{- $srcRaw := index (index $srcMatch 0) 1 -}} + {{- $srcPath := (urls.Parse $srcRaw).Path -}} + {{- $src := lower $srcPath -}} {{- if or (in $src "/images/") (strings.HasPrefix $src "images/") (strings.HasPrefix $src "./images/") -}} - {{- $srcName := path.Base $src -}} + {{- $srcName := lower (path.Base $srcPath) -}} + {{- $srcName = replace $srcName "%20" " " -}} {{- $srcName = replaceRE "\\?.*$" "" $srcName -}} {{- $srcName = replaceRE "#.*$" "" $srcName -}} {{- $srcName = replaceRE "_hu_[^.]*" "" $srcName -}} @@ -95,7 +100,9 @@ {{- $dataFile = $page.Resources.Get (printf "data/%s.yaml" $imageStem) -}} {{- end -}} {{- if $dataFile -}} - {{- $data = $dataFile.Content | transform.Unmarshal -}} + {{- with $dataFile.Content | transform.Unmarshal -}} + {{- $data = . -}} + {{- end -}} {{- end -}} {{- $title := default (printf "Image complémentaire : %s" $imageName) (index $data "title") -}} {{- $thumbnail := . -}} diff --git a/themes/2026/layouts/_partials/card.html b/themes/2026/layouts/_partials/card.html index c7c2690f..4d3d3c4d 100644 --- a/themes/2026/layouts/_partials/card.html +++ b/themes/2026/layouts/_partials/card.html @@ -44,15 +44,24 @@ {{- $coverPath := $page.Params.cover -}} {{- $image := false -}} {{- if $coverPath -}} - {{- if strings.HasSuffix $coverPath ".yaml" -}} - {{- $coverAbsPath := printf "%s%s" $page.File.Dir $coverPath -}} - {{- $coverRaw := readFile $coverAbsPath -}} - {{- $coverData := $coverRaw | transform.Unmarshal -}} - {{- with $coverData.file -}} - {{- $image = $page.Resources.GetMatch . -}} + {{- $coverResourcePath := (urls.Parse $coverPath).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $page.Resources.Get $coverResourcePath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $image = $page.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $image = $page.Resources.Get $coverResourcePath -}} {{- end -}} - {{- else -}} - {{- $image = $page.Resources.GetMatch $coverPath -}} {{- end -}} {{- end -}} diff --git a/themes/2026/layouts/_partials/media/render-image.html b/themes/2026/layouts/_partials/media/render-image.html index dc92f083..c656f7c5 100644 --- a/themes/2026/layouts/_partials/media/render-image.html +++ b/themes/2026/layouts/_partials/media/render-image.html @@ -1,59 +1,76 @@ -{{- $imgPath := .Destination -}} +{{- $imgPath := (urls.Parse .Destination).Path -}} {{- $imgName := path.Base $imgPath | replaceRE "\\.[^.]+$" "" -}} {{- $dataPath := printf "data/images/%s.yaml" $imgName -}} {{- $dataFile := .Page.Resources.Get $dataPath -}} {{- $data := dict -}} {{- if $dataFile -}} - {{- $data = $dataFile.Content | transform.Unmarshal -}} + {{- with $dataFile.Content | transform.Unmarshal -}} + {{- $data = . -}} + {{- end -}} {{- end -}} {{- $alt := .PlainText | default $data.title | default "" -}} {{- $title := .Title | default $data.title | default .Page.Title -}} {{- $description := $data.description | default "" -}} -{{- $image := .Page.Resources.GetMatch $imgPath -}} -{{- if not $image -}} - {{- return -}} -{{- end -}} -{{- $metaTitle := index $data "title" -}} -{{- $hasMeta := or $metaTitle (or $description (or $data.attribution $data.prompt)) -}} -{{- $attributes := .Attributes | default dict -}} -{{- $imageClasses := "" -}} -{{- with index $attributes "class" -}} - {{- $imageClasses = lower (trim . " ") -}} -{{- end -}} -{{- $layout := "" -}} -{{- with index $attributes "layout" -}} - {{- $layout = lower (trim . " ") -}} -{{- end -}} -{{- $hasCenterClass := gt (len (findRE `(^|\\s)(center|centered)(\\s|$)` $imageClasses)) 0 -}} -{{- $hasFullClass := gt (len (findRE `(^|\\s)(full|full-width|wide)(\\s|$)` $imageClasses)) 0 -}} -{{- $forceCentered := false -}} -{{- if or (in (slice "center" "centered") $layout) $hasCenterClass -}} - {{- $forceCentered = true -}} -{{- end -}} -{{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} - {{- $forceCentered = true -}} -{{- end -}} -{{- $forceWithoutMeta := false -}} -{{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} - {{- $forceWithoutMeta = true -}} -{{- end -}} -{{- $showMeta := and $hasMeta (not $forceWithoutMeta) -}} -{{- $figureClasses := slice "figure-media" -}} -{{- if $showMeta -}} - {{- $figureClasses = $figureClasses | append "figure-media-with-meta" -}} +{{- $image := false -}} +{{- $imagePathLower := lower $imgPath -}} +{{- if or (strings.HasSuffix $imagePathLower ".yaml") (strings.HasSuffix $imagePathLower ".yml") -}} + {{- $imageDataFile := .Page.Resources.Get $imgPath -}} + {{- if $imageDataFile -}} + {{- with $imageDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $imageFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $imageFilePath "" -}} + {{- $image = $.Page.Resources.Get $imageFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} {{- else -}} - {{- $figureClasses = $figureClasses | append "figure-media-without-meta" -}} -{{- end -}} -{{- if $forceCentered -}} - {{- $figureClasses = $figureClasses | append "figure-media-centered" -}} -{{- end -}} -{{- with $imageClasses -}} - {{- $figureClasses = $figureClasses | append . -}} + {{- $image = .Page.Resources.Get $imgPath -}} {{- end -}} +{{- with $image -}} + {{- $resolvedImage := . -}} + {{- $metaTitle := index $data "title" -}} + {{- $hasMeta := or $metaTitle (or $description (or $data.attribution $data.prompt)) -}} + {{- $attributes := $.Attributes | default dict -}} + {{- $imageClasses := "" -}} + {{- with index $attributes "class" -}} + {{- $imageClasses = lower (trim . " ") -}} + {{- end -}} + {{- $layout := "" -}} + {{- with index $attributes "layout" -}} + {{- $layout = lower (trim . " ") -}} + {{- end -}} + {{- $hasCenterClass := gt (len (findRE `(^|\\s)(center|centered)(\\s|$)` $imageClasses)) 0 -}} + {{- $hasFullClass := gt (len (findRE `(^|\\s)(full|full-width|wide)(\\s|$)` $imageClasses)) 0 -}} + {{- $forceCentered := false -}} + {{- if or (in (slice "center" "centered") $layout) $hasCenterClass -}} + {{- $forceCentered = true -}} + {{- end -}} + {{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} + {{- $forceCentered = true -}} + {{- end -}} + {{- $forceWithoutMeta := false -}} + {{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} + {{- $forceWithoutMeta = true -}} + {{- end -}} + {{- $showMeta := and $hasMeta (not $forceWithoutMeta) -}} + {{- $figureClasses := slice "figure-media" -}} + {{- if $showMeta -}} + {{- $figureClasses = $figureClasses | append "figure-media-with-meta" -}} + {{- else -}} + {{- $figureClasses = $figureClasses | append "figure-media-without-meta" -}} + {{- end -}} + {{- if $forceCentered -}} + {{- $figureClasses = $figureClasses | append "figure-media-centered" -}} + {{- end -}} + {{- with $imageClasses -}} + {{- $figureClasses = $figureClasses | append . -}} + {{- end -}}
- + {{- partial "media/display-img.html" (dict - "image" $image + "image" $resolvedImage "showMeta" $showMeta "forceCentered" $forceCentered "alt" $alt @@ -86,3 +103,4 @@ {{- end -}}
+{{- end -}} diff --git a/themes/2026/layouts/_partials/timeline-list.html b/themes/2026/layouts/_partials/timeline-list.html index 35104eb5..d6cb8c4f 100644 --- a/themes/2026/layouts/_partials/timeline-list.html +++ b/themes/2026/layouts/_partials/timeline-list.html @@ -10,15 +10,24 @@ {{- $coverPath := $page.Params.cover -}} {{- $image := false -}} {{- if $coverPath -}} - {{- if strings.HasSuffix $coverPath ".yaml" -}} - {{- $coverAbsPath := printf "%s%s" $page.File.Dir $coverPath -}} - {{- $coverRaw := readFile $coverAbsPath -}} - {{- $coverData := $coverRaw | transform.Unmarshal -}} - {{- with $coverData.file -}} - {{- $image = $page.Resources.GetMatch . -}} + {{- $coverResourcePath := (urls.Parse $coverPath).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $page.Resources.Get $coverResourcePath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $image = $page.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $image = $page.Resources.Get $coverResourcePath -}} {{- end -}} - {{- else -}} - {{- $image = $page.Resources.GetMatch $coverPath -}} {{- end -}} {{- end -}} diff --git a/themes/2026/layouts/home.html b/themes/2026/layouts/home.html index b80da435..b7bc65d0 100644 --- a/themes/2026/layouts/home.html +++ b/themes/2026/layouts/home.html @@ -308,7 +308,25 @@ {{- $image := false -}} {{- with $page.Params.cover -}} - {{- $image = $page.Resources.GetMatch . -}} + {{- $coverResourcePath := (urls.Parse .).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $page.Resources.Get $coverResourcePath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $image = $page.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $image = $page.Resources.Get $coverResourcePath -}} + {{- end -}} + {{- end -}} {{- end -}}
@@ -399,7 +417,25 @@ {{- $item := . -}} {{- $itemImage := false -}} {{- with $item.Params.cover -}} - {{- $itemImage = $item.Resources.GetMatch . -}} + {{- $coverResourcePath := (urls.Parse .).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $item.Resources.Get $coverResourcePath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $itemImage = $item.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $itemImage = $item.Resources.Get $coverResourcePath -}} + {{- end -}} + {{- end -}} {{- end -}}
  • diff --git a/themes/42/layouts/_partials/card.html b/themes/42/layouts/_partials/card.html index f261db82..40b46512 100644 --- a/themes/42/layouts/_partials/card.html +++ b/themes/42/layouts/_partials/card.html @@ -3,15 +3,23 @@ {{- $coverPath := .Params.cover -}} {{- $img := false -}} {{- if $coverPath -}} - {{- if strings.HasSuffix $coverPath ".yaml" -}} - {{- $coverAbsPath := printf "%s%s" $page.File.Dir $coverPath -}} - {{- $coverRaw := readFile $coverAbsPath -}} - {{- $coverData := $coverRaw | transform.Unmarshal -}} - {{- with $coverData.file -}} - {{- $img = $page.Resources.GetMatch . -}} + {{- $coverResourcePath := (urls.Parse $coverPath).Path -}} + {{- if ne $coverResourcePath "" -}} + {{- $coverPathLower := lower $coverResourcePath -}} + {{- if or (strings.HasSuffix $coverPathLower ".yaml") (strings.HasSuffix $coverPathLower ".yml") -}} + {{- $coverDataFile := $page.Resources.Get $coverResourcePath -}} + {{- if $coverDataFile -}} + {{- with $coverDataFile.Content | transform.Unmarshal -}} + {{- with index . "file" -}} + {{- $coverFilePath := strings.TrimSpace (printf "%v" .) -}} + {{- if ne $coverFilePath "" -}} + {{- $img = $page.Resources.Get $coverFilePath -}} + {{- end -}} + {{- end -}} {{- end -}} {{- else -}} - {{- $img = $page.Resources.GetMatch $coverPath -}} + {{- $img = $page.Resources.Get $coverResourcePath -}} + {{- end -}} {{- end -}} {{- end -}} {{- if $img -}} diff --git a/themes/42/layouts/_partials/media/render-image.html b/themes/42/layouts/_partials/media/render-image.html index 9fca0559..b637ac47 100644 --- a/themes/42/layouts/_partials/media/render-image.html +++ b/themes/42/layouts/_partials/media/render-image.html @@ -1,18 +1,37 @@ -{{- $imgPath := .Destination -}} +{{- $imgPath := (urls.Parse .Destination).Path -}} {{- $imgName := path.Base $imgPath | replaceRE "\\.[^.]+$" "" -}} {{/* Supprime l'extension */}} {{- $dataPath := printf "data/images/%s.yaml" $imgName -}} {{- $dataFile := .Page.Resources.Get $dataPath -}} {{- $data := dict -}} {{- if $dataFile }} -{{- $data = $dataFile.Content | transform.Unmarshal -}} +{{- with $dataFile.Content | transform.Unmarshal -}} +{{- $data = . -}} +{{- end -}} {{- end }} {{- $alt := .PlainText | default $data.title | default "" -}} {{- $title := .Title | default $data.title | default .Page.Title -}} {{- $description := default $data.description | default $title -}} -{{- $image := .Page.Resources.GetMatch $imgPath -}} -{{- $display := $image }} +{{- $image := false -}} +{{- $imagePathLower := lower $imgPath -}} +{{- if or (strings.HasSuffix $imagePathLower ".yaml") (strings.HasSuffix $imagePathLower ".yml") -}} +{{- $imageDataFile := .Page.Resources.Get $imgPath -}} +{{- if $imageDataFile -}} +{{- with $imageDataFile.Content | transform.Unmarshal -}} +{{- with index . "file" -}} +{{- $imageFilePath := strings.TrimSpace (printf "%v" .) -}} +{{- if ne $imageFilePath "" -}} +{{- $image = $.Page.Resources.Get $imageFilePath -}} +{{- end -}} +{{- end -}} +{{- end -}} +{{- else -}} +{{- $image = .Page.Resources.Get $imgPath -}} +{{- end -}} +{{- with $image -}} +{{- $resolvedImage := . -}} +{{- $display := $resolvedImage }} {{- if and $display (ne $display.MediaType.SubType "svg") (gt $display.Height 810) }} -{{- $display = $image.Resize "x810" -}} +{{- $display = $resolvedImage.Resize "x810" -}} {{- end }}
    {{- with $description }} @@ -20,7 +39,7 @@

    {{ . | markdownify }}

    {{- end }} -
    + {{ $alt }} {{- if $data.prompt }} @@ -39,3 +58,4 @@ {{- end }} {{- end }}
    +{{- end -}}