<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_Hugo</id>
	<title>Списки страниц Hugo - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_Hugo"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_Hugo&amp;action=history"/>
	<updated>2026-10-12T10:40:51Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_Hugo&amp;diff=621&amp;oldid=prev</id>
		<title>Romych: /* Подсветка текущей страницы в навигации */</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BA%D0%B8_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_Hugo&amp;diff=621&amp;oldid=prev"/>
		<updated>2021-12-22T13:38:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Подсветка текущей страницы в навигации&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;←[[Hugo]]&lt;br /&gt;
&lt;br /&gt;
== Список страниц определенного типа ==&lt;br /&gt;
&lt;br /&gt;
Выведем на главной странице блок с 5 последними страницами из секции &amp;lt;code&amp;gt;portfolio&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавьте в  файл &amp;lt;code&amp;gt;layouts/index.html&amp;lt;/code&amp;gt; следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range first 5 (where .Data.Pages &amp;quot;Type&amp;quot; &amp;quot;portfolio&amp;quot;) }}&lt;br /&gt;
  {{ .Render &amp;quot;summary&amp;quot;}}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь создайте файл &amp;lt;code&amp;gt;layouts/_default/summary.html&amp;lt;/code&amp;gt; с таким кодом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;post-preview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;&amp;lt;h2 class=&amp;quot;post-title&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/h2&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;h3 class=&amp;quot;post-subtitle&amp;quot;&amp;gt;{{ .Description }}&amp;lt;/h3&amp;gt;&lt;br /&gt;
  {{ partial &amp;quot;categories.html&amp;quot; .}}&amp;lt;br&amp;gt;&lt;br /&gt;
  {{ partial &amp;quot;tags.html&amp;quot; .}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте три файла с кодом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;layouts/partials/categories.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Params.categories }}&lt;br /&gt;
  &amp;lt;a href=&amp;quot;/category/{{ urlize . }}&amp;quot; &amp;gt;{{ title . }}&amp;lt;/a&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;layouts/partials/tags.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Params.tags }}&lt;br /&gt;
  &amp;lt;a href=&amp;quot;/tag/{{ urlize . }}&amp;quot; &amp;gt;{{ title . }}&amp;lt;/a&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;layouts/partials/years.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Params.years }}&lt;br /&gt;
  &amp;lt;a href=&amp;quot;/years/{{ urlize . }}&amp;quot; &amp;gt;{{ title . }}&amp;lt;/a&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы блок работал, нужно, чтобы в директории &amp;lt;code&amp;gt;content/portfolio&amp;lt;/code&amp;gt; были файлы &amp;lt;code&amp;gt;.md&amp;lt;/code&amp;gt; с такими полями в заголовке:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
title: Литературный музей Владимира Даля&lt;br /&gt;
description: Официальный cайт музея, расположенного в Луганске.&lt;br /&gt;
tags:&lt;br /&gt;
- Drupal&lt;br /&gt;
categories:&lt;br /&gt;
- Site&lt;br /&gt;
- Culture&lt;br /&gt;
years:&lt;br /&gt;
- 2010&lt;br /&gt;
---&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сортировка страниц ==&lt;br /&gt;
&lt;br /&gt;
=== Стандартные сортировки ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Weight -&amp;gt; Date (default)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Data.Pages }}&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Weight -&amp;gt; Date&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Data.Pages.ByWeight }}&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Data.Pages.ByDate }}&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Аналогично добавляются сортировки по стандартным параметрам:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PublishDate&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ExpiryDate&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lastmod&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Length&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;LinkTitle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Обратная сортировка ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reverse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Data.Pages.ByDate.Reverse }}&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Сортировка определенного типа страниц ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range (where .Site.Pages &amp;quot;Section&amp;quot; &amp;quot;portfolio&amp;quot;).ByDate.Reverse }}&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ .Permalink }}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cортировка по произвольному параметру ===&lt;br /&gt;
&lt;br /&gt;
Добавим в страницы параметр &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
order: 0&lt;br /&gt;
---&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будем считать значение по умолчанию 0, а чем больше, тем выше в результатах сортировки будет находиться страница.&lt;br /&gt;
&lt;br /&gt;
Выведем все страницы с сортировкой от большего значения &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt; к меньшему:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
{{ range sort .Data.Pages &amp;quot;Params.order&amp;quot; &amp;quot;desc&amp;quot; }}&lt;br /&gt;
  {{ .Render &amp;quot;summary&amp;quot;}}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;lt;code&amp;gt;&amp;quot;desc&amp;quot;&amp;lt;/code&amp;gt; нужен для инвертирования сортировки — потому что иначе сверху будут материалы с наименьшим значением &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Универсальный блок со списком страниц текущего раздела и разными сортировками ===&lt;br /&gt;
&lt;br /&gt;
Допустим, есть блок &amp;lt;code&amp;gt;partials/block_section_pages.html&amp;lt;/code&amp;gt;, в котором выводится список страниц текущей Section.&lt;br /&gt;
Нужно в нем настроить, чтобы в разных Section список сортировался по-разному:&lt;br /&gt;
&lt;br /&gt;
* по алфавиту (&amp;lt;code&amp;gt;Title&amp;lt;/code&amp;gt;):&lt;br /&gt;
** slovar&lt;br /&gt;
* по весу (&amp;lt;code&amp;gt;Weight&amp;lt;/code&amp;gt;):&lt;br /&gt;
** about&lt;br /&gt;
** how-to&lt;br /&gt;
** rules&lt;br /&gt;
* по дате (&amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt;):&lt;br /&gt;
** portfolio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ if .Section }}&lt;br /&gt;
  {{ $section_info := .Site.GetPage &amp;quot;section&amp;quot; .Section }}&lt;br /&gt;
  &amp;lt;h4&amp;gt;&amp;lt;a href=&amp;quot;/{{ .Section }}/&amp;quot;&amp;gt;{{ $section_info.Title }}&amp;lt;/a&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;
  {{ $sort_by_field_map := (dict &amp;quot;slovar&amp;quot; &amp;quot;Title&amp;quot; &amp;quot;about&amp;quot; &amp;quot;Weight&amp;quot; &amp;quot;how-to&amp;quot; &amp;quot;Weight&amp;quot; &amp;quot;rules&amp;quot; &amp;quot;Weight&amp;quot; &amp;quot;portfolio&amp;quot; &amp;quot;Date&amp;quot; )}}&lt;br /&gt;
  {{ $sort_by_field := index $sort_by_field_map .Section | default &amp;quot;Weight&amp;quot; }}&lt;br /&gt;
  {{ range sort (where .Site.Pages &amp;quot;Section&amp;quot; .Section) $sort_by_field &amp;quot;asc&amp;quot; }}&lt;br /&gt;
    {{ if .IsPage }}&lt;br /&gt;
      &amp;lt;a {{ if eq ($.RelPermalink) .URL}} active{{ end }}&amp;quot; href=&amp;quot;{{.URL}}&amp;quot;&amp;gt;{{ .Title }}&amp;lt;/a&amp;gt;&lt;br /&gt;
    {{ end }}&lt;br /&gt;
  {{ end }}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Список страниц с определенными параметрами ==&lt;br /&gt;
&lt;br /&gt;
Усложним задачу: выведем только страницы, у которых &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt; больше 0 и у которых параметр &amp;lt;code&amp;gt;to_title&amp;lt;/code&amp;gt; содержит &amp;quot;yes&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
{{ range sort .Data.Pages &amp;quot;Params.order&amp;quot; &amp;quot;desc&amp;quot; }}&lt;br /&gt;
  {{ if eq .Params.to_title &amp;quot;yes&amp;quot; }}&lt;br /&gt;
    {{ if gt .Params.order &amp;quot;0&amp;quot;}}&lt;br /&gt;
      {{ .Render &amp;quot;summary&amp;quot;}}&lt;br /&gt;
  {{ end }}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вариант с ограничением на вывод только первых 5 результатов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
{{ range first 5 (where (sort .Data.Pages &amp;quot;Params.order&amp;quot; &amp;quot;desc&amp;quot;) &amp;quot;.Params.to_title&amp;quot; &amp;quot;yes&amp;quot;) }}&lt;br /&gt;
  {{ if gt .Params.order &amp;quot;0&amp;quot;}}&lt;br /&gt;
    {{ .Render &amp;quot;summary&amp;quot; }}&lt;br /&gt;
  {{ end }}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Список страниц в шаблоне &amp;lt;code&amp;gt;layouts/SECTION/single.html&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Список страниц раздела &amp;lt;code&amp;gt;about&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range  where .Site.Pages &amp;quot;Section&amp;quot; &amp;quot;about&amp;quot; }}&lt;br /&gt;
  {{ .Render &amp;quot;summary&amp;quot; }}&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ссылка на главную страницу раздела:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;{{.Site.BaseURL}}{{.Section}}/&amp;quot;&amp;gt;{{.Section}}&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Hugo]]&lt;br /&gt;
&lt;br /&gt;
== Подсветка текущей страницы в навигации ==&lt;br /&gt;
&lt;br /&gt;
Используем шаблон:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;{{ if eq ($.RelPermalink) .URL}} class=&amp;quot;active&amp;quot;{{ end }}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример для меню:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{ range .Site.Menus.menu_name }}&lt;br /&gt;
  &amp;lt;li{{ if eq ($.RelPermalink) .URL}} class=&amp;quot;active&amp;quot;{{ end }}&amp;gt;&amp;lt;a href=&amp;quot;{{.URL}}&amp;quot;&amp;gt;{{ .Name }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
{{ end }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
См. также: &lt;br /&gt;
&lt;br /&gt;
* https://gohugo.io/functions/ismenucurrent/&lt;br /&gt;
* https://gohugo.io/templates/menu-templates/&lt;/div&gt;</summary>
		<author><name>Romych</name></author>
	</entry>
</feed>