git: 2a6bab6bd4 - main - documentation/themes: Refactor for Hugo 0.123.X compatibility
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 23 Mar 2024 17:58:14 UTC
The branch main has been updated by dbaio: URL: https://cgit.FreeBSD.org/doc/commit/?id=2a6bab6bd4a181f1c4cdd2c166a811899aea7776 commit 2a6bab6bd4a181f1c4cdd2c166a811899aea7776 Author: Danilo G. Baio <dbaio@FreeBSD.org> AuthorDate: 2024-03-09 13:12:57 +0000 Commit: Danilo G. Baio <dbaio@FreeBSD.org> CommitDate: 2024-03-23 17:50:54 +0000 documentation/themes: Refactor for Hugo 0.123.X compatibility - Simplify path extraction logic in menu partial to match only with the main document/book, enhancing maintainability and future Hugo compatibility. - Optimize articles and books directory listings by leveraging Hugo's built-in .Sections to fetch content, replacing manual slice construction and sorting logic. This approach streamlines the code and is more idiomatic with recent Hugo versions. - These changes are part of necessary adjustments for the upgrade to Hugo version 0.123.X, ensuring our theme's compatibility and taking advantage of Hugo's latest features and performance improvements. Reviewed by: fernape Differential Revision: https://reviews.freebsd.org/D44284 --- .../themes/beastie/layouts/partials/menu.html | 10 ++++++- .../shortcodes/list-articles-directories.html | 32 +++------------------ .../layouts/shortcodes/list-books-directories.html | 33 ++++------------------ 3 files changed, 18 insertions(+), 57 deletions(-) diff --git a/documentation/themes/beastie/layouts/partials/menu.html b/documentation/themes/beastie/layouts/partials/menu.html index 1b3ddf3b7d..e189abad53 100644 --- a/documentation/themes/beastie/layouts/partials/menu.html +++ b/documentation/themes/beastie/layouts/partials/menu.html @@ -1,4 +1,12 @@ -{{ with .Site.GetPage .Params.path }} +{{/* always extract the first part of the path to match it only with the main document/book. */}} +{{ $path := "" }} +{{ $regex := `^(\/[^\/]+\/[^\/]+)` }} +{{ $matches := findRE $regex .Params.path }} +{{ if gt (len $matches) 0 }} + {{ $path = index $matches 0 }} +{{ end }} + +{{ with .Site.GetPage $path }} <ul> {{ range .Pages }} <li> diff --git a/documentation/themes/beastie/layouts/shortcodes/list-articles-directories.html b/documentation/themes/beastie/layouts/shortcodes/list-articles-directories.html index 843300d4aa..33eab8f495 100644 --- a/documentation/themes/beastie/layouts/shortcodes/list-articles-directories.html +++ b/documentation/themes/beastie/layouts/shortcodes/list-articles-directories.html @@ -1,14 +1,3 @@ -{{ $articles := slice}} - -{{ range where .Site.Pages "Section" "articles" }} - {{ with .File }} - {{ $subDirsNumer := .File.Path | strings.Count "/" }} - {{ if eq $subDirsNumer 2 }} - {{ $articles = $articles | append (dict "page" . "path" .File.Path) }} - {{ end }} - {{ end }} -{{ end }} - {{ partial "global-search.html" . }} <h1>{{ i18n "articles" }}</h1> @@ -17,25 +6,12 @@ <hr class="line"/> -{{ $articles := slice}} - -{{ range where .Site.Pages "Section" "articles" }} - {{ $subDirsNumer := .File.Path | strings.Count "/" }} - {{ if eq $subDirsNumer 2 }} - {{ $articles = $articles | append (dict "page" . "path" .File.Path) }} - {{ end }} -{{ end }} - <ul class="documents-list"> -{{ range sort $articles "weight" "path" }} - {{ if in .path "_index.adoc" }} - {{ $articlePath := replaceRE "/_index.adoc" "" .path }} - {{ $articlePath = replaceRE "articles/" "" $articlePath }} - {{ $articleName := replaceRE "articles/" "" $articlePath }} +{{ $articles := .Site.GetPage "section" "articles" }} +{{ range $articles.Sections }} <li> - <a href="{{ $articlePath }}"><strong>{{ .page.Title }}</strong></a> - <p>{{ .page.Params.description }}</p> + <a href="{{ .Permalink }}"><strong>{{ .Title }}</strong></a> + <p>{{ .Params.description }}</p> </li> - {{ end }} {{ end }} </ul> diff --git a/documentation/themes/beastie/layouts/shortcodes/list-books-directories.html b/documentation/themes/beastie/layouts/shortcodes/list-books-directories.html index 10df5da34c..d98353f942 100644 --- a/documentation/themes/beastie/layouts/shortcodes/list-books-directories.html +++ b/documentation/themes/beastie/layouts/shortcodes/list-books-directories.html @@ -1,14 +1,3 @@ -{{ $books := slice}} - -{{ range where .Site.Pages "Section" "books" }} - {{ with .File }} - {{ $subDirsNumer := .File.Path | strings.Count "/" }} - {{ if eq $subDirsNumer 2 }} - {{ $books = $books | append (dict "page" . "path" .File.Path) }} - {{ end }} - {{ end }} -{{ end }} - {{ partial "global-search.html" . }} <h1>{{ i18n "books" }}</h1> @@ -17,25 +6,13 @@ <hr class="line"/> -{{ $books := slice}} - -{{ range where .Site.Pages "Section" "books" }} - {{ $subDirsNumer := .File.Path | strings.Count "/" }} - {{ if eq $subDirsNumer 2 }} - {{ $books = $books | append (dict "page" . "path" .File.Path) }} - {{ end }} -{{ end }} - <ul class="documents-list"> -{{ range sort $books "bookOrder" "path" }} - {{ if in .path "_index.adoc" }} - {{ $bookPath := replaceRE "/_index.adoc" "" .path }} - {{ $bookPath = replaceRE "books/" "" $bookPath }} - {{ $articleName := replaceRE "books/" "" $bookPath }} + +{{ $books := .Site.GetPage "section" "books" }} +{{ range $books.Sections }} <li> - <a href="{{ $bookPath }}"><strong>{{ .page.Title }}</strong></a> - <p>{{ .page.Params.description }}</p> + <a href="{{ .Permalink }}"><strong>{{ .Title }}</strong></a> + <p>{{ .Params.description }}</p> </li> - {{ end }} {{ end }} </ul>