You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Hugo easy-gallery短码:引用Leaf Bundle内图片目录

修改hugo-easy-gallery短码读取Leaf Bundle内图片目录的步骤

1. 定位短码文件

找到项目中hugo-easy-gallery的短码文件,路径通常是layouts/shortcodes/gallery.html。如果短码存放在主题目录下,建议先将其复制到项目根目录的layouts/shortcodes/文件夹后再修改,避免主题更新覆盖自定义内容。

2. 修改目录读取逻辑

找到短码中获取图片目录的代码段,替换为以下内容:

{{ $dir := .Get "dir" }}
{{/* 获取当前Leaf Bundle所在的目录路径 */}}
{{ $pageDir := .Page.File.Dir }}
{{/* 拼接bundle内目标图片文件夹的完整项目相对路径 */}}
{{ $fullDir := printf "%s%s" $pageDir $dir }}
{{/* 读取目标文件夹内的文件 */}}
{{ $files := readDir $fullDir }}

注:如果原代码有判断$dir是否为空的逻辑,保留即可,仅替换路径拼接和文件读取的部分。

3. 修改图片URL生成逻辑

找到短码中生成图片<img>标签src属性的代码,将原基于/static/的路径替换为当前页面路径的相对URL:

{{/* 替换原src生成逻辑,指向bundle内的图片 */}}
<img src="{{ printf "%s%s/%s" .Page.RelPermalink $dir $file.Name | relURL }}" 
     alt="{{ $file.Name }}" 
     <!-- 保留原有的class、data-src等其他属性 -->
>

如果短码包含缩略图生成逻辑(如使用Process处理图片),需调整资源获取方式,改用resources.Get从当前bundle目录读取:

{{ $imgPath := printf "%s%s/%s" $pageDir $dir $file.Name }}
{{ $img := resources.Get $imgPath }}
{{ $thumb := $img.Resize "300x" }}
<img src="{{ $thumb.RelPermalink }}" alt="{{ $file.Name }}">

4. 测试验证

在Leaf Bundle的_index.md中使用短码:

{{< gallery dir="image-gallery-2" />}}

运行hugo server启动本地服务,检查画廊是否正常加载目标文件夹内的图片。

内容的提问来源于stack exchange,提问作者burnt-board

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 13:54:55