Технічно технічний блог

Деякі експеременти, щось з програмування, щось із пізнання та дійсност

08 May 2022

Додаємо дату публікації та дату останньої зміни до своїх дописів у Hugo

published: May 8, 2022, updated: August 16, 2024; 14:07

Цей блог пишеться на Hugo з використанням теми ink-free. Додав відображення дати публікації допису й дати останньої зміни допису. Посилання на використанні матеріали внизу.

В налаштуваннях сайту у файлі config.toml визначаємо звідки і як формуватиметься дата останніх змін. Це означає, що є доступні такі можливості, як

  • створити т.зв. ручний режим запису дати останньої зміни, це коли у файлах налаштувань теми та макету (layout) ми вставляємо код, що відслідковує зміни
  • довіритись Git , що відслідковує зміни у файлах, при цьому, звісно, репозиторій гіт повинен розміщуватись в кореневій папці сайту

Наш вибір - гіт.

У config.toml прописуємо::

1
2
3
4
5
6
enableGitInfo = true
[frontmatter]
  date = ["date", "publishDate", "lastmod"]
  lastmod = [":git", "lastmod", "date", "publishDate"]
  publishDate = ["publishDate", "date"]
  expiryDate = ["expiryDate"]

, де черговість визначення дати змін вказанно у перемінній lastmod, яку використовує Хюго для відображення дати змін. enableGitInfo - це те, що забезпечуватиме відслідковування дати зміни допису.

Далі у файлі archetypes/post.md вказуємо:

1
2
3
4
5
6
7
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
publishdate: {{ now.Format "2006-01-02 15:04" }}
lastmod: {{ now.Format "2006-01-02 15:04" }}
draft: true
---

Формат дати вказано з урахуванням часу аби в шаблоні файлів дописів додати дату та час останніх змін.

Усі макети, шаблони (templates, layouts) копіюємо локально із папки нашої теми, зокрема:

1
2
3
mkdir layouts/_default
cp themes/ink-free/layouts/_default/single.html layouts/_default/
cp themes/ink-free/layouts/index.html layouts/

Змінюємо, додаємо:

1
2
3
4
5
6
7
8
9
vim layouts/_default/single.html

# додаємо поле перед вмістом

#...
					<span><b>published:</b> <u>{{ .PublishDate.Format "January 2, 2006" }}</u>{{ if ne .PublishDate .Lastmod }}, <b><i>updated:</i></b> <i>{{ .Lastmod.Format "January 2, 2006; 15:04" }}</i>{{ end }}</span>
				</div>
				{{ .Content }}
#...

І звичайно робимо git add .; git commit -am "super cool commit",і voilà, дата змін відображається в дописах, якщо зроблено зміни, очевидно )

Використано:

Next time, we'll talk about "10 Reasons why gcc SHOULD be re-written in JavaScript - You won't believe #8!"