簡體   English   中英

如何使用jekyll從主頁實現“加載更多帖子”?

[英]How to implement “load more posts” from homepage using jekyll?

我最初的想法是..這可以是我的主頁代碼(它被稱為液體嗎?)..

{% for post in site.posts limit:4 %}

之后我想到了一個“更多帖子”按鈕鏈接到page2並做了相同的限制,抵消了前4個..像這樣:

{% for post in site.posts offset:4 limit:4 %}

從那里“更多帖子”按鈕鏈接到第3頁,限制4和偏移8等等......

我的問題是:1>在傑基爾有更好的方法嗎? 如果沒有,2>我應該創建多少頁? 3>我可以創建頁面而不重復整個內容只需1行更改嗎? 4>當帖子增加時,我可以將頁面設置為自動創建嗎? 怎么樣?

為什么不使用Jekyll自己的分頁功能?

只需將這兩行放在_config.yml文件中即可。

paginate:    4
paginate_path: "page:num"

paginate_path允許您指定要分頁的頁面。 因此,如果您有一個名為博客的頁面,其中包含您的所有文章,那么您可能希望將其分頁。 為此,請設置paginate_path: "blog/page:num" 對於默認主頁分頁,請將其保留為"page:num" 我編寫了一段特定的代碼來幫助分頁導航。 要像在paginate_path指定的那樣在頁面中設置paginate_path ,您需要指定以下內容:

{% for post in paginator.posts %} 
{{ post.title }}
{{ post.content | strip_html | truncatewords:40 }}
{% endfor %}

這將顯示第一個分頁頁面。 但是你需要一個導航欄,即< - 較新的帖子...較舊的帖子 - >按鈕。 我特意寫了一個流暢的表達方式。 因此,在上一個代碼塊之后,將這些代碼放在分頁導航中。

{% if paginator.total_pages != 1 %}  
    <div class="row text-center text-caps">
        <div class="col-md-8 col-md-offset-2">
            <nav class="pagination" role="pagination">

<span class="page-number">Page {{ paginator.page }} of {{ paginator.total_pages }}</span>
{% if site.paginate_path != 'page:num'%}
{% assign paginate_url = site.paginate_path | remove:'/page:num' %}
{% if paginator.previous_page %}
  {% if paginator.previous_page == 1 %}
  <a class="newer-posts" href="{{ site.url }}/{{ paginate_url }}/" class="btn" title="Newer Posts">&larr; Newer Posts</a>
  {% else %}
 <a class="newer-posts" href="{{ site.url }}/{{ paginate_url }}/page{{ paginator.previous_page }}/" class="btn" title="Newer Posts">&larr; Newer Posts</a>
  {% endif %}
{% endif %}
{% if paginator.next_page %} 
<a class="older-posts" href="{{ site.url }}/{{ paginate_url }}/page{{ paginator.next_page }}/" class="btn" title="Older Posts">Older Posts &rarr;</a>
{% endif %} 
{% else %}
{% if paginator.previous_page %}
  {% if paginator.previous_page == 1 %}
  <a class="newer-posts" href="{{ site.url }}/" class="btn" title="Newer Posts">&larr; Newer Posts</a>
  {% else %}
 <a class="newer-posts" href="{{ site.url }}/page{{ paginator.previous_page }}/" class="btn" title="Newer Posts">&larr; Newer Posts</a>
  {% endif %}
{% endif %}
{% if paginator.next_page %} 
<a class="older-posts" href="{{ site.url }}/page{{ paginator.next_page }}/" class="btn" title="Older Posts">Older Posts &rarr;</a>
            </nav>
        </div>
    </div>
{% endif %}
{% endif %}
{% endif %}

此代碼將生成分頁帖子的導航菜單,該菜單是智能的並相應地隱藏按鈕。 例如,如果您總共有11個帖子並且您在每個分頁索引中選擇了4個頁面,則第一個頁面將包含4個帖子,第二個頁面還包含4個帖子和第三個帖子。第一個頁面只需顯示Older posts -->帖子Older posts -->鏈接,第二頁將顯示<--Newer posts...Older posts-->鏈接,第三頁將僅顯示<--Newer posts鏈接。 但如果您的總帖子少於4,此代碼將隱藏您的分頁導航,直到帖子編號大於4。

幸運的是,Jekyll已經加入了(您已經在上面描述過的內容)。您可以通過查看Jekyll分頁文檔了解如何將其合並到您的網站中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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