如何解决如何使用液体“样本”过滤器在 Jekyll 中生成随机帖子?
有一个 Liquid 过滤器 sample
允许您“从数组中选择一个随机值。可选地,选择多个值”。 (请参阅文档 here)
我的用例是有一个照片日记,供查看者点击并从我现有的收藏“照片日记”中生成一个随机帖子,下次点击时不再重复该帖子。
这是我的代码:
{% assign posts = site.photodiary | where_exp:"post","post.url != page.url" | sample: 8 %}
{% for post in posts limit:1 %}
<a class="prev" href="{{post.url}}">Load a post</a>
{% endfor %}
</div>
<main>
{%- if page.content-type == "photodiary" -%}
<h2>{{page.title}}</h2>
<p> {{content}} </p>
{%- endif -%}
</main>
目前我只有 8 个条目,因此 sample: 8
。
虽然代码有效,但点击 1-2 次后,帖子将重复,我的页面只会加载相同的 2 到 3 个帖子。
谁能告诉我逻辑或我的代码是否存在缺陷? 非常感谢!
解决方法
Jekyll 是一个静态站点生成器。这意味着 Jekyll 生成站点一次,因此过滤器仅在构建站点时应用。 sample
过滤器会随机选择一个或多个帖子并将其插入您的页面,但在重新加载页面时不会改变,因为该网站已经生成。
Jekyll 无法实现您想要的那种动态行为,因此您必须以其他方式实现。看看Generating a random link through Javascript/HTML
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。