diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-09-10 00:41:20 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-09-10 00:41:20 +0800 |
| commit | 85db458aa1042a458df5c5a25d70dd06655c924a (patch) | |
| tree | 84cfa7e1e8cb911adb7e6b5065d45a76e28c033e | |
| parent | 9b94708706dd397bb808a6347591e7636263bb67 (diff) | |
Add updated document archive
| -rw-r--r-- | content/updates/_index.md | 5 | ||||
| -rw-r--r-- | hugo.toml | 1 | ||||
| -rw-r--r-- | layouts/partials/recent.html | 15 | ||||
| -rw-r--r-- | layouts/partials/updated-items.html | 16 | ||||
| -rw-r--r-- | layouts/updates/list.html | 20 | ||||
| -rwxr-xr-x | scripts/publish-raw | 4 | ||||
| -rw-r--r-- | static/style.css | 4 |
7 files changed, 52 insertions, 13 deletions
diff --git a/content/updates/_index.md b/content/updates/_index.md new file mode 100644 index 0000000..0ae5b3d --- /dev/null +++ b/content/updates/_index.md @@ -0,0 +1,5 @@ +--- +title: "UPDATES" +lang: en +description: "Journal entries and notes ordered by their latest substantive update." +--- @@ -16,6 +16,7 @@ enableRobotsTXT = false sourceURL = "https://codeberg.org/Richard-Qin/rhomepage" gitBase = "https://codeberg.org/Richard-Qin/rhomepage/src/branch/main" contentLicense = "CC BY-SA 4.0" + recentLimit = 20 [frontmatter] date = ["created"] diff --git a/layouts/partials/recent.html b/layouts/partials/recent.html index 47c8332..cbe91af 100644 --- a/layouts/partials/recent.html +++ b/layouts/partials/recent.html @@ -1,18 +1,8 @@ -{{- $items := slice -}} -{{- range where site.RegularPages "Section" "journal" -}} - {{- $items = $items | append (dict "page" . "kind" "journal" "sortDate" (.Date.Format "2006-01-02")) -}} -{{- end -}} -{{- range where site.RegularPages "Section" "notes" -}} - {{- $page := . -}} - {{- with $page.Params.recent -}} - {{- $items = $items | append (dict "page" $page "kind" "note" "sortDate" (time.Format "2006-01-02" .)) -}} - {{- end -}} -{{- end -}} -{{- $items = sort $items "sortDate" "desc" -}} +{{- $items := partial "updated-items.html" . -}} <section class="recent" aria-labelledby="recent-title"> <h2 id="recent-title">RECENT</h2> <ol class="document-list"> - {{- range $items }} + {{- range first site.Params.recentLimit $items }} <li> <time datetime="{{ .sortDate }}">{{ .sortDate }}</time> <span class="document-kind">[{{ .kind }}]</span> @@ -20,4 +10,5 @@ </li> {{- end }} </ol> + <p class="recent-more"><a href="{{ "updates/" | relURL }}">Read more</a></p> </section> diff --git a/layouts/partials/updated-items.html b/layouts/partials/updated-items.html new file mode 100644 index 0000000..5f738a8 --- /dev/null +++ b/layouts/partials/updated-items.html @@ -0,0 +1,16 @@ +{{- $items := slice -}} +{{- range $section := slice "journal" "notes" -}} + {{- $kind := cond (eq $section "notes") "note" "journal" -}} + {{- range where site.RegularPages "Section" $section -}} + {{- if not .Params.created -}} + {{- errorf "Missing required created date in %s" .File.Path -}} + {{- end -}} + {{- if not .Params.updated -}} + {{- errorf "Missing required updated date in %s" .File.Path -}} + {{- end -}} + {{- $sortDate := time.Format "2006-01-02" .Params.updated -}} + {{- $sortKey := printf "%s|%s" $sortDate .RelPermalink -}} + {{- $items = $items | append (dict "page" . "kind" $kind "sortDate" $sortDate "sortKey" $sortKey) -}} + {{- end -}} +{{- end -}} +{{- return (sort $items "sortKey" "desc") -}} diff --git a/layouts/updates/list.html b/layouts/updates/list.html new file mode 100644 index 0000000..125ba79 --- /dev/null +++ b/layouts/updates/list.html @@ -0,0 +1,20 @@ +{{ define "main" }} + <article lang="{{ default "en" .Params.lang }}"> + <header class="document-header"> + <h1>{{ .Title }}</h1> + </header> + {{ .Content }} + {{- $items := partial "updated-items.html" . -}} + <section class="updates-list" aria-label="All updates"> + <ol class="document-list"> + {{- range $items }} + <li> + <time datetime="{{ .sortDate }}">{{ .sortDate }}</time> + <span class="document-kind">[{{ .kind }}]</span> + <a href="{{ .page.RelPermalink }}" lang="{{ .page.Params.lang }}">{{ .page.LinkTitle }}</a> + </li> + {{- end }} + </ol> + </section> + </article> +{{ end }} diff --git a/scripts/publish-raw b/scripts/publish-raw index 09048f3..cc9b02b 100755 --- a/scripts/publish-raw +++ b/scripts/publish-raw @@ -13,6 +13,10 @@ do relative=${source#"$content_dir"/} case "$relative" in + updates/_index.md) + # Updates is an aggregate index, not a published Markdown document. + continue + ;; journal/_index.md) target=$public_dir/journal/_index.md ;; diff --git a/static/style.css b/static/style.css index a799090..cf033de 100644 --- a/static/style.css +++ b/static/style.css @@ -249,7 +249,8 @@ a:focus-visible { margin-bottom: 0.7rem; } -.recent .document-list li { +.recent .document-list li, +.updates-list .document-list li { display: grid; grid-template-columns: max-content max-content minmax(0, 1fr); gap: 0.25rem 0.8rem; @@ -495,6 +496,7 @@ img { } .recent .document-list li, + .updates-list .document-list li, .journal-list li { display: block; } |
