重力:在树枝模板中循环 /user/pages/images
Grav: loop over /user/pages/images in twig template
我想将图像用于背景幻灯片 (vegas),而不是明确地将它们添加到 yaml 文件中。
我有
/user/pages
/01.start
/images/
bg1.png
bg2.png
并且需要这样的输出
<script type="text/javascript">
$("body").vegas({
timer: false,
slides: [
{ src: "/user/images/slide/bg1.png" },
{ src: "/user/images/slide/bg2.png" }
]
});
</script>
我可以得到 page.media.images,但我不知道如何循环 /users/pages/images 以及如何处理 javascript 语句中的“{{}}”输出.
如果/user/pages/01.start/
是一个页面(包含一个Markdown文件)而images
只是/user/pages/01.start
里面的一个文件夹(background
文件夹里没有Markdown文件) .您使用 for
循环图片,Grav 会自动检测页面子文件夹中的图片。
要不打印最后一个逗号,请比较图像数组的 loop.index
with the quantity of images you have (use length
过滤器。
如果您想要图片的直接 URL,请使用 your_image_variable.url
,如果您要获取缓存图片的 URL,请使用 your_image_variable.cache.url
$("body").vegas({
timer: false,
slides: [
{% for image in page.media.images %}
{ src: "{{ image.cache.url }}" }{% if loop.index < page.media.images|length %},{% endif %}
{% endfor %}
]
});
如果你想从特定页面获取图像,例如 /user/pages/images/background
你需要将 Markdown 文件放在这个文件夹中,让 Grav 认为这个文件夹是一个页面,在你的主题中你使用:
{% for image in pages.find('/images/background').media.images %}
{# Your code here #}
{% endfor %}
您可以设置background
页面取消发布以禁止直接访问它。
我想将图像用于背景幻灯片 (vegas),而不是明确地将它们添加到 yaml 文件中。
我有
/user/pages
/01.start
/images/
bg1.png
bg2.png
并且需要这样的输出
<script type="text/javascript">
$("body").vegas({
timer: false,
slides: [
{ src: "/user/images/slide/bg1.png" },
{ src: "/user/images/slide/bg2.png" }
]
});
</script>
我可以得到 page.media.images,但我不知道如何循环 /users/pages/images 以及如何处理 javascript 语句中的“{{}}”输出.
如果/user/pages/01.start/
是一个页面(包含一个Markdown文件)而images
只是/user/pages/01.start
里面的一个文件夹(background
文件夹里没有Markdown文件) .您使用 for
循环图片,Grav 会自动检测页面子文件夹中的图片。
要不打印最后一个逗号,请比较图像数组的 loop.index
with the quantity of images you have (use length
过滤器。
如果您想要图片的直接 URL,请使用 your_image_variable.url
,如果您要获取缓存图片的 URL,请使用 your_image_variable.cache.url
$("body").vegas({
timer: false,
slides: [
{% for image in page.media.images %}
{ src: "{{ image.cache.url }}" }{% if loop.index < page.media.images|length %},{% endif %}
{% endfor %}
]
});
如果你想从特定页面获取图像,例如 /user/pages/images/background
你需要将 Markdown 文件放在这个文件夹中,让 Grav 认为这个文件夹是一个页面,在你的主题中你使用:
{% for image in pages.find('/images/background').media.images %}
{# Your code here #}
{% endfor %}
您可以设置background
页面取消发布以禁止直接访问它。