在Jekyll中按月发布

在Jekyll中按月发布,jekyll,archive,Jekyll,Archive,我正在尝试从我的网站创建一个帖子归档页面。我希望能够以这种格式每月为每个帖子列表创建一个页面: www.mywebsite.com/2016/11将显示2016年11月的所有帖子 我是否可以为我发布的每个月创建一个页面,该页面在我每个月发布时都会动态创建?我不想每个月都手动创建一个新页面 我已经可以按年度对帖子进行分组,如下所示: <ul> {% for post in site.posts %} {% assign currentdate = post.date | date:

我正在尝试从我的网站创建一个帖子归档页面。我希望能够以这种格式每月为每个帖子列表创建一个页面:

www.mywebsite.com/2016/11将显示2016年11月的所有帖子

我是否可以为我发布的每个月创建一个页面,该页面在我每个月发布时都会动态创建?我不想每个月都手动创建一个新页面

我已经可以按年度对帖子进行分组,如下所示:

<ul>
{% for post in site.posts %}
  {% assign currentdate = post.date | date: "%Y" %}
  {% if currentdate != date %}
    <li id="y{{currentdate}}">{{ currentdate }}</li>
    {% assign date = currentdate %} 
  {% endif %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
    {site.posts%中的post为%s} {%assign currentdate=post.date |日期:“%Y”} {%if currentdate!=日期%}
  • {{currentdate}
  • {%assign date=currentdate%} {%endif%}
  • {%endfor%}

谢谢您的帮助。

您可以修改
日期
过滤器以集成月份,例如
日期:“%B%Y”
。这就是我在布局中使用的,每个月都有一个单独的

从月份开始,
date
过滤器的值仅为:

  • %b
    :缩写月份名称
  • %B
    :完整的月份名称
  • %m
    :一年中的月份(01-12)
完整循环:

<ul>
{% for post in site.posts %}
  {% assign currentdate = post.date | date: "%B %Y" %}
  {% if currentdate != date %}
    <li id="y{{currentdate}}">{{ currentdate }}</li>
    {% assign date = currentdate %} 
  {% endif %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
    {site.posts%中的post为%s} {%assign currentdate=post.date |日期:“%B%Y”%} {%if currentdate!=日期%}
  • {{currentdate}
  • {%assign date=currentdate%} {%endif%}
  • {%endfor%}

关于生成页面,AFAIK这只能通过插件完成。如果您不能使用插件,例如,如果您在GitHub上托管您的页面,那么您所能做的最好是根据布局将您的页面缩减为短YAML frontmatter,如中所示。

谢谢,这对我很有帮助。我在GitHub上托管,所以我不会为此使用任何插件(老实说,我希望尽可能保持站点的轻量级,所以我不希望对外部插件有任何依赖)。