{{- /*
The page's views from data/pageviews.json (written by scripts/ga4_pageviews.py of hugo-writer),
e.g. "1,245 次瀏覽(3 天前統計)". Copy to layouts/partials/pageviews.html of your site and put
{{ partial "pageviews.html" . }} where it should show. Guide: docs/pageviews.md of hugo-writer.
Shows nothing for a page the file doesn't have, or with fewer views than params.pageviews.min:
[params.pageviews]
min = 50
"N hours / days / months / years ago" is worked out when Hugo builds the page, and again in the
browser, so it stays right however long ago the site was built.
*/ -}}
{{- with site.Data.pageviews }}
{{- /* Keyed like ga4_pageviews.py does: /a/b.html, /a/b/, /a/b/index.html and /a/b are all /a/b. */}}
{{- $key := $.RelPermalink | lower | strings.TrimSuffix "index.html" | strings.TrimSuffix ".html" | strings.TrimRight "/" | default "/" }}
{{- with index (.pages | default dict) $key }}
{{- $min := 0 }}
{{- with site.Params.pageviews }}{{ $min = .min | default 0 }}{{ end }}
{{- if ge .views $min }}
{{- $t := dict "views" "%s views" "pre" " (as of " "post" ")" "lt" "less than 1h ago" "h" "%dh ago" "d" "%dd ago" "m" "%dmo ago" "y" "%dy ago" }}
{{- if hasPrefix (lower site.Language.Lang) "zh" }}
{{- $t = dict "views" "%s 次瀏覽" "pre" "(" "post" "統計)" "lt" "不到 1 小時前" "h" "%d 小時前" "d" "%d 天前" "m" "%d 個月前" "y" "%d 年前" }}
{{- end }}
{{- $at := time .at }}
{{- $h := div (sub now.Unix $at.Unix) 3600 }}
{{- $d := div $h 24 }}
{{- $ago := $t.lt }}
{{- if ge $d 365 }}{{ $ago = printf $t.y (div $d 365) }}
{{- else if ge $d 30 }}{{ $ago = printf $t.m (div $d 30) }}
{{- else if ge $d 1 }}{{ $ago = printf $t.d $d }}
{{- else if ge $h 1 }}{{ $ago = printf $t.h $h }}
{{- end -}}
{{ printf $t.views (lang.FormatNumber 0 .views) }}{{ $t.pre }}{{ $t.post }}
{{- end }}
{{- end }}
{{- end }}