[英]How to use Liquid "sample" filter to generate a random post in Jekyll?
有一個 Liquid 過濾器sample
,可讓您“從數組中選擇一個隨機值。可選地,選擇多個值”。 (請參閱此處的文檔)
我的用例是有一個照片日記供觀眾點擊並從我現有的收藏“照片日記”中生成一個隨機帖子,而不是在下一次點擊中重復該帖子。
這是我的代碼:
{% 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 是一個static 站點生成器。 這意味着 Jekyll 生成站點一次,因此過濾器僅在構建站點時應用。 sample
過濾器將隨機選擇一個或多個帖子並將其插入您的頁面,但在重新加載頁面時不會更改,因為該站點已經生成。
Jekyll 無法實現您想要的那種動態行為,因此您必須以其他方式實現。 看看通過 Javascript/HTML 生成隨機鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.