2014-01-09 48 views
3

我最初的想法是。这可能是我的主页代码(它被称为液体?)..如何使用jekyll从主页实现“加载更多帖子”?

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

之后,我认为把一个“帖子”按钮,链接到的Page2并做了同样的限制与抵消前4 ..就像这样:

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

从那里“帖子”按钮链接到第3页与限4和偏移8等等...

我的问题是: 1 >有没有更好的方式在Jekyll中做到这一点? 如果不是, 2>我应该创建多少个页面? 3>我可以创建页面而不需要重复整个内容只是为了换行吗? 4>我可以在帖子增加时将页面设置为自动创建吗?怎么样?

回答

2

为什么不使用Jekyll自己的分页功能?

只需将这两行放入_config.yml文件中即可。

paginate: 4 
paginate_path: "page:num" 

paginate_path允许您指定要分页的页面。因此,如果您有一个名为博客的页面,其中包含您的所有文章,也许您希望将其分页。要做到这一点,请设置paginate_path: "blog/page:num"。对于默认主页分页,请将其保留为"page:num"。我写了一段特定的代码来帮助分页导航。要设置分页的页面,您在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 -->链接,第二页会显示<--Newer posts...Older posts-->链接,第三页只会显示<--Newer posts链接。但是,如果您的总帖子数少于4,则此代码将隐藏您的分页导航,直到帖子数大于4为止。

相关问题