From 6ac2fc6523a8038c2b7acd268d047c3e33f5939578c1ff2e7fbdd526ba422335 Mon Sep 17 00:00:00 2001
From: Nicholas Johnson
Date: Thu, 6 Feb 2025 00:00:00 +0000
Subject: Add non-breaking spaces to improve text flow
The spaces directly following emojis must be non-breaking because having
emojis alone on their own line is ugly and visually confusing.
The spaces within pageinfo "segments" must be non-breaking because
splitting dates and read times across multiple lines is ugly and
visually confusing.
---
layouts/_default/single.gmi | 6 +++---
layouts/_default/single.html | 2 +-
layouts/index.gmi | 2 +-
layouts/index.html | 2 +-
layouts/partials/metadata.gmi | 2 +-
layouts/partials/metadata.html | 2 +-
layouts/partials/pageinfo.gmi | 11 ++++++++++-
layouts/partials/pageinfo.html | 13 ++++++++++++-
layouts/taxonomy/taxonomy.gmi | 6 +++---
layouts/taxonomy/taxonomy.html | 6 +++---
layouts/term/term.gmi | 4 ++--
layouts/term/term.html | 4 ++--
12 files changed, 40 insertions(+), 20 deletions(-)
(limited to 'layouts')
diff --git a/layouts/_default/single.gmi b/layouts/_default/single.gmi
index 7666f8c..1502830 100644
--- a/layouts/_default/single.gmi
+++ b/layouts/_default/single.gmi
@@ -1,6 +1,6 @@
{{ define "main" -}}
-{{ $emoji := cond (.Page.Params.showlinkemoji | default true) (emojify ":link: ") "" -}}
-=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" -}}
+{{ $emoji := cond (.Page.Params.showlinkemoji | default true) (emojify ":link: ") "" -}}
+=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" -}}
{{ if (.Page.Params.pageinfo | default true) }}
@@ -125,7 +125,7 @@
{{ $ref_title := .title -}}
{{/* render referenced links */}}
-{{ print "=> " $ref_link (emojify " :link: [") $ref_index "]: " (cond (ne (len $ref_title) 0) $ref_title $ref_text) -}}
+{{ print "=> " $ref_link (emojify " :link: [") $ref_index "]: " (cond (ne (len $ref_title) 0) $ref_title $ref_text) -}}
{{ end -}}
{{ end -}}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 1a8aa10..fdfa777 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,6 +1,6 @@
{{ define "main" -}}
{{- if (.Page.Params.pageinfo | default true) }}
{{ partial "pageinfo.html" . }}
diff --git a/layouts/index.gmi b/layouts/index.gmi
index ec9a959..4ce3bf1 100644
--- a/layouts/index.gmi
+++ b/layouts/index.gmi
@@ -8,7 +8,7 @@
## {{ i18n "navLinks" }}
{{ range .Site.Menus.main }}
-=> {{ .URL }} {{ emojify ":link:" }} {{ .Name -}}
+=> {{ .URL }} {{ emojify ":link:" }} {{ .Name -}}
{{ end -}}
{{ end -}}
diff --git a/layouts/index.html b/layouts/index.html
index c5ba561..efbebb1 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -7,7 +7,7 @@
diff --git a/layouts/partials/metadata.gmi b/layouts/partials/metadata.gmi
index 04749d9..48d3db4 100644
--- a/layouts/partials/metadata.gmi
+++ b/layouts/partials/metadata.gmi
@@ -1,2 +1,2 @@
{{ partial "pageinfo.gmi" . }}
-=> {{ .RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ .Title }}
\ No newline at end of file
+=> {{ .RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ .Title }}
\ No newline at end of file
diff --git a/layouts/partials/metadata.html b/layouts/partials/metadata.html
index 4158ee5..ed091b8 100644
--- a/layouts/partials/metadata.html
+++ b/layouts/partials/metadata.html
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/layouts/partials/pageinfo.gmi b/layouts/partials/pageinfo.gmi
index 0e2d051..adde0c0 100644
--- a/layouts/partials/pageinfo.gmi
+++ b/layouts/partials/pageinfo.gmi
@@ -1,2 +1,11 @@
{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}}
-{{ emojify ":calendar:" }} {{ .Page.PublishDate | time.Format $dateFormat }} | {{ emojify ":stopwatch:" }} {{ i18n "readingTime" .ReadingTime }}{{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := (.Param (lower (i18n "tags"))) }}{{ if $key }}, {{ end }}{{ $val }}{{ end }}
\ No newline at end of file
+
+{{ $nonBreakingPublishDate := .Page.PublishDate | time.Format $dateFormat -}}
+{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate " " " " -}}
+{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate "-" "‑" -}}
+
+{{ $nonBreakingReadingTime := i18n "readingTime" .ReadingTime -}}
+{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime " " " " -}}
+{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime "-" "‑" -}}
+
+{{ emojify ":calendar:" }} {{ $nonBreakingPublishDate }} | {{ emojify ":stopwatch:" }} {{ $nonBreakingReadingTime }}{{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := (.Param (lower (i18n "tags"))) }}{{ if $key }}, {{ end }}{{ $val }}{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/pageinfo.html b/layouts/partials/pageinfo.html
index c002530..8879d5e 100644
--- a/layouts/partials/pageinfo.html
+++ b/layouts/partials/pageinfo.html
@@ -1,2 +1,13 @@
{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}}
-{{ emojify ":calendar:" }} | {{ emojify ":stopwatch:" }} {{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := (.Param (lower (i18n "tags"))) }}{{ if $key }}, {{ end }}{{ $val }}{{ end }}
+
+{{/* user-overridable parameter $dateFormat is escaped pre-insertion so that HTML entities can be inserted */ -}}
+{{ $nonBreakingPublishDate := .Page.PublishDate | time.Format $dateFormat | htmlEscape -}}
+{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate " " " " -}}
+{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate "-" "‑" -}}
+
+{{/* user-overridable parameter $readingTime is escaped pre-insertion so that HTML entities can be inserted */ -}}
+{{ $nonBreakingReadingTime := i18n "readingTime" .ReadingTime | htmlEscape -}}
+{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime " " " " -}}
+{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime "-" "‑" -}}
+
+{{ emojify ":calendar:" }} | {{ emojify ":stopwatch:" }} {{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := (.Param (lower (i18n "tags"))) }}{{ if $key }}, {{ end }}{{ $val }}{{ end }}
diff --git a/layouts/taxonomy/taxonomy.gmi b/layouts/taxonomy/taxonomy.gmi
index a889b37..9c2a9f0 100644
--- a/layouts/taxonomy/taxonomy.gmi
+++ b/layouts/taxonomy/taxonomy.gmi
@@ -1,5 +1,5 @@
{{ define "main" -}}
-=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }}
+=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }}
# {{ .Type | humanize }}
@@ -7,11 +7,11 @@
## {{ i18n "feeds" }}
-=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }}
+=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }}
## {{ i18n "list" }}
{{ range .Data.Pages }}
-=> {{ .RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ .Title -}}
+=> {{ .RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ .Title -}}
{{ end -}}
{{ end }}
\ No newline at end of file
diff --git a/layouts/taxonomy/taxonomy.html b/layouts/taxonomy/taxonomy.html
index 7dd447d..2842beb 100644
--- a/layouts/taxonomy/taxonomy.html
+++ b/layouts/taxonomy/taxonomy.html
@@ -1,15 +1,15 @@
{{ define "main" -}}
{{ .Type | humanize }}
{{ i18n "feeds" }}
- {{ emojify ":link:" }} {{ i18n "atomFeed" }}
+ {{ emojify ":link:" }} {{ i18n "atomFeed" }}
{{ i18n "list" }}
diff --git a/layouts/term/term.gmi b/layouts/term/term.gmi
index b2c7bcb..5d7f7b1 100644
--- a/layouts/term/term.gmi
+++ b/layouts/term/term.gmi
@@ -1,5 +1,5 @@
{{ define "main" -}}
-=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }}
+=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }}
# {{ .Type | singularize | humanize }} "{{ .Title }}"
@@ -7,7 +7,7 @@
## {{ i18n "feeds" }}
-=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }}
+=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }}
## {{ i18n "journalEntries" -}}
diff --git a/layouts/term/term.html b/layouts/term/term.html
index 33d5347..78e5542 100644
--- a/layouts/term/term.html
+++ b/layouts/term/term.html
@@ -1,11 +1,11 @@
{{ define "main" -}}
{{ .Type | singularize | humanize }} "{{ .Title }}"
{{ i18n "feeds" }}
- {{ emojify ":link:" }} {{ i18n "atomFeed" }}
+ {{ emojify ":link:" }} {{ i18n "atomFeed" }}
{{ i18n "journalEntries" }}
{{- range .Data.Pages.ByPublishDate.Reverse }}
{{ partial "metadata.html" . -}}
--
cgit v1.2.3