Add configurable timestamping for posts (#494)

* Add configurable timestamping

* Add attribution for configurable timestamping

* Add new post timestamp options to example hugo.toml

* All date formats are now set by single config option in site or page config

* Add post timestamp explainer and examples to example config file

* Add configurable timestamping value to frontmatter archetype

* Explain possible timezone rendering issue with new time formatting

* Fix bug concerning time/date tokens

* Convert datestamps to work with a partial

* Fix issue with lastmod being equal to date

* Add Updated prefix functionality
This commit is contained in:
KatieTheDev 2024-11-19 01:09:43 -07:00 committed by GitHub
parent 08ec931cea
commit c779a70834
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 45 additions and 5 deletions

View file

@ -27,3 +27,8 @@ eg:
- **Support for beautiful *KaTeX* formulae** ([amtoine/hugo-theme-terminal-katex](https://github.com/amtoine/hugo-theme-terminal-katex))
- SHORT DESCRIPTION
- Antoine Stevan ([@amtoine](https://github.com/amtoine)), software engineer into open source
- **Configurable timestamping for posts** ([KatieTheDev/hugo-theme-terminal](https://github.com/KatieTheDev/hugo-theme-terminal))
- Allows for configuring timestamping, not just datestamping
- Works with last modification dates as well
- KatieTheDev ([@KatieTheDev](https://github.com/KatieTheDev))

View file

@ -203,6 +203,20 @@ paginate = 5
# can be overridden in a page's front-matter
# TocTitle = "Table of Contents" # default
# Set date/time format for posts
# This will impact the date/time displayed on
# index.html, the posts list page, and on posts themselves
# This value can also be configured per-post on front matter
# If you have any issues with the timezone rendering differently
# than you expected, please ensure your timezone is correctly set
# on your server.
# This value can be customized according to Hugo documentation:
# https://gohugo.io/functions/time/format/
# Default value (no changes needed):
# dateFormat = "2006-01-02"
# Example format, with date, time, and timezone abbreviation:
# dateFormat = "2006-01-02 3:04:06 PM MST"
[params.twitter]
# set Twitter handles for Twitter cards

View file

@ -1,6 +1,7 @@
+++
title = "{{ replace .TranslationBaseName "-" " " | title }}"
date = "{{ .Date }}"
#dateFormat = "2006-01-02" # This value can be configured for per-post date formatting
author = ""
authorTwitter = "" #do not include @
cover = ""

View file

@ -23,7 +23,7 @@
<div class="post-meta">
{{- if .Date -}}
<time class="post-date">
{{- .Date.Format "2006-01-02" -}}
{{- partial "post-date" . -}}
</time>
{{- end -}}
{{- with .Params.Author -}}

View file

@ -13,7 +13,7 @@
<div class="post-meta">
{{- if .Date -}}
<time class="post-date">
{{- .Date.Format "2006-01-02" -}}
{{- partial "post-date" . -}}
</time>
{{- end -}}
{{- with .Params.Author -}}

View file

@ -6,9 +6,9 @@
<div class="post-meta">
{{- if .Date -}}
<time class="post-date">
{{- .Date.Format "2006-01-02" -}}
{{- if $.Site.Params.showLastUpdated -}}
[{{- or $.Site.Params.updatedDatePrefix "Updated" -}} :: {{- .Lastmod.Format "2006-01-02" -}}]
{{- partial "post-date" . -}}
{{- if .Lastmod -}}
&nbsp;{{- partial "post-lastmod" . -}}
{{- end -}}
</time>
{{- end -}}

View file

@ -0,0 +1,10 @@
{{- $date := .Date -}}
{{- with .Params.dateFormat -}}
{{- $date | time.Format . -}}
{{- else -}}
{{- with .Site.Params.dateFormat -}}
{{- $date | time.Format . -}}
{{- else -}}
{{- $date | time.Format "2006-01-02" -}}
{{- end -}}
{{- end -}}

View file

@ -0,0 +1,10 @@
{{- $date := .Lastmod -}}
{{- with .Params.dateFormat -}}
{{- $date | time.Format . -}}
{{- else -}}
{{- with .Site.Params.dateFormat -}}
[{{- or $.Site.Params.updatedDatePrefix "Updated: " }} {{ $date | time.Format . -}}]
{{- else -}}
[{{- or $.Site.Params.updatedDatePrefix "Updated: " }} {{ $date | time.Format "2006-01-02" -}}]
{{- end -}}
{{- end -}}