now 的另一種設置方式

新增了最近在幹嘛,有興趣的可以去看看,應該會每個月發一次(吧?)

作法跟JN這篇的不太一樣。

此做法透過AI來幫忙,可能不是最優解,若是有更好的方法可以私信來跟我說。

我是將 rss.xml 新增now進去rss中

1
2
3
4
{{- if or $.IsHome $.IsSection -}}
    {{/* 首頁或分區:包含 post 和 now 頁面 */}}
    {{- $posts := where .Site.RegularPages "Type" "==" "post" -}}
    {{- $nowPage := .Site.GetPage "/now" -}}

接下來透過lastmod來判斷哪一篇文章是最新修改過的。

1
2
{{/* 按最後修改時間排序,最新的在前 */}}
{{- $pages = $pages.ByLastmod.Reverse -}}

所以我的post default.md就會多了一個lastmod,如果想要讓他新增至rss的最上面就修改lastmod就好了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
---
title:
date: {{ .Date }}
lastmod: {{ .Date }}
draft: false
categories:
  - blog
tags:
  - 
---

但我還沒試過在FreshRSS會是什麼樣子,我等等來測試一下。(測試成功!!!)

接下來給一些懶的搞的人抄作業(我也是喜歡抄作業的人,所以我懂)

直接在layouts\_default\rss.xml上半部分貼上就好囉,下面是一樣的


{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
{{- $pages := slice -}}
{{- if or $.IsHome $.IsSection -}}
    {{/* 首頁或分區:包含 post 和 now 頁面 */}}
    {{- $posts := where .Site.RegularPages "Type" "==" "post" -}}
    {{- $nowPage := .Site.GetPage "/now" -}}
    {{- if $nowPage -}}
        {{- $pages = union $posts (slice $nowPage) -}}
    {{- else -}}
        {{- $pages = $posts -}}
    {{- end -}}
{{- else -}}
    {{- $pages = $pctx.Pages -}}
{{- end -}}
{{- $pages := where $pages "Params.hidden" "!=" true -}}
{{/* 按最後修改時間排序,最新的在前 */}}
{{- $pages = $pages.ByLastmod.Reverse -}}
{{- $limit := .Site.Config.Services.RSS.Limit -}}
{{- if ge $limit 1 -}}
    {{- $pages = $pages | first $limit -}}
{{- end -}}
使用 Hugo 建立
主題 StackJimmy 設計