diff options
51 files changed, 729 insertions, 563 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c62b30..31026db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,157 @@ # Changelog -## [1.3.7] - 2024-07-04 +## [2025.09.07] - 2025-09-07 + +### Fixed + +- Fix link in README + +## [2025.07.27.2] - 2025-07-27 + +### Changed + +- Make content area's background color always fill viewport height +- Make footer always stick to bottom of page + +## [2025.07.27.1] - 2025-07-27 + +### Changed + +- Add gray background to website + +## [2025.07.27] - 2025-07-27 + +### Changed + +- Change minimum supported Hugo version to 0.146.0 +- Migrate to new template system in Hugo v0.146.0 + +### Fixed + +- Fix rendering of term pages + +## [2025.07.24.1] - 2025-07-24 + +### Changed + +- Switch from semantic versioning to calendar versioning + +### Added + +- Support Hugo versions 0.146.0 and later + +## [2025.07.24] - 2025-07-24 + +### Changed + +- Utilize front matter key "build", retain compatibility with deprecated key "_build" + +### Added + +- Document maximum supported Hugo version in README.md + +## [2025.02.06] - 2025-02-06 + +### Changed + +* Add non-breaking spaces within entry tag names + +## [2025.02.06] - 2025-02-06 + +### Changed + +* Add non-breaking spaces after emojis and within entry dates and read times +* Remove commas from entry tag list in html output format + +### Fixed + +* Move taxonomy and term feeds' link emojis to outside link text in html output format + +## [2025.02.05] - 2025-02-05 + +### Fixed + +- Add missing hyphen to compound modifier in pageinfo partial for English translation + +## [2025.01.28] - 2025-01-28 + +### Added + +- Add Gemini capsule demo URL to README.md + +## [2024.11.25] - 2024-11-25 + +### Changed + +- Move css stylesheet to subdirectory + +## [2024.11.23] - 2024-11-23 + +### Changed + +- Improve conversion of ref numbers to superscripts + +## [2024.11.08.1] - 2024-11-08 + +### Fixed + +- Fix typo in README.md + +## [2024.11.08] - 2024-11-08 + +### Changed + +- Make hover/non-hover link colors equivalent +- Improve code readability + +### Added + +- Add distinct CSS styling to external links + +### Fixed + +- Disable html renderer in gemtext output format +- Disable html-specific features in gemtext output format +- Stop treating link titles as safe html + +## [2024.11.07] - 2024-11-07 + +### Changed + +- Transition to new config file naming convention +- Convert tabs to spaces + +### Added + +- Add time element to entry date and duration in HTML output format + +### Removed + +- Remove niche timestamp obfuscation privacy feature + +## [2024.08.16] - 2024-08-16 + +### Changed + +- Make author element optional in Atom feeds +- Make email subelement optional in author element + +### Added + +- Add support for site.Params.author, retain compatibility with site.Author + +### Fixed + +- Remove erroneous "index.gmi" suffix in gemtext Atom feeds +- Fix incorrect greedy italics/bold parsing in gemtext renderer + +## [2024.07.04] - 2024-07-04 ### Fixed - Remove extra whitespace accidentally introduced in v1.3.5 -## [1.3.6] - 2024-06-30 +## [2024.06.30] - 2024-06-30 ### Added @@ -16,37 +161,37 @@ - Fix incorrect file path truncation in gemtext renderer -## [1.3.5] - 2024-06-28 +## [2024.06.28] - 2024-06-28 ### Fixed - Add back missing `rel="noreferrer"` attribute to relative links for privacy -## [1.3.4] - 2024-06-18 +## [2024.06.18] - 2024-06-18 ### Fixed - Correct reference-style link index counting -## [1.3.3] - 2024-06-11 +## [2024.06.11] - 2024-06-11 ### Added - Make theme compatible with Hugo v0.114.0 or newer -## [1.3.2] - 2024-05-27 +## [2024.05.27] - 2024-05-27 ### Fixed - Add missing trailing forward slashes on links in html output format -## [1.3.1] - 2024-05-26 +## [2024.05.26] - 2024-05-26 ### Changed - Flatten CSS directory structure -## [1.3.0] - 2024-05-20 +## [2024.05.20] - 2024-05-20 ### Added @@ -56,13 +201,13 @@ - Fix incorrect (un)ordered list parsing in gemtext renderer -## [1.2.6] - 2024-05-02 +## [2024.05.02] - 2024-05-02 ### Added - Document unexpected behavior related to bolding and italics in gemtext renderer -## [1.2.5] - 2024-05-02 +## [2024.05.02] - 2024-05-02 ### Changed @@ -73,13 +218,13 @@ - Correct English i18n string -## [1.2.4] - 2024-02-19 +## [2024.02.19] - 2024-02-19 ### Removed - Remove Google Lighthouse score from README.md -## [1.2.3] - 2024-02-04 +## [2024.02.04] - 2024-02-04 ### Added @@ -90,31 +235,31 @@ - Fix some gemtext rendering rules not being applied - Fix incorrect parsing of unordered lists in gemtext renderer again -## [1.2.2] - 2024-01-01 +## [2024.01.01] - 2024-01-01 ### Fixed - Fix incorrect parsing of unordered lists in gemtext renderer -## [1.2.1] - 2024-01-01 +## [2024.01.01] - 2024-01-01 ### Added - Write new documentation conforming to Diátaxis -## [1.2.0] - 2023-12-31 +## [2023.12.31] - 2023-12-31 ### Added - Support Markdown's ordered lists in gemtext renderer -## [1.1.0] - 2023-12-31 +## [2023.12.29] - 2023-12-29 ### Added - Support Markdown's alternative heading syntax in gemtext renderer -## [1.0.10] - 2023-12-02 +## [2023.12.02] - 2023-12-02 ### Changed @@ -130,43 +275,43 @@ - Remove `rel="noreferrer"` from non-web links -## [1.0.9] - 2023-11-30 +## [2023.11.30] - 2023-11-30 ### Changed - Improve documentation -## [1.0.8] - 2023-11-03 +## [2023.11.03] - 2023-11-03 ### Changed - Replace link reference numbers with their superscripts -## [1.0.7] - 2023-10-15 +## [2023.10.15] - 2023-10-15 ### Changed - Convert all dates in output to UTC for privacy -## [1.0.6] - 2023-10-08 +## [2023.10.08] - 2023-10-08 ### Changed - Improve documentation -## [1.0.5] - 2023-09-28 +## [2023.09.28] - 2023-09-28 ### Added - Make browsers not request absent favicon -## [1.0.4] - 2023-09-16 +## [2023.09.16] - 2023-09-16 ### Added - Add link underlines for accessibility -## [1.0.3] - 2023-09-10 +## [2023.09.10] - 2023-09-10 ### Changed @@ -176,13 +321,13 @@ - Add brackets around reference-style link indexes -## [1.0.2] - 2023-09-02 +## [2023.09.02] - 2023-09-02 ### Added - Add back CSS rule removed in previous version -## [1.0.1] - 2023-08-30 +## [2023.08.30] - 2023-08-30 ### Fixed @@ -192,7 +337,7 @@ - Remove redundant CSS rule -## [1.0.0] - 2023-08-25 +## [2023.08.25] - 2023-08-25 ### Changed @@ -203,19 +348,19 @@ - Fix capsule and website whitespace - Fix crashing with absent page elements (entries, navlinks, etc.) -## [0.7.2] - 2023-08-10 +## [2023.08.10] - 2023-08-10 ### Fixed - Fix inline image scaling -## [0.7.1] - 2023-08-06 +## [2023.08.06] - 2023-08-06 ### Fixed - Fix incorrect printing of `pageinfo` tags in gemtext renderer -## [0.7.0] - 2023-08-02 +## [2023.08.02] - 2023-08-02 ### Changed @@ -230,56 +375,56 @@ - Correct minimum Hugo version -## [0.6.3] - 2023-07-04 +## [2023.07.04] - 2023-07-04 ### Fixed - Fix scrollbar covering preformatted text -## [0.6.2] - 2023-06-27 +## [2023.06.27.1] - 2023-06-27 ### Changed - Revert justifying text -## [0.6.1] - 2023-06-27 +## [2023.06.27] - 2023-06-27 ### Changed - Justify text -## [0.6.0] - 2023-06-01 +## [2023.06.01] - 2023-06-01 ### Changed - Improve CSS styling - Update documentation -## [0.5.6] - 2023-05-16 +## [2023.05.16] - 2023-05-16 ### Fixed - Fix whitespace bug in gemtext renderer -## [0.5.5] - 2023-05-11 +## [2023.05.11] - 2023-05-11 ### Changed - Mandate having a title for html output format -## [0.5.4] - 2023-05-09 +## [2023.05.09.2] - 2023-05-09 ### Changed - Replace hardcoded language `en` with `$.Site.Language` for html output format -## [0.5.3] - 2023-05-09 +## [2023.05.09.1] - 2023-05-09 ### Added - Add support for overriding the default CSS -## [0.5.2] - 2023-05-09 +## [2023.05.09] - 2023-05-09 ### Changed @@ -290,7 +435,7 @@ - Document gemtext renderer -## [0.5.1] - 2023-05-08 +## [2023.05.08] - 2023-05-08 ### Changed @@ -300,7 +445,7 @@ - Fix demo links being rendered as real links in documentation -## [0.5.0] - 2023-05-05 +## [2023.05.05] - 2023-05-05 ### Changed @@ -315,44 +460,44 @@ - Add support of `+` symbol as unordered list syntax in gemtext renderer - Document theme compatibility with gemtext -## [0.4.6] - 2023-04-09 +## [2023.04.09] - 2023-04-09 ### Changed - Improve page titles for html output format -## [0.4.5] - 2023-03-26 +## [2023.03.26] - 2023-03-26 ### Changed - Improve page style with non-breakable spaces in `pageinfo` for html output format -## [0.4.4] - 2023-03-16 +## [2023.03.16] - 2023-03-16 ### Fixed - Fix link parsing in gemtext renderer -## [0.4.3] - 2023-03-15 +## [2023.03.15] - 2023-03-15 ### Fixed - Fix blockquote paragraph margins in html output format -## [0.4.2] - 2023-03-12 +## [2023.03.12] - 2023-03-12 ### Fixed - Fix entry indexing logic in gemtext renderer -## [0.4.1] - 2023-02-25 +## [2023.02.25] - 2023-02-25 ### Changed - Remove trailing `index.gmi` from links - Reorganize layouts -## [0.4.0] - 2023-02-24 +## [2023.02.24] - 2023-02-24 ### Changes @@ -368,19 +513,19 @@ - Implement Atom feeds for taxonomies - Implement Atom feeds for terms -## [0.3.4] - 2023-02-15 +## [2023.02.15] - 2023-02-15 ### Fixed - Remove extra space above unordered lists in html output format -## [0.3.3] - 2023-02-05 +## [2023.02.05] - 2023-02-05 ### Changed - Improve bold and italics parsing in gemtext renderer again -## [0.3.2] - 2023-01-28 +## [2023.01.28] - 2023-01-28 ### Changed @@ -390,25 +535,25 @@ - Stop rendering the link emoji in inline links for html output format -## [0.3.1] - 2023-01-25 +## [2023.01.25] - 2023-01-25 ### Changed - Improve preformatted text parsing in gemtext renderer -## [0.3.0] - 2023-01-24 +## [2023.01.24] - 2023-01-24 ### Fixed - Rewrite chunking algorithm to prevent content overwriting bug in gemtext renderer -## [0.2.1] - 2023-01-23 +## [2023.01.23] - 2023-01-23 ### Fixed - Improve bold and italics parsing in gemtext renderer again -## [0.2.0] - 2023-01-22 +## [2023.01.22] - 2023-01-22 ### Changed @@ -419,7 +564,7 @@ - Implement chunking algorithm to avoid parsing preformatted text in gemtext renderer - Fix rendering of links, headings, and unordered lists at beginning of document in gemtext renderer -## [0.1.1] - 2023-01-21 +## [2023.01.21.1] - 2023-01-21 ### Changed @@ -430,64 +575,80 @@ - Fix whitespace after links in html output format -## [0.1.0] - 2023-01-21 +## [2023.01.21] - 2023-01-21 _First release._ -[1.3.7]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.7 -[1.3.6]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.6 -[1.3.5]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.5 -[1.3.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.4 -[1.3.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.3 -[1.3.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.2 -[1.3.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.1 -[1.3.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.3.0 -[1.2.6]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.6 -[1.2.5]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.5 -[1.2.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.4 -[1.2.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.3 -[1.2.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.2 -[1.2.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.1 -[1.2.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.2.0 -[1.1.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.1.0 -[1.0.10]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.10 -[1.0.9]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.9 -[1.0.8]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.8 -[1.0.7]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.7 -[1.0.6]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.6 -[1.0.5]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.5 -[1.0.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.4 -[1.0.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.3 -[1.0.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.2 -[1.0.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.1 -[1.0.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v1.0.0 -[0.7.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.7.2 -[0.7.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.7.1 -[0.7.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.7.0 -[0.6.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.6.3 -[0.6.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.6.2 -[0.6.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.6.1 -[0.6.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.6.0 -[0.5.6]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.6 -[0.5.5]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.5 -[0.5.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.4 -[0.5.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.3 -[0.5.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.2 -[0.5.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.1 -[0.5.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.5.0 -[0.4.6]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.6 -[0.4.5]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.5 -[0.4.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.4 -[0.4.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.3 -[0.4.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.2 -[0.4.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.1 -[0.4.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.4.0 -[0.3.4]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.3.4 -[0.3.3]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.3.3 -[0.3.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.3.2 -[0.3.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.3.1 -[0.3.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.3.0 -[0.2.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.2.1 -[0.2.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.2.0 -[0.1.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.1.1 -[0.1.0]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=v0.1.0 +[2025.09.07]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.09.07 +[2025.07.27.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.07.27.2 +[2025.07.27.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.07.27.1 +[2025.07.27]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.07.27 +[2025.07.24.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.07.24.1 +[2025.07.24]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.07.24 +[2025.02.06.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.02.06.1 +[2025.02.06]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.02.06 +[2025.02.05]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.02.05 +[2025.01.28]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2025.01.28 +[2024.11.25]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.11.25 +[2024.11.23]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.11.23 +[2024.11.08.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.11.08.1 +[2024.11.08]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.11.08 +[2024.11.07]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.11.07 +[2024.08.16]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.08.16 +[2024.07.04]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.07.24 +[2024.06.30]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.06.30 +[2024.06.28]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.06.28 +[2024.06.18]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.06.18 +[2024.06.11]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.06.11 +[2024.05.27]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.05.27 +[2024.05.26]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.05.26 +[2024.05.20]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.05.20 +[2024.05.02.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.05.02.1 +[2024.05.02]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.05.02 +[2024.02.19]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.02.19 +[2024.02.04]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.02.04 +[2024.01.01.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.01.01.1 +[2024.01.01]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2024.01.01 +[2023.12.31]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.12.31 +[2023.12.29]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.12.29 +[2023.12.02]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.12.02 +[2023.11.30]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.11.30 +[2023.11.03]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.11.03 +[2023.10.15]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.10.15 +[2023.10.08]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.10.08 +[2023.09.28]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.09.28 +[2023.09.16]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.09.16 +[2023.09.10]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.09.10 +[2023.09.02]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.09.02 +[2023.08.30]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.08.30 +[2023.08.25]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.08.25 +[2023.08.10]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.08.10 +[2023.08.06]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.08.06 +[2023.08.02]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.08.02 +[2023.07.04]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.07.04 +[2023.06.27.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.06.27.1 +[2023.06.27]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.06.27 +[2023.06.01]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.06.01 +[2023.05.16]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.16 +[2023.05.11]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.11 +[2023.05.09.2]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.09.2 +[2023.05.09.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.09.1 +[2023.05.09]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.09 +[2023.05.08]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.08 +[2023.05.05]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.05.05 +[2023.04.09]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.04.09 +[2023.03.26]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.03.26 +[2023.03.16]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.03.16 +[2023.03.15]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.03.15 +[2023.03.12]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.03.12 +[2023.02.25]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.02.25 +[2023.02.24]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.02.24 +[2023.02.15]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.02.15 +[2023.02.05]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.02.05 +[2023.01.28]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.01.28 +[2023.01.25]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.01.25 +[2023.01.24]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.01.24 +[2023.01.23]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2022.01.23 +[2023.01.22]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2022.01.22 +[2023.01.21.1]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.01.21.1 +[2023.01.21]: https://git.nicholasjohnson.ch/hugo-theme-journal/tag/?h=2023.01.21 @@ -4,7 +4,10 @@ Hugo Journal Theme is an accessible, no-JS, minimalist, high-contrast Hugo theme ## Demo -A live demo of the theme can be found at the following domain: [https://nicholasjohnson.ch](https://nicholasjohnson.ch) +A live demo of the theme can be found at the following URLs: + +* [gemini://nicholasjohnson.ch](gemini://nicholasjohnson.ch) +* [https://nicholasjohnson.ch](https://nicholasjohnson.ch) ## Features @@ -21,7 +24,7 @@ A live demo of the theme can be found at the following domain: [https://nicholas ## Documentation -The [gemtext compatibility reference guide](GEMTEXT-COMPATIBILITY-REFERENCE-GUIDE.md) documents the compatibility of Markdown features with gemtext as an output format in of this Hugo theme. The [gemtext compatibility rationale document](GEMTEXT-COMPATIBILITY-RATIONALE.md) explains the rationale behind the design decisions for the gemtext output format. +The [gemtext compatibility reference guide](GEMTEXT-COMPATIBILITY-REFERENCE-GUIDE.md) documents the compatibility of Markdown features with gemtext as an output format of this Hugo theme. The [gemtext compatibility explanation document](GEMTEXT-COMPATIBILITY-EXPLANATION.md) explains the rationale behind the design decisions for the gemtext output format. ## Get The Theme @@ -41,10 +44,6 @@ $ git submodule add https://git.nicholasjohnson.ch/hugo-theme-journal themes/jou To render the blog for Gemini and the Web, use separate configuration files. For guidance, look at [my journal repo](https://git.nicholasjohnson.ch/journal). -## Versioning - -This Hugo theme uses [Semantic Versioning 2.0.0](https://semver.org/). - ## License Hugo Journal Theme is licensed under [GPLv3 or later](LICENSE). diff --git a/archetypes/default.md b/archetypes/default.md index 0951f88..bb09fa7 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -3,7 +3,7 @@ title: "{{ replace .Name "-" " " | title }}" draft: true pageinfo: false makerefs: false -_build: +build: list: never --- diff --git a/archetypes/entry.md b/archetypes/entry.md index 32d6347..e4b95fc 100644 --- a/archetypes/entry.md +++ b/archetypes/entry.md @@ -1,6 +1,6 @@ --- title: "{{ replace .Name "-" " " | title }}" -date: {{ now.UTC.Format "2006-01-02T00:00:00Z" }} +date: {{ now.Format "2006-01-02T15:04:05-0700" }} draft: true --- diff --git a/assets/style.css b/assets/static/css/style.css index b6d506f..926be97 100644 --- a/assets/style.css +++ b/assets/static/css/style.css @@ -1,6 +1,6 @@ /* hugo-theme-journal Hugo theme for my journal - Copyright (C) 2022-2023 Nicholas Johnson + Copyright (C) 2022-2023, 2025 Nicholas Johnson This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,6 +17,7 @@ */ html { + background-color: #181A1B; font-size: 62.5%; } @@ -86,19 +87,33 @@ blockquote, ol, p, pre, ul, .highlight { margin-top: 1.0em; } +.base { + flex-grow: 1; +} + +/* remove extra space caused by Flexbox's lack of margin collapsing */ +article:last-child header p, +.main > :last-child { + margin-bottom: 0; +} + .body { background-color: black; + box-sizing: border-box; color: lightgray; + display: flex; + flex-direction: column; font-family: Arial, Helvetica, sans-serif; font-size: 1.8rem; + min-height: 100vh; line-height: 1.4; margin: 0 auto; padding: 1.4em; } -@media only screen and (min-width: 72ch) { +@media only screen and (min-width: calc(72ch + 2 * 1.4em)) { .body { - max-width: 72ch; + max-width: calc(72ch + 2 * 1.4em); } } @@ -115,12 +130,24 @@ blockquote, ol, p, pre, ul, .highlight { } .link { - color: #0091ea; text-underline-offset: 3px; } -.link:hover { - background-color: #004eff; +.link--internal { + color: #0091ea; +} + +.link--internal:hover { + background-color: #0091ea; + color: black; +} + +.link--external { + color: #9370DB; +} + +.link--external:hover { + background-color: #9370DB; color: black; } diff --git a/config/_default/config.toml b/config/_default/hugo.toml index e2e77ea..78f2292 100644 --- a/config/_default/config.toml +++ b/config/_default/hugo.toml @@ -10,9 +10,14 @@ baseName = "atom" [outputFormats.Gemini] mediaType = "text/gemini" + isPlainText = true # Disable HTML renderer + isHTML = false # Disable LiveReload, alias redirect, etc. + permalinkable = true + protocol = "gemini://" [outputFormats.Gemini_Atom] mediaType = "application/atom" baseName = "atom" + protocol = "gemini://" [markup] [markup.goldmark] diff --git a/i18n/en.toml b/i18n/en.toml index 7b9c38a..9f122c8 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -1,5 +1,5 @@ [readingTime] - other = "{{ .Count }} minute read" + other = "{{ .Count }}-minute read" [returnHome] other = "Return to homepage" diff --git a/layouts/404.html b/layouts/404.html index f3b9742..fffedc1 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -1,8 +1,8 @@ {{ define "main" -}} <nav> - <p>{{ emojify ":link:" | safeHTML }} <a class="link" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> </nav> -<main> +<main class="main"> <h1 id="404">{{ i18n "pageNotFound" }}</h1> </main> {{- end }} diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html deleted file mode 100644 index 934c0ef..0000000 --- a/layouts/_default/_markup/render-link.html +++ /dev/null @@ -1,2 +0,0 @@ -{{ $emoji := cond (and (not (.Page.Params.makerefs | default true)) (.Page.Params.showlinkemoji | default true)) (emojify ":link: ") "" -}} -{{ $emoji }}<a class="link" href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }} rel="noreferrer">{{ .Text | safeHTML }}</a>
\ No newline at end of file diff --git a/layouts/_default/single.gmi b/layouts/_default/single.gmi deleted file mode 100644 index 2064bdd..0000000 --- a/layouts/_default/single.gmi +++ /dev/null @@ -1,126 +0,0 @@ -{{ define "main" -}} -{{ $emoji := cond (.Page.Params.showlinkemoji | default true) (emojify ":link: ") "" -}} -=> {{ .Site.Home.RelPermalink | replaceRE `(?m)index.gmi$` "" }} {{ emojify ":link:" | safeHTML }} {{ i18n "returnHome" -}} - -{{ if (.Page.Params.pageinfo | default true) }} - -{{ partial "pageinfo.gmi" . -}} -{{ end }} - - -# {{ .Name | safeHTML }} - -{{ $content := chomp (.RawContent) -}} -{{ $scratch := newScratch -}} - -{{/* if content begins with a heading, add an extra newline */ -}} -{{ if (findRE `^#{1,6} ` $content 1) }} -{{ end -}} - -{{/* split text into chunks, with each chunk containing 3 parts: above, within, and below preformatted text */ -}} -{{/* the regex matching below the preformatted text matches exactly once in the entire text */ -}} -{{ $chunks := findRESubmatch `(?sm)(?:(.+?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.+$)` $content -}} - -{{ $ref_index := 0 -}} - -{{ range $chunks -}} - {{ $above_pre := index . 1 -}} - {{ $pre := index . 2 -}} - {{ $below_pre := index . 3 -}} - - {{/* mux regex matches above and below preformatted text for rendering (the matches are mutually exclusive) */ -}} - {{ $rendered_text := print $above_pre $below_pre -}} - - {{ if ($.Page.Params.makerefs | default true) -}} - - {{/* find all the links within a chunk */ -}} - {{ $chunk_refs := findRESubmatch `!?\[[\t ]*(.+?)[\t ]*\]\([\t ]*(.+?)(?:[\t ]+"(.+?)")?[\t ]*\)` $rendered_text -}} - - {{ range $chunk_refs -}} - {{ $ref_index = add $ref_index 1 -}} - {{ $chunk_ref := dict - "index" $ref_index - "text" (index . 1) - "link" (index . 2) - "title" (index . 3) - -}} - - {{ $scratch.Add "refs" (slice $chunk_ref) -}} - - {{ $ref_index := $chunk_ref.index -}} - {{ $ref_text := $chunk_ref.text -}} - - {{/* create superscript of $ref_index */ -}} - {{ $ref_index := replace $ref_index "0" "⁰" -}} - {{ $ref_index = replace $ref_index "1" "¹" -}} - {{ $ref_index = replace $ref_index "2" "²" -}} - {{ $ref_index = replace $ref_index "3" "³" -}} - {{ $ref_index = replace $ref_index "4" "⁴" -}} - {{ $ref_index = replace $ref_index "5" "⁵" -}} - {{ $ref_index = replace $ref_index "6" "⁶" -}} - {{ $ref_index = replace $ref_index "7" "⁷" -}} - {{ $ref_index = replace $ref_index "8" "⁸" -}} - {{ $ref_index = replace $ref_index "9" "⁹" -}} - - {{/* replace Markdown links with link text and their superscripted reference numbers */ -}} - {{ $rendered_text = replace $rendered_text (index . 0) (print $ref_text $ref_index) 1 -}} - - {{ end -}} - - {{ else -}} - - {{/* render all links directly */ -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^!?\[[\t ]*(.+?)[\t ]*\]\([\t ]*(.+?)(?:[\t ]+"(.+?)")?[\t ]*\)$` (print "=> $2 " $emoji "$1") -}} - - {{ end -}} - - {{/* trim extra heading symbols */ -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^####{1,3} ` "### " -}} - - {{/* convert Markdown alternative heading syntax to gemtext heading syntax */ -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^[\t ]*(\S.+?)[\t ]*\n\=+$` "# $1" -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^[\t ]*(\S.+?)[\t ]*\n\-+$` "## $1" -}} - - {{/* convert Markdown alternative unordered list syntax to gemtext unordered list syntax */ -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^[-+] ` "* " -}} - - {{/* convert Markdown ordered list items to gemtext unordered list items */ -}} - {{ $rendered_text = $rendered_text | replaceRE `(?m)^[1-9]\d*\.[\t ]+(.*?)[\t ]*$` "* $1" -}} - - {{/* remove bold and italics asterisk symbols */ -}} - {{/* note: this operation is performed in 3 steps to handle nested bold and italics */ -}} - {{/* note: this operation is performed last to avoid incorrectly rendering (un)ordered lists */ -}} - {{ $rendered_text = $rendered_text | replaceRE `\*{3}(\S(?:.*?\S)?)\*{3}` "$1" -}} - {{ $rendered_text = $rendered_text | replaceRE `\*{2}(\S(?:.*?\S)?)\*{2}` "$1" -}} - {{ $rendered_text = $rendered_text | replaceRE `\*{1}(\S(?:.*?\S)?)\*{1}` "$1" -}} - - {{ $rendered_text = $rendered_text | emojify -}} - - {{/* demux regex matches above and below preformatted text */ -}} - {{ if $above_pre -}} - {{ $rendered_text | safeHTML -}} - {{ $pre | safeHTML -}} - {{ else -}} - {{ $pre | safeHTML -}} - {{ $rendered_text | safeHTML -}} - {{ end -}} - -{{ end -}} - -{{ $refs := $scratch.Get "refs" -}} -{{ if and (.Page.Params.makerefs | default true) $refs }} - - -## {{ i18n "refs" }} -{{ range $refs -}} - {{ $ref_index := .index -}} - {{ $ref_text := .text -}} - {{ $ref_link := .link -}} - {{ $ref_title := .title -}} - - {{/* render referenced links */}} -{{ print "=> " $ref_link (emojify " :link: [") $ref_index "]: " (cond (ne (len $ref_title) 0) $ref_title $ref_text) | safeHTML -}} -{{ end -}} - -{{ end -}} -{{ end }} diff --git a/layouts/_default/_markup/render-image.html b/layouts/_markup/render-image.html index 590c9bf..590c9bf 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_markup/render-image.html diff --git a/layouts/_markup/render-link.html b/layouts/_markup/render-link.html new file mode 100644 index 0000000..8fb3c26 --- /dev/null +++ b/layouts/_markup/render-link.html @@ -0,0 +1,3 @@ +{{ $emoji := cond (and (not (.Page.Params.makerefs | default true)) (.Page.Params.showlinkemoji | default true)) (emojify ":link: ") "" -}} +{{ $isExternalLink := (urls.Parse .Destination).IsAbs -}} +{{ $emoji }}<a class="link {{ if $isExternalLink }}link--external{{ else }}link--internal{{ end }}" href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }} rel="{{ if $isExternalLink }}external {{ end }}noreferrer">{{ .Text }}</a>
\ No newline at end of file diff --git a/layouts/_partials/footer.gmi b/layouts/_partials/footer.gmi new file mode 100644 index 0000000..06b0678 --- /dev/null +++ b/layouts/_partials/footer.gmi @@ -0,0 +1 @@ +{{ replace $.Site.Copyright "{currentYear}" (now.Format "2006") }}
\ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/_partials/footer.html index 00194b2..5f8ffc6 100644 --- a/layouts/partials/footer.html +++ b/layouts/_partials/footer.html @@ -1,3 +1,3 @@ <footer class="footer"> - <p class="footer__text">{{ replace $.Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</p> + <p class="footer__text">{{ replace $.Site.Copyright "{currentYear}" (now.Format "2006") }}</p> </footer>
\ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/_partials/head.html index 8132ec8..8250e19 100644 --- a/layouts/partials/head.html +++ b/layouts/_partials/head.html @@ -13,7 +13,7 @@ <link rel="stylesheet" type="text/css" href="{{ relURL . }}"> {{- end -}} {{ else }} - <link rel="stylesheet" type="text/css" href="{{ (resources.Get "style.css").RelPermalink }}"> + <link rel="stylesheet" type="text/css" href="{{ (resources.Get "static/css/style.css").RelPermalink }}"> {{- end -}} {{ if (not (fileExists "static/favicon.ico")) }} <link rel="icon" href="data:,"> diff --git a/layouts/_partials/header.gmi b/layouts/_partials/header.gmi new file mode 100644 index 0000000..c70f84a --- /dev/null +++ b/layouts/_partials/header.gmi @@ -0,0 +1,3 @@ +```plaintext +{{ chomp (readFile "templates/logo.txt") }} +```
\ No newline at end of file diff --git a/layouts/partials/header.html b/layouts/_partials/header.html index d8ec881..d8ec881 100644 --- a/layouts/partials/header.html +++ b/layouts/_partials/header.html diff --git a/layouts/_partials/metadata.gmi b/layouts/_partials/metadata.gmi new file mode 100644 index 0000000..48d3db4 --- /dev/null +++ b/layouts/_partials/metadata.gmi @@ -0,0 +1,2 @@ +{{ partial "pageinfo.gmi" . }} +=> {{ .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 new file mode 100644 index 0000000..ed091b8 --- /dev/null +++ b/layouts/_partials/metadata.html @@ -0,0 +1,6 @@ +<article> + <header> + <p>{{ partial "pageinfo.html" . }}<br> + {{ emojify ":link:" }} <a class="link link--internal" href="{{ .RelPermalink }}" rel="noreferrer">{{ .Title }}</a></p> + </header> +</article>
\ No newline at end of file diff --git a/layouts/_partials/pageinfo.gmi b/layouts/_partials/pageinfo.gmi new file mode 100644 index 0000000..9993d93 --- /dev/null +++ b/layouts/_partials/pageinfo.gmi @@ -0,0 +1,18 @@ +{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}} + +{{ $nonBreakingPublishDate := .Page.PublishDate | time.Format $dateFormat -}} +{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate " " " " -}} +{{ $nonBreakingPublishDate = replace $nonBreakingPublishDate "-" "‑" -}} + +{{ $nonBreakingReadingTime := i18n "readingTime" .ReadingTime -}} +{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime " " " " -}} +{{ $nonBreakingReadingTime = replace $nonBreakingReadingTime "-" "‑" -}} + +{{ $nonBreakingTags := slice -}} +{{ range .Param (lower (i18n "tags")) -}} + {{ $nonBreakingTag := replace . " " " " -}} + {{ $nonBreakingTag = replace $nonBreakingTag "-" "‑" -}} + {{ $nonBreakingTags = $nonBreakingTags | append $nonBreakingTag -}} +{{ end -}} + +{{ emojify ":calendar:" }} {{ $nonBreakingPublishDate }} | {{ emojify ":stopwatch:" }} {{ $nonBreakingReadingTime }}{{ if $nonBreakingTags }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := $nonBreakingTags }}{{ if $key }}, {{ end }}{{ $val }}{{ end }}
\ No newline at end of file diff --git a/layouts/_partials/pageinfo.html b/layouts/_partials/pageinfo.html new file mode 100644 index 0000000..3ca8fe9 --- /dev/null +++ b/layouts/_partials/pageinfo.html @@ -0,0 +1,23 @@ +{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}} + +{{/* 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 "-" "‑" -}} + +{{ $breakingTags := .Param (lower (i18n "tags")) -}} +{{ $nonBreakingTags := slice -}} +{{ range $breakingTags -}} + {{/* user-defined tags are escaped pre-insertion so that HTML entities can be inserted */ -}} + {{ $nonBreakingTag := htmlEscape . -}} + {{ $nonBreakingTag = replace $nonBreakingTag " " " " -}} + {{ $nonBreakingTag = replace $nonBreakingTag "-" "‑" -}} + {{ $nonBreakingTags = $nonBreakingTags | append $nonBreakingTag -}} +{{ end -}} + +{{ emojify ":calendar:" }} <time {{ printf "datetime=%q" (.Page.PublishDate | time.Format "2006-01-02T15:04:05-0700") | safeHTMLAttr }}>{{ $nonBreakingPublishDate | safeHTML }}</time> | {{ emojify ":stopwatch:" }} <time datetime="PT{{ .ReadingTime }}M">{{ $nonBreakingReadingTime | safeHTML }}</time>{{ if $nonBreakingTags }} | {{ emojify ":label:" }} {{ end }}{{ range $key, $val := $nonBreakingTags }}{{ if $key }} {{ end }}<a class="link link--internal" href='{{ relLangURL (lower (i18n "tags")) }}/{{ index $breakingTags $key | urlize }}/' rel="noreferrer">{{ $val | safeHTML }}</a>{{ end }} diff --git a/layouts/_default/baseof.gmi b/layouts/baseof.gmi index 09cdbac..09cdbac 100644 --- a/layouts/_default/baseof.gmi +++ b/layouts/baseof.gmi diff --git a/layouts/_default/baseof.html b/layouts/baseof.html index a36bd49..fbe1fa1 100644 --- a/layouts/_default/baseof.html +++ b/layouts/baseof.html @@ -2,8 +2,10 @@ <html lang="{{ $.Site.Language }}"> {{ partial "head.html" . }} <body class="body"> - {{ partial "header.html" . }} - {{ block "main" . }}{{ end }} + <div class="base"> + {{ partial "header.html" . }} + {{ block "main" . }}{{ end }} + </div> {{ partial "footer.html" . }} </body> </html>
\ No newline at end of file diff --git a/layouts/index.atom.xml b/layouts/home.atom.xml index 6c3a111..c4f4eae 100644 --- a/layouts/index.atom.xml +++ b/layouts/home.atom.xml @@ -1,4 +1,3 @@ -{{/* Deprecate site.Author.name in favor of site.Params.author.name */}} {{- $authorName := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -8,14 +7,8 @@ {{- else }} {{- $authorName = . }} {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} {{- end }} -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} {{- $authorEmail := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -23,18 +16,13 @@ {{- $authorEmail = . }} {{- end }} {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} {{- end -}} {{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} <feed xmlns="http://www.w3.org/2005/Atom"> <id>{{ .Permalink }}</id> <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}atom.xml" rel="self" /> <link href="{{ .Permalink }}" rel="alternate" /> {{- with $authorName }} @@ -44,12 +32,12 @@ <email>{{ . }}</email>{{ end }} </author>{{ end }} <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Site.RegularPages }} <entry> <id>{{ .Permalink }}</id> <title type="html">{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}" /> <content type="html">{{ .Content | html }}</content> </entry>{{ end }} diff --git a/layouts/home.gemini_atom.xml b/layouts/home.gemini_atom.xml new file mode 100644 index 0000000..6189f83 --- /dev/null +++ b/layouts/home.gemini_atom.xml @@ -0,0 +1,43 @@ +{{- $authorName := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .name }} + {{- $authorName = . }} + {{- end }} + {{- else }} + {{- $authorName = . }} + {{- end }} +{{- end }} + +{{- $authorEmail := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .email }} + {{- $authorEmail = . }} + {{- end }} + {{- end }} +{{- end -}} + +{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Site.Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | replaceRE `index.gmi$` "atom.xml" | safeURL }}" rel="self" /> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + {{- with $authorName }} + <author> + <name>{{ . }}</name> + {{- with $authorEmail }} + <email>{{ . }}</email>{{ end }} + </author>{{ end }} + <generator>Hugo -- gohugo.io</generator> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> + <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Site.RegularPages }} + <entry> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + </entry>{{ end }} +</feed> diff --git a/layouts/index.gmi b/layouts/home.gmi index 05250fd..4ce3bf1 100644 --- a/layouts/index.gmi +++ b/layouts/home.gmi @@ -1,14 +1,14 @@ {{ define "main" -}} -# {{ .Site.Params.indexTitle | safeHTML }} +# {{ .Site.Params.indexTitle }} -{{ .Site.Params.indexIntro | safeHTML }} +{{ .Site.Params.indexIntro }} {{- if .Site.Menus.main }} ## {{ i18n "navLinks" }} {{ range .Site.Menus.main }} -=> {{ .URL }} {{ emojify ":link:" | safeHTML }} {{ .Name | safeHTML -}} +=> {{ .URL }} {{ emojify ":link:" }} {{ .Name -}} {{ end -}} {{ end -}} diff --git a/layouts/index.html b/layouts/home.html index 6f231df..cdf2d01 100644 --- a/layouts/index.html +++ b/layouts/home.html @@ -1,5 +1,5 @@ {{ define "main" -}} -<main> +<main class="main"> <h1>{{ .Site.Params.indexTitle }}</h1> <p>{{ .Site.Params.indexIntro }}</p> {{ if .Site.Menus.main -}} @@ -7,7 +7,7 @@ <nav> <ul class="list"> {{- range .Site.Menus.main }} - <li class="list__item">{{ emojify ":link:" | safeHTML }} <a class="link" href="{{ .URL }}" rel="noreferrer">{{ .Name }}</a></li> + <li class="list__item">{{ emojify ":link:" }} <a class="link link--internal" href="{{ .URL }}" rel="noreferrer">{{ .Name }}</a></li> {{- end }} </ul> </nav> diff --git a/layouts/index.gemini_atom.xml b/layouts/index.gemini_atom.xml deleted file mode 100644 index a6abebc..0000000 --- a/layouts/index.gemini_atom.xml +++ /dev/null @@ -1,55 +0,0 @@ -{{/* Deprecate site.Author.name in favor of site.Params.author.name */}} -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} -{{- end }} - -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} -{{- end -}} - -{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} -<feed xmlns="http://www.w3.org/2005/Atom"> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)/index.gmi$` "gemini://$1/atom.xml" | safeURL }}" rel="self" /> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - {{- with $authorName }} - <author> - <name>{{ . }}</name> - {{- with $authorEmail }} - <email>{{ . }}</email>{{ end }} - </author>{{ end }} - <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> - <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Site.RegularPages }} - <entry> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - </entry>{{ end }} -</feed> diff --git a/layouts/partials/footer.gmi b/layouts/partials/footer.gmi deleted file mode 100644 index 957c9d0..0000000 --- a/layouts/partials/footer.gmi +++ /dev/null @@ -1 +0,0 @@ -{{ replace $.Site.Copyright "{currentYear}" (now.UTC.Format "2006") | safeHTML }}
\ No newline at end of file diff --git a/layouts/partials/header.gmi b/layouts/partials/header.gmi deleted file mode 100644 index a7f87a9..0000000 --- a/layouts/partials/header.gmi +++ /dev/null @@ -1,3 +0,0 @@ -```plaintext -{{ chomp (readFile "templates/logo.txt") | safeHTML }} -```
\ No newline at end of file diff --git a/layouts/partials/metadata.gmi b/layouts/partials/metadata.gmi deleted file mode 100644 index a4bf636..0000000 --- a/layouts/partials/metadata.gmi +++ /dev/null @@ -1,2 +0,0 @@ -{{ partial "pageinfo.gmi" . }} -=> {{ .RelPermalink | replaceRE `(?m)index.gmi$` "" }} {{ emojify ":link:" | safeHTML }} {{ .Title | safeHTML }}
\ No newline at end of file diff --git a/layouts/partials/metadata.html b/layouts/partials/metadata.html deleted file mode 100644 index 47106e8..0000000 --- a/layouts/partials/metadata.html +++ /dev/null @@ -1,6 +0,0 @@ -<article> - <header> - <p>{{ partial "pageinfo.html" . }}<br> - {{ emojify ":link:" }} <a class="link" href="{{ .RelPermalink }}" rel="noreferrer">{{ .Title }}</a></p> - </header> -</article>
\ No newline at end of file diff --git a/layouts/partials/pageinfo.gmi b/layouts/partials/pageinfo.gmi deleted file mode 100644 index 951bdf4..0000000 --- a/layouts/partials/pageinfo.gmi +++ /dev/null @@ -1,2 +0,0 @@ -{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}} -{{ emojify ":calendar:" | safeHTML }} {{ .Page.PublishDate | time.Format $dateFormat | safeHTML }} | {{ emojify ":stopwatch:" | safeHTML }} {{ i18n "readingTime" .ReadingTime }}{{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" | safeHTML }} {{ 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 deleted file mode 100644 index ace8d18..0000000 --- a/layouts/partials/pageinfo.html +++ /dev/null @@ -1,2 +0,0 @@ -{{ $dateFormat := .Site.Params.dateFormat | default ":date_long" -}} -{{ emojify ":calendar:" | safeHTML }} {{ .Page.PublishDate | time.Format $dateFormat | safeHTML }} | {{ emojify ":stopwatch:" | safeHTML }} {{ i18n "readingTime" .ReadingTime | safeHTML }}{{ if (.Param (lower (i18n "tags"))) }} | {{ emojify ":label:" | safeHTML }} {{ end }}{{ range $key, $val := (.Param (lower (i18n "tags"))) }}{{ if $key }}, {{ end }}<a class="link" href='{{ relLangURL (lower (i18n "tags")) }}/{{ . | urlize }}/' rel="noreferrer">{{ $val }}</a>{{ end }}
\ No newline at end of file diff --git a/layouts/single.gmi b/layouts/single.gmi new file mode 100644 index 0000000..1502830 --- /dev/null +++ b/layouts/single.gmi @@ -0,0 +1,132 @@ +{{ define "main" -}} +{{ $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) }} + +{{ partial "pageinfo.gmi" . -}} +{{ end }} + + +# {{ .Name }} + +{{ $content := chomp (.RawContent) -}} +{{ $scratch := newScratch -}} + +{{/* if content begins with a heading, add an extra newline */ -}} +{{ if (findRE `^#{1,6} ` $content 1) }} +{{ end -}} + +{{/* split text into chunks, with each chunk containing 3 parts: above, within, and below preformatted text */ -}} +{{/* the regex matching below the preformatted text matches exactly once in the entire text */ -}} +{{ $chunks := findRESubmatch `(?sm)(?:(.+?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.+$)` $content -}} + +{{ $ref_index := 0 -}} + +{{ range $chunks -}} + {{ $above_pre := index . 1 -}} + {{ $pre := index . 2 -}} + {{ $below_pre := index . 3 -}} + + {{/* mux regex matches above and below preformatted text for rendering (the matches are mutually exclusive) */ -}} + {{ $rendered_text := print $above_pre $below_pre -}} + + {{ if ($.Page.Params.makerefs | default true) -}} + + {{/* find all the links within a chunk */ -}} + {{ $chunk_refs := findRESubmatch `!?\[[\t ]*(.+?)[\t ]*\]\([\t ]*(.+?)(?:[\t ]+"(.+?)")?[\t ]*\)` $rendered_text -}} + + {{ range $chunk_refs -}} + {{ $ref_index = add $ref_index 1 -}} + {{ $chunk_ref := dict + "index" $ref_index + "text" (index . 1) + "link" (index . 2) + "title" (index . 3) + -}} + + {{ $scratch.Add "refs" (slice $chunk_ref) -}} + + {{ $ref_index := $chunk_ref.index -}} + {{ $ref_text := $chunk_ref.text -}} + + {{/* create superscript of $ref_index */ -}} + {{ $superscript_map := dict + "0" "⁰" + "1" "¹" + "2" "²" + "3" "³" + "4" "⁴" + "5" "⁵" + "6" "⁶" + "7" "⁷" + "8" "⁸" + "9" "⁹" + -}} + {{ $ref_superscript := "" -}} + {{ range (split $ref_index "") -}} + {{ $ref_superscript = print $ref_superscript (index $superscript_map .) -}} + {{ end -}} + + {{/* replace Markdown links with link text and their superscripted reference numbers */ -}} + {{ $rendered_text = replace $rendered_text (index . 0) (print $ref_text $ref_superscript) 1 -}} + + {{ end -}} + + {{ else -}} + + {{/* render all links directly */ -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^!?\[[\t ]*(.+?)[\t ]*\]\([\t ]*(.+?)(?:[\t ]+"(.+?)")?[\t ]*\)$` (print "=> $2 " $emoji "$1") -}} + + {{ end -}} + + {{/* trim extra heading symbols */ -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^####{1,3} ` "### " -}} + + {{/* convert Markdown alternative heading syntax to gemtext heading syntax */ -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^[\t ]*(\S.+?)[\t ]*\n\=+$` "# $1" -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^[\t ]*(\S.+?)[\t ]*\n\-+$` "## $1" -}} + + {{/* convert Markdown alternative unordered list syntax to gemtext unordered list syntax */ -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^[-+] ` "* " -}} + + {{/* convert Markdown ordered list items to gemtext unordered list items */ -}} + {{ $rendered_text = $rendered_text | replaceRE `(?m)^[1-9]\d*\.[\t ]+(.*?)[\t ]*$` "* $1" -}} + + {{/* remove bold and italics asterisk symbols */ -}} + {{/* note: this operation is performed in 3 steps to handle nested bold and italics */ -}} + {{/* note: this operation is performed last to avoid incorrectly rendering (un)ordered lists */ -}} + {{ $rendered_text = $rendered_text | replaceRE `\*{3}(\S(?:.*?\S)?)\*{3}` "$1" -}} + {{ $rendered_text = $rendered_text | replaceRE `\*{2}(\S(?:.*?\S)?)\*{2}` "$1" -}} + {{ $rendered_text = $rendered_text | replaceRE `\*{1}(\S(?:.*?\S)?)\*{1}` "$1" -}} + + {{ $rendered_text = $rendered_text | emojify -}} + + {{/* demux regex matches above and below preformatted text */ -}} + {{ if $above_pre -}} + {{ $rendered_text -}} + {{ $pre -}} + {{ else -}} + {{ $pre -}} + {{ $rendered_text -}} + {{ end -}} + +{{ end -}} + +{{ $refs := $scratch.Get "refs" -}} +{{ if and (.Page.Params.makerefs | default true) $refs }} + + +## {{ i18n "refs" }} +{{ range $refs -}} + {{ $ref_index := .index -}} + {{ $ref_text := .text -}} + {{ $ref_link := .link -}} + {{ $ref_title := .title -}} + + {{/* render referenced links */}} +{{ print "=> " $ref_link (emojify " :link: [") $ref_index "]: " (cond (ne (len $ref_title) 0) $ref_title $ref_text) -}} +{{ end -}} + +{{ end -}} +{{ end }} diff --git a/layouts/_default/single.html b/layouts/single.html index cd80256..67029c0 100644 --- a/layouts/_default/single.html +++ b/layouts/single.html @@ -1,11 +1,11 @@ {{ define "main" -}} <nav> - <p>{{ emojify ":link:" | safeHTML }} <a class="link" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> </nav> {{- if (.Page.Params.pageinfo | default true) }} <p>{{ partial "pageinfo.html" . }}</p> {{- end }} -<main> +<main class="main"> <h1 id="{{ .File.TranslationBaseName }}">{{ .Name }}</h1> {{ chomp (.Content) }} </main> diff --git a/layouts/taxonomy/taxonomy.atom.xml b/layouts/taxonomy.atom.xml index 9ceeb79..1364f27 100644 --- a/layouts/taxonomy/taxonomy.atom.xml +++ b/layouts/taxonomy.atom.xml @@ -1,4 +1,3 @@ -{{/* Deprecate site.Author.name in favor of site.Params.author.name */}} {{- $authorName := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -8,14 +7,8 @@ {{- else }} {{- $authorName = . }} {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} {{- end }} -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} {{- $authorEmail := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -23,18 +16,13 @@ {{- $authorEmail = . }} {{- end }} {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} {{- end -}} {{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} <feed xmlns="http://www.w3.org/2005/Atom"> <id>{{ .Permalink }}</id> <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}atom.xml" rel="self" /> <link href="{{ .Permalink }}" rel="alternate" /> {{- with $authorName }} @@ -44,12 +32,12 @@ <email>{{ . }}</email>{{ end }} </author>{{ end }} <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} <entry> <id>{{ .Permalink }}</id> <title type="html">{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}" /> <content type="html">{{ .Content | html }}</content> </entry>{{ end }} diff --git a/layouts/taxonomy.gemini_atom.xml b/layouts/taxonomy.gemini_atom.xml new file mode 100644 index 0000000..d8ab06e --- /dev/null +++ b/layouts/taxonomy.gemini_atom.xml @@ -0,0 +1,43 @@ +{{- $authorName := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .name }} + {{- $authorName = . }} + {{- end }} + {{- else }} + {{- $authorName = . }} + {{- end }} +{{- end }} + +{{- $authorEmail := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .email }} + {{- $authorEmail = . }} + {{- end }} + {{- end }} +{{- end -}} + +{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Site.Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | replaceRE `index.gmi$` "atom.xml" | safeURL }}" rel="self" /> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + {{- with $authorName }} + <author> + <name>{{ . }}</name> + {{- with $authorEmail }} + <email>{{ . }}</email>{{ end }} + </author>{{ end }} + <generator>Hugo -- gohugo.io</generator> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> + <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} + <entry> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + </entry>{{ end }} +</feed> diff --git a/layouts/taxonomy.gmi b/layouts/taxonomy.gmi new file mode 100644 index 0000000..9c2a9f0 --- /dev/null +++ b/layouts/taxonomy.gmi @@ -0,0 +1,17 @@ +{{ define "main" -}} +=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }} + + +# {{ .Type | humanize }} + + +## {{ i18n "feeds" }} + +=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }} + + +## {{ i18n "list" }} +{{ range .Data.Pages }} +=> {{ .RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ .Title -}} +{{ end -}} +{{ end }}
\ No newline at end of file diff --git a/layouts/taxonomy.html b/layouts/taxonomy.html new file mode 100644 index 0000000..2002ed3 --- /dev/null +++ b/layouts/taxonomy.html @@ -0,0 +1,16 @@ +{{ define "main" -}} +<nav> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> +</nav> +<main class="main"> + <h1>{{ .Type | humanize }}</h1> + <h2>{{ i18n "feeds" }}</h2> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ print .RelPermalink "atom.xml" }}" rel="noreferrer">{{ i18n "atomFeed" }}</a></p> + <h2>{{ i18n "list" }}</h2> + <ul class="list"> + {{- range .Data.Pages }} + <li class="list__item">{{ emojify ":link:" }} <a class="link link--internal" href="{{ .RelPermalink }}" rel="noreferrer">{{ .Title }}</a></li> + {{- end }} + </ul> +</main> +{{- end }}
\ No newline at end of file diff --git a/layouts/taxonomy/taxonomy.gemini_atom.xml b/layouts/taxonomy/taxonomy.gemini_atom.xml deleted file mode 100644 index 5eadc00..0000000 --- a/layouts/taxonomy/taxonomy.gemini_atom.xml +++ /dev/null @@ -1,55 +0,0 @@ -{{/* Deprecate site.Author.name in favor of site.Params.author.name */}} -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} -{{- end }} - -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} -{{- end -}} - -{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} -<feed xmlns="http://www.w3.org/2005/Atom"> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)/index.gmi$` "gemini://$1/atom.xml" | safeURL }}" rel="self" /> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - {{- with $authorName }} - <author> - <name>{{ . }}</name> - {{- with $authorEmail }} - <email>{{ . }}</email>{{ end }} - </author>{{ end }} - <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> - <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} - <entry> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - </entry>{{ end }} -</feed> diff --git a/layouts/taxonomy/taxonomy.gmi b/layouts/taxonomy/taxonomy.gmi deleted file mode 100644 index 873571d..0000000 --- a/layouts/taxonomy/taxonomy.gmi +++ /dev/null @@ -1,17 +0,0 @@ -{{ define "main" -}} -=> {{ .Site.Home.RelPermalink | replaceRE `(?m)index.gmi$` "" }} {{ emojify ":link:" | safeHTML }} {{ i18n "returnHome" }} - - -# {{ .Type | humanize }} - - -## {{ i18n "feeds" }} - -=> {{ .RelPermalink | replaceRE `(?m)index.gmi$` "atom.xml" | safeHTML }} {{ emojify ":link:" | safeHTML }} {{ i18n "atomFeed" }} - - -## {{ i18n "list" }} -{{ range .Data.Pages }} -=> {{ .RelPermalink | replaceRE `(?m)index.gmi$` "" }} {{ emojify ":link:" | safeHTML }} {{ .Title | safeHTML -}} -{{ end -}} -{{ end }}
\ No newline at end of file diff --git a/layouts/taxonomy/taxonomy.html b/layouts/taxonomy/taxonomy.html deleted file mode 100644 index 51e00a3..0000000 --- a/layouts/taxonomy/taxonomy.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ define "main" -}} -<nav> - <p>{{ emojify ":link:" | safeHTML }} <a class="link" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> -</nav> -<main> - <h1>{{ .Type | humanize }}</h1> - <h2>{{ i18n "feeds" }}</h2> - <p><a class="link" href="{{ print .RelPermalink "atom.xml" }}" rel="noreferrer"> {{ emojify ":link:" | safeHTML }} {{ i18n "atomFeed" }}</a></p> - <h2>{{ i18n "list" }}</h2> - <ul class="list"> - {{- range .Data.Pages }} - <li class="list__item">{{ emojify ":link:" }} <a class="link" href="{{ .RelPermalink }}" rel="noreferrer">{{ .Title }}</a></li> - {{- end }} - </ul> -</main> -{{- end }}
\ No newline at end of file diff --git a/layouts/term/term.atom.xml b/layouts/term.atom.xml index 9ceeb79..1364f27 100644 --- a/layouts/term/term.atom.xml +++ b/layouts/term.atom.xml @@ -1,4 +1,3 @@ -{{/* Deprecate site.Author.name in favor of site.Params.author.name */}} {{- $authorName := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -8,14 +7,8 @@ {{- else }} {{- $authorName = . }} {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} {{- end }} -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} {{- $authorEmail := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} @@ -23,18 +16,13 @@ {{- $authorEmail = . }} {{- end }} {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} {{- end -}} {{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} <feed xmlns="http://www.w3.org/2005/Atom"> <id>{{ .Permalink }}</id> <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}atom.xml" rel="self" /> <link href="{{ .Permalink }}" rel="alternate" /> {{- with $authorName }} @@ -44,12 +32,12 @@ <email>{{ . }}</email>{{ end }} </author>{{ end }} <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} <entry> <id>{{ .Permalink }}</id> <title type="html">{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> <link href="{{ .Permalink }}" /> <content type="html">{{ .Content | html }}</content> </entry>{{ end }} diff --git a/layouts/term.gemini_atom.xml b/layouts/term.gemini_atom.xml new file mode 100644 index 0000000..d8ab06e --- /dev/null +++ b/layouts/term.gemini_atom.xml @@ -0,0 +1,43 @@ +{{- $authorName := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .name }} + {{- $authorName = . }} + {{- end }} + {{- else }} + {{- $authorName = . }} + {{- end }} +{{- end }} + +{{- $authorEmail := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .email }} + {{- $authorEmail = . }} + {{- end }} + {{- end }} +{{- end -}} + +{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Site.Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | replaceRE `index.gmi$` "atom.xml" | safeURL }}" rel="self" /> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + {{- with $authorName }} + <author> + <name>{{ . }}</name> + {{- with $authorEmail }} + <email>{{ . }}</email>{{ end }} + </author>{{ end }} + <generator>Hugo -- gohugo.io</generator> + <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights> + <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} + <entry> + <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id> + <title>{{ .Title }}</title> + <updated>{{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated> + <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" /> + </entry>{{ end }} +</feed> diff --git a/layouts/term.gmi b/layouts/term.gmi new file mode 100644 index 0000000..5d7f7b1 --- /dev/null +++ b/layouts/term.gmi @@ -0,0 +1,19 @@ +{{ define "main" -}} +=> {{ .Site.Home.RelPermalink | strings.TrimSuffix "index.gmi" }} {{ emojify ":link:" }} {{ i18n "returnHome" }} + + +# {{ .Type | singularize | humanize }} "{{ .Title }}" + + +## {{ i18n "feeds" }} + +=> {{ .RelPermalink | replaceRE `index.gmi$` "atom.xml" }} {{ emojify ":link:" }} {{ i18n "atomFeed" }} + + +## {{ i18n "journalEntries" -}} + +{{ range .Data.Pages.ByPublishDate.Reverse }} + +{{ partial "metadata.gmi" . -}} +{{ end -}} +{{ end }}
\ No newline at end of file diff --git a/layouts/term.html b/layouts/term.html new file mode 100644 index 0000000..3870c69 --- /dev/null +++ b/layouts/term.html @@ -0,0 +1,14 @@ +{{ define "main" -}} +<nav> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> +</nav> +<main class="main"> + <h1>{{ .Type | singularize | humanize }} "{{ .Title }}"</h1> + <h2>{{ i18n "feeds" }}</h2> + <p>{{ emojify ":link:" }} <a class="link link--internal" href="{{ print .RelPermalink "atom.xml" }}" rel="noreferrer">{{ i18n "atomFeed" }}</a></p> + <h2>{{ i18n "journalEntries" }}</h2> + {{- range .Data.Pages.ByPublishDate.Reverse }} + {{ partial "metadata.html" . -}} + {{ end }} +</main> +{{- end }}
\ No newline at end of file diff --git a/layouts/term/term.gemini_atom.xml b/layouts/term/term.gemini_atom.xml deleted file mode 100644 index e02d2fe..0000000 --- a/layouts/term/term.gemini_atom.xml +++ /dev/null @@ -1,55 +0,0 @@ -{{/*Deprecate site.Author.name in favor of site.Params.author.name */}} -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} -{{- end }} - -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} -{{- end -}} - -{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }} -<feed xmlns="http://www.w3.org/2005/Atom"> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Site.Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)/index.gmi$` "gemini://$1/atom.xml" | safeURL }}" rel="self" /> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - {{- with $authorName }} - <author> - <name>{{ . }}</name> - {{- with $authorEmail }} - <email>{{ . }}</email>{{ end }} - </author>{{ end }} - <generator>Hugo -- gohugo.io</generator> - <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.UTC.Format "2006") }}</rights> - <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }} - <entry> - <id>{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" }}</id> - <title>{{ .Title }}</title> - <updated>{{ .Date.UTC.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated> - <link href="{{ .Permalink | replaceRE `^https://(.*)index.gmi$` "gemini://$1" | safeURL }}" rel="alternate" /> - </entry>{{ end }} -</feed> diff --git a/layouts/term/term.gmi b/layouts/term/term.gmi deleted file mode 100644 index 8d6158f..0000000 --- a/layouts/term/term.gmi +++ /dev/null @@ -1,19 +0,0 @@ -{{ define "main" -}} -=> {{ .Site.Home.RelPermalink | replaceRE `(?m)index.gmi$` "" }} {{ emojify ":link:" | safeHTML }} {{ i18n "returnHome" }} - - -# {{ .Type | singularize | humanize | safeHTML }} "{{ .Title | safeHTML }}" - - -## {{ i18n "feeds" }} - -=> {{ .RelPermalink | replaceRE `(?m)index.gmi$` "atom.xml" | safeHTML }} {{ emojify ":link:" | safeHTML }} {{ i18n "atomFeed" }} - - -## {{ i18n "journalEntries" -}} - -{{ range .Data.Pages.ByPublishDate.Reverse }} - -{{ partial "metadata.gmi" . -}} -{{ end -}} -{{ end }}
\ No newline at end of file diff --git a/layouts/term/term.html b/layouts/term/term.html deleted file mode 100644 index fa89acf..0000000 --- a/layouts/term/term.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" -}} -<nav> - <p>{{ emojify ":link:" | safeHTML }} <a class="link" href="{{ .Site.Home.RelPermalink }}" rel="noreferrer">{{ i18n "returnHome" }}</a></p> -</nav> -<main> - <h1>{{ .Type | singularize | humanize }} "{{ .Title }}"</h1> - <h2>{{ i18n "feeds" }}</h2> - <p><a class="link" href="{{ print .RelPermalink "atom.xml" }}" rel="noreferrer"> {{ emojify ":link:" | safeHTML }} {{ i18n "atomFeed" }}</a></p> - <h2>{{ i18n "journalEntries" }}</h2> - {{- range .Data.Pages.ByPublishDate.Reverse }} - {{ partial "metadata.html" . -}} - {{ end }} -</main> -{{- end }}
\ No newline at end of file @@ -4,7 +4,7 @@ licenselink = "https://www.gnu.org/licenses/gpl-3.0.en.html" description = "Minimalist journaling theme." tags = ["journal"] features = ["nojs", "minimal", "lightweight", "contrast"] -min_version = "0.110.0" +min_version = "0.146.0" [author] name = "Nicholas Johnson" |