#14 Modyfikacje layout i theme Hugo PaperMod
Dodałem Archiwa i Categorie do szablonu
Modyfikacja layout categories i archiwa
Moje główne kategorie
- Tech News
- Coding Corner
- Design Hub
Oznaczam post jako Design Hub
Taksonomie to zdefiniowane przez użytkownika grupowane treści. Są one sposobem klasyfikacji i organizacji treści na podstawie logicznych relacji. Na przykład, na stronie internetowej o filmach, możesz mieć taksonomie dla Aktorów, Reżyserów, Studiów, Gatunków, Lat i Nagród.
Każda taksonomia ma Terminy, które są kluczami w ramach taksonomii. Na przykład, w taksonomii Aktorów, nazwa każdego aktora byłaby terminem.
Każdy termin ma Wartości, które są elementami treści przypisanymi do terminu. Na przykład, w taksonomii Aktorów, filmy, w których wystąpił każdy aktor, byłyby wartościami dla terminu tego aktora.
Hugo automatycznie tworzy taksonomie dla tagów i kategorii. Możesz to zobaczyć na przykład na stronie Kategorie można również zdefiniować niestandardowe taksonomie w pliku konfiguracyjnym swojej strony hugo.toml.
Możesz przypisać treść do taksonomii w metadanych treści. Na przykład, aby przypisać wpis na blogu do kategorii “Development” i serii “Go Web Dev”, należy umieścić kategorie = [‘Development’] oraz series = [‘Go Web Dev’] w metadanych wpisu.
Możesz dodać niestandardowe metadane do terminów taksonomii, tworząc stronę dla terminu i dodając metadane w metadanych przedniej części.
Dostarczony wcześniej plik układu categories.html służy do generowania strony z listą kategorii. Ta strona wyświetla wszystkie kategorie używane na Twojej stronie, a dla każdej kategorii dostarcza link do strony wyświetlającej wszystkie wpisy w tej kategorii. Linia {{ .Data.Terms.Alphabetical }} to miejsce, gdzie Hugo iteruje po wszystkich kategoriach w porządku alfabetycznym.
Linki do stron dodane do Stopki
Dodałem do stopki Categories
Stworzenie Series
Dodatkowo do categori tagów dodałem series. Przejdź i zobacz dodatkową funkcjonalność Taxonometrii Hugo. Categories Archives
Jak zrobić archives i categories w Hugo
Trzeba założyć strony w katalogu content. Trzeba pamiętać że nie są to zwykłe pages lub post i powinny być poza tymi folderami w głównym folderze content poniżej front-matters.
- Plik categories.md
---
title: "Categories from here"
layout: "categories"
url: "/categories/"
summary: categories
---
- Plik archives.md
---
title: "Archive"
layout: "archives"
url: "/archives/"
summary: archives
---
Oba pliki są tylko z front-matters - treść jest generowana dynamicznie dodatkowo w głównym pliku config calej applikacji hugo.toml należy dodać params
[taxonomies]
tag = "tags"
category = "categories"
series = "series"
W zależności jeśli chcemy umieścić linki do tych stron w menu to należy dopisać do menu odpowiednie params. W moim przypadku zmodyfikowałem layout footer.html
- Plik footer.html
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a> |
<a href="/pages/sitemap" rel="noopener" target="_blank">Sitemap</a> |
<a href="/archives/" rel="noopener" target="_blank">Archives</a> |
<a href="/categories/" rel="noopener" target="_blank">Categories</a>
</span>
Pliki szablonów - dla archives szablon był przygotowany a dla categories.html trzeba stworzyć plik layouts_default\categories.html ( zwróć uwagę że front-matters wskazuje na szablon layout: “categories” )
- Plik szablonu categories.html ( Do sprawdzenia dodawanie / customizowanie dodatkowego css. )
{{ define "main" }}
<div class="container">
<h1>Categories</h1>
{{ range $key, $value := .Site.Taxonomies.categories }}
<a href="{{ "categories/" | relLangURL }}{{ $key | urlize }}">{{ $key }}</a> ({{ len $value }})
{{ end }}
<h2 style="margin-top: 2rem;">Series</h2>
{{ range $key, $value := .Site.Taxonomies.series }}
<a href="{{ "series/" | relLangURL }}{{ $key | urlize }}">{{ $key }}</a> ({{ len $value }})
{{ end }}
<h2 style="margin-top: 2rem;">Tags</h2>
{{ range $key, $value := .Site.Taxonomies.tags }}
<a href="{{ "tags/" | relLangURL }}{{ $key | urlize }}" style="margin-left: 0.25rem; margin-right: 0.25rem;">{{ $key }}</a> ({{ len $value }})
{{ end }}
</div>
{{ end }}
I wszystko gotowe.