我不确定是否能获得流畅的语法来帮助我提取在构建日期同一周发布的帖子。那可能吗?
有更简单的方法来获取最近帖子的列表,但这种方法对我的项目很有用。我尝试过通过搜索找到的一些东西,但还没有找到乐趣。
\n\n在再次考虑这个答案之前,请考虑这样一个事实:至少这个答案的第一部分实际上不起作用,因为 jekyll 是一个静态站点生成器,因此显示的帖子是相对于上次构建日期的,可能与当前日期不同。
\n答案的第二部分更深入地探讨了实际生成“最近帖子”列表,而不是“上周帖子”的想法。
\n
基本上用文字解释代码:首先我们得到current year和current week,然后我们循环遍历每个帖子并将current year和current week与帖子的week和进行比较。year如果它们匹配,则会显示该帖子。
显示 \xe2\x80\x94 构建周:
\n\n{% assign currentYear = site.time | date: "%Y" %}\n{% assign currentWeek = site.time | date: "%W" %}\n\n{%- for post in site.posts -%}\n \n {% assign postYear = post.date | date: "%Y" %}\n {% assign postWeek = post.date | date: "%W" %}\n \n {%- if currentYear == postYear and currentWeek == postWeek -%}\n <a href="{{ post.url }}">{{ post.title }}</a>\n {%- endif -%}\n \n{%- endfor -%}\nRun Code Online (Sandbox Code Playgroud)\n显示 \xe2\x80\x94 构建日和 6 天前:
\n\n{% assign currentYear = site.time | date: "%Y" %}\n{% assign currentDay = site.time | date: "%j" | plus: 0 %}\n{% assign currentDay_minus_week = site.time | date: "%j" | minus: 7 %}\n\n{%- for post in site.posts -%}\n \n {% assign postYear = post.date | date: "%Y" %}\n {% assign postDay = post.date | date: "%j" | plus: 0 %}\n \n {%- if currentYear == postYear and postDay > currentDay_minus_week and postDay <= currentDay -%}\n <a href="{{ post.url }}">{{ post.title }}</a>\n {%- endif -%}\n \n{%- endfor -%}\nRun Code Online (Sandbox Code Playgroud)\n为了挽救这个答案,尽管它已经有点偏离了方向......我用类似的逻辑编写了这段代码,但这次它获取了最新帖子的year和week并显示了当年发布的所有帖子星期。
即使您继续构建网站而不发布新帖子,这在显示某些内容方面也是无懈可击的。但它也只显示一个帖子,如果你的最后一个帖子是该周发布的唯一帖子,这可能有点愚蠢......
\n另一方面,显示“最近帖子”的最简单方法可能只是使用并将limit最近的帖子限制为最近 5 个帖子或类似的内容:{%- for post in site.posts limit: 5 -%}
显示 \xe2\x80\x94 最新帖子周:
\n\n{% assign latestPost_year = site.posts.first.date | date: "%Y" %}\n{% assign latestPost_week = site.posts.first.date | date: "%W" %}\n\n{%- for post in site.posts -%}\n \n {% assign postYear = post.date | date: "%Y" %}\n {% assign postWeek = post.date | date: "%W" %}\n \n {%- if latestPost_year == postYear and latestPost_week == postWeek -%}\n <a href="{{ post.url }}">{{ post.title }}</a>\n {%- endif -%}\n \n{%- endfor -%}\nRun Code Online (Sandbox Code Playgroud)\n显示 \xe2\x80\x94 最新发布日和 6 天前
\n\n{% assign latestPost_year = site.posts.first.date | date: "%Y" %}\n{% assign latestPost_day = site.posts.first.date | date: "%j" | plus: 0 %}\n{% assign latestPost_day_minus_week = site.posts.first.date | date: "%j" | minus: 7 %}\n\n{%- for post in site.posts -%}\n \n {% assign postYear = post.date | date: "%Y" %}\n {% assign postDay = post.date | date: "%j" | plus: 0 %}\n \n {%- if latestPost_year == postYear and postDay > latestPost_day_minus_week and postDay <= latestPost_day -%}\n <a href="{{ post.url }}">{{ post.title }}</a>\n {%- endif -%}\n \n{%- endfor -%}\nRun Code Online (Sandbox Code Playgroud)\n