From a90429d99129bd90ae7dc501bf3d8d29635be8aa Mon Sep 17 00:00:00 2001 From: MioYi Sama Date: Tue, 24 Feb 2026 06:42:09 +0800 Subject: [PATCH] fix(render-image): use page resources for relative images in i18n page bundles (#938) * fix(layout): Images missing (404) in multilingual (i18n) Page Bundles due to Markdown render hook * fix(layout): Changed to .PageInner based on PR review to support included shortcodes correctly * refactor(render-image): simplify i18n page bundle resource lookup Use single PathUnescape + TrimPrefix expression instead of six Get attempts; keep same behavior for bundle images and fallback. * refactor: simplify resource path handling in render-image.html * Add comment for multilingual permalink handling Added comment for multilingual permalink resolution in render-image.html --------- Co-authored-by: Xin <5097752+imfing@users.noreply.github.com> --- layouts/_markup/render-image.html | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/layouts/_markup/render-image.html b/layouts/_markup/render-image.html index bbc46ae..2d3c8cf 100644 --- a/layouts/_markup/render-image.html +++ b/layouts/_markup/render-image.html @@ -23,9 +23,17 @@ {{/* Images under static directory */}} {{- $dest = (relURL (strings.TrimPrefix "/" $dest)) -}} {{- end -}} - {{- else if and $isPage (not $startsWithRelative) -}} - {{/* Images that are sibling to the individual page file */}} - {{ $dest = (printf "../%s" $dest) }} + {{- else -}} + {{/* Resolve page bundle resource for multilingual permalink */}} + {{- with .PageInner.Resources.Get (strings.TrimPrefix "./" $url.Path) -}} + {{- $query := cond $url.RawQuery (printf "?%s" $url.RawQuery) "" -}} + {{- $fragment := cond $url.Fragment (printf "#%s" $url.Fragment) "" -}} + {{- $dest = printf "%s%s%s" .RelPermalink $query $fragment -}} + {{- else -}} + {{- if and $isPage (not $startsWithRelative) -}} + {{ $dest = (printf "../%s" $dest) }} + {{- end -}} + {{- end -}} {{- end -}} {{- end -}}