在HUGO中按日期字段对JSON数据进行倒序排列的实现咨询
Hugo按JSON日期字段排序渲染事件列表方案
你可以通过Hugo内置的time.Parse函数先将字符串格式的日期转换为时间类型,再基于转换后的时间做降序排序即可实现需求,修改后的页面代码如下:
<div class="row listrecent"> <!-- 先处理日期转换生成带解析后日期的事件数组 --> {{ $sortedEvents := slice }} {{ range .Site.Data.appearances.events }} <!-- 此处第一个参数为日期格式模板,对应你当前的月/日/年格式,若实际为日/月/年可改为"02/1/2006" --> {{ $parsedDate := time.Parse "1/02/2006" .date }} {{ $eventWithParsedDate := merge . (dict "parsedDate" $parsedDate) }} {{ $sortedEvents = $sortedEvents | append $eventWithParsedDate }} {{ end }} <!-- 按解析后的日期降序排序,最新事件排在最前 --> {{ range sort $sortedEvents "parsedDate" "desc" }} {{- partial "list-partials/appearancebox.html" . -}} {{ end }} </div>
说明
- 日期解析模板遵循Go语言的时间参考规则,使用固定参考时间
2006年1月2日的对应格式来匹配你的日期字符串结构,可根据你实际的日期格式灵活调整。 - 该方案无需手动维护JSON文件内的事件顺序,每次站点构建时会自动完成日期解析和排序,稳定性高,原有模板逻辑不需要做任何修改。
内容的提问来源于stack exchange,提问作者LaylaCodesIt
相关产品推荐
相关产品推荐

