簡體   English   中英

如何使用 Liquid“樣本”過濾器在 Jekyll 中生成隨機帖子?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM