HUGO

  • Новости
  • Документация
  • Темы
  • Витрина
  • Сообщество
  • GitHub
  • Telegram
Star

Что на этой странице

  • Что такое таксономия?
    • Определения
  • Пример таксономии: веб-сайт фильмов
    • Организация по классификации фильмов
  • Значения по умолчанию для таксономии Hugo
    • Назначения по умолчанию
  • Настройка таксономии
    • Пример: Добавление настраиваемой таксономии под названием “series”
    • Пример: Удаление таксономий по умолчанию
  • Добавить таксономии к контенту
    • Пример: Front Matter с таксономиями
  • Порядок Таксономии
    • Пример: weight таксономии
  • Добавить пользовательские метаданные в таксономию или термин
CONTENT MANAGEMENT

Таксономии

Hugo включает поддержку пользовательских таксономий.

Что такое таксономия?

Hugo включает поддержку определяемых пользователем групп контента, называемых таксономиями. Таксономии - это классификации логических отношений между контентом.

Определения

Taxonomy
категоризация, которая может использоваться для классификации контента
Term
ключ в таксономии
Value
часть содержания, присвоенная термину

Пример таксономии: веб-сайт фильмов

Предположим, Вы создаете сайт о фильмах. Вы можете включить следующие таксономии:

  • Actors
  • Directors
  • Studios
  • Genre
  • Year
  • Awards

Затем в каждом из фильмов вы должны указать термины для каждой из этих таксономий (т.е., в front matter каждого файла с содержанием фильма). Исходя из этих условий, Хьюго будет автоматически создавать страницы для каждого Актера, Режиссера, Студии, Жанра, Года и Премии, в каждом из которых будут перечислены все Фильмы, соответствующие конкретному Актеру, Режиссеру, Студии, Жанру, Году и Награде.

Организация по классификации фильмов

Чтобы продолжить пример сайта с фильмами, следующее демонстрирует отношения контента с точки зрения таксономии:

Actor                    <- Taxonomy
    Bruce Willis         <- Term
        The Sixth Sense  <- Value
        Unbreakable      <- Value
        Moonrise Kingdom <- Value
    Samuel L. Jackson    <- Term
        Unbreakable      <- Value
        The Avengers     <- Value
        xXx              <- Value

С точки зрения контента отношения выглядят иначе, хотя используемые данные и метки одинаковы:

Unbreakable                 <- Value
    Actors                  <- Taxonomy
        Bruce Willis        <- Term
        Samuel L. Jackson   <- Term
    Director                <- Taxonomy
        M. Night Shyamalan  <- Term
    ...
Moonrise Kingdom            <- Value
    Actors                  <- Taxonomy
        Bruce Willis        <- Term
        Bill Murray         <- Term
    Director                <- Taxonomy
        Wes Anderson        <- Term
    ...

Значения по умолчанию для таксономии Hugo

Hugo изначально поддерживает таксономии.

Не добавляя ни одной строчки в Ваш файл конфигурации сайта, Hugo автоматически создаст таксономии для тегов tags и категорий categories. Это будет то же самое, что вручную настройка ваших таксономий, как показано ниже:

     
taxonomies:
  category: categories
  tag: tags
[taxonomies]
  category = "categories"
  tag = "tags"
{
   "taxonomies": {
      "category": "categories",
      "tag": "tags"
   }
}

Если Вы не хотите, чтобы Hugo создавал какие-либо таксономии, установите для параметра disableKinds в Вашем конфигурации сайта следующее:

     
disableKinds:
- taxonomy
- term
disableKinds = ["taxonomy", "term"]
{
   "disableKinds": [
      "taxonomy",
      "term"
   ]
}

Мы исправили ранее запутанные типы страниц, используемые для таксономий (см. Список ниже), чтобы они соответствовали терминам, используемым, когда мы говорим о таксономиях. Мы были осторожны, чтобы избежать поломки сайта, и Вы должны получить ОШИБКУ в консоли, если Вам нужно настроить раздел disableKinds.

Kind Description Example
home The landing page for the home page /index.html
page The landing page for a given page my-post page (/posts/my-post/index.html)
section The landing page of a given section posts section (/posts/index.html)
taxonomy The landing page for a taxonomy tags taxonomy (/tags/index.html)
term The landing page for one taxonomy’s term term awesome in tags taxonomy (/tags/awesome/index.html)

Назначения по умолчанию

Когда используются таксономии — и предоставляются шаблоны таксономии, Hugo автоматически создает как страницу со списком всех терминов таксономии, так и отдельные страницы со списками контента, связанного с каждым термином. Например, таксономия categories, объявленная в Вашей конфигурации и используемая в Вашем информационном фронте, создаст следующие страницы:

  • Одна страница в example.com/categories/, на которой перечислены все термины в таксономии
  • Индивидуальные страницы списка таксономии (например, /categories/development/) для каждого из терминов, которые показывают список всех страниц, отмеченных как часть этой таксономии в front matter

Настройка таксономии

Пользовательские таксономии, отличные от по умолчанию, должны быть определены в Вашей конфигурации сайта, прежде чем их можно будет использовать на всем сайте. Для каждой таксономии необходимо указать метки множественного и единственного числа. Например, singular key = "plural value" для TOML и singular key: "plural value" для YAML.

Пример: Добавление настраиваемой таксономии под названием “series”

При добавлении пользовательских таксономий Вам необходимо также добавить таксономии по умолчанию, если Вы хотите их сохранить.

     
taxonomies:
  category: categories
  series: series
  tag: tags
[taxonomies]
  category = "categories"
  series = "series"
  tag = "tags"
{
   "taxonomies": {
      "category": "categories",
      "series": "series",
      "tag": "tags"
   }
}

Пример: Удаление таксономий по умолчанию

Если Вы хотите иметь только стандартную таксономию tags и удалить таксономию categories для Вашего сайта, Вы можете сделать это, изменив значение taxonomies в Вашей конфигурации сайта.

     
taxonomies:
  tag: tags
[taxonomies]
  tag = "tags"
{
   "taxonomies": {
      "tag": "tags"
   }
}

Если Вы хотите полностью отключить все таксономии, смотрите использование disableKinds в Значения по умолчанию для таксономии Hugo.

Вы можете добавить содержание и главный вопрос к своему списку таксономии и страницам терминов таксономии. Смотрите организацию содержимого для получения дополнительной информации о том, как добавить _index.md для этой цели.

Как и обычные страницы, список таксономии постоянные ссылки настраивается, а постоянные ссылки на страницу терминов таксономии - нет.

Параметр конфигурации preserveTaxonomyNames был удален в Hugo 0.55.

Теперь Вы можете использовать .Page.Title в соответствующем узле таксономии, чтобы получить исходное значение.

Добавить таксономии к контенту

Как только таксономия определена на уровне сайта, ей можно назначить любой фрагмент контента, независимо от типа контента или раздела контента.

Присвоение содержания таксономии выполняется в front matter. Просто создайте переменную с множественным именем таксономии и назначьте все термины, которые Вы хотите применить к экземпляру типа контента.

Если Вам нужна возможность быстро создавать файлы содержимого с предварительно настроенными таксономиями или терминами, прочтите документацию на архетипах Хьюго.

Пример: Front Matter с таксономиями

     
categories:
- Development
project_url: https://github.com/gohugoio/hugo
series:
- Go Web Dev
slug: hugo
tags:
- Development
- Go
- fast
- Blogging
title: 'Hugo: A fast and flexible static site generator'
categories = ["Development"]
project_url = "https://github.com/gohugoio/hugo"
series = ["Go Web Dev"]
slug = "hugo"
tags = ["Development", "Go", "fast", "Blogging"]
title = "Hugo: A fast and flexible static site generator"
{
   "categories": [
      "Development"
   ],
   "project_url": "https://github.com/gohugoio/hugo",
   "series": [
      "Go Web Dev"
   ],
   "slug": "hugo",
   "tags": [
      "Development",
      "Go",
      "fast",
      "Blogging"
   ],
   "title": "Hugo: A fast and flexible static site generator"
}

Порядок Таксономии

Файл содержимого может назначать вес для каждой связанной с ним таксономии. Таксономический вес может использоваться для сортировки или упорядочивания содержимого в шаблонах списков таксономии и объявляется в front matter файла содержимого. Таксономический вес объявляется по соглашению taxonomyname_weight.

В следующих примерах TOML и YAML показан фрагмент контента с весом 22, который можно использовать для упорядочивания при рендеринге страниц, присвоенных значениям «a», «b» и «c» таксономии tags. Ему также был присвоен вес 44 при рендеринге страницы категории «d».

Пример: weight таксономии

     
categories:
- d
categories_weight: 44
tags:
- a
- b
- c
tags_weight: 22
title: foo
categories = ["d"]
categories_weight = 44
tags = ["a", "b", "c"]
tags_weight = 22
title = "foo"
{
   "categories": [
      "d"
   ],
   "categories_weight": 44,
   "tags": [
      "a",
      "b",
      "c"
   ],
   "tags_weight": 22,
   "title": "foo"
}

Используя таксономический вес, один и тот же фрагмент контента может появляться в разных позициях в разных таксономиях.

В настоящее время таксономии поддерживают только по умолчанию weight => date упорядочивание содержимого списка. Для получения дополнительной информации смотрите документацию по шаблонам таксономии.

Добавить пользовательские метаданные в таксономию или термин

Если Вам нужно добавить пользовательские метаданные в термины таксономии, Вам нужно будет создать страницу для этого термина в /content/<TAXONOMY>/<TERM>/_index.md и добавить свои метаданные в нее. Продолжая наш пример «Актеры», предположим, Вы хотите добавить ссылку на страницу Википедии для каждого актера. Ваши страницы условий будут примерно такими:

/content/actors/bruce-willis/_index.md

---
title: "Bruce Willis"
wikipedia: "https://en.wikipedia.org/wiki/Bruce_Willis"
---

Смотрите также

  • Taxonomy Templates
  • Lists of Content in Hugo
  • Taxonomy Variables
  • Архетипы
  • Front Matter
  • О Хьюго
    • Обзор
    • Модель безопасности Хьюго
    • Hugo и GDPR
    • Что такое Хьюго
    • Функции Хьюго
    • Преимущества статики
    • Лицензия
  • С чего начать
    • Обзор начала работы
    • Быстрый старт
    • Установка Хьюго
    • Основы использования
    • Структура каталогов
    • Настройка
    • Внешние ресурсы обучения
  • Модули Хьюго
    • Обзор модулей Hugo
    • Настройка модулей
    • Использование модулей Hugo
    • Компоненты темы
  • Управление контентом
    • Обзор управления контентом
    • Организация
    • Пакеты страниц
    • Форматы контента
    • Front Matter
    • Page Resources
    • Параметры сборки
    • Обработка изображений
    • Шорткоды
    • Связанный контент
    • Разделы
    • Типы контента
    • Архетипы
    • Таксономии
    • Содержание
    • Ссылки и перекрестные ссылки
    • Управление URL-адресами
    • Меню
    • Статические файлы
    • Комментарии
    • Многоязычный и i18n
    • Подсветка синтаксиса
  • Templates
    • Templates Overview
    • Introduction
    • Template Lookup Order
    • Custom Output Formats
    • Base Templates and Blocks
    • List Page Templates
    • Homepage Template
    • Section Templates
    • Taxonomy Templates
    • Single Page Templates
    • Content View Templates
    • Data Templates
    • Partial Templates
    • Shortcode Templates
    • Local File Templates
    • 404 Page
    • Menu Templates
    • Pagination
    • RSS Templates
    • Sitemap Template
    • Robots.txt
    • Internal Templates
    • Alternative Templating
    • Template Debugging
  • Functions
    • Functions Quick Reference
    • .AddDate
    • .Format
    • .Get
    • .GetPage
    • .HasMenuCurrent
    • .IsMenuCurrent
    • .Param
    • .Render
    • .RenderString
    • .Scratch
    • .Unix
    • absLangURL
    • absURL
    • after
    • anchorize
    • append
    • apply
    • base64
    • chomp
    • complement
    • cond
    • countrunes
    • countwords
    • dateFormat
    • default
    • delimit
    • dict
    • echoParam
    • emojify
    • eq
    • errorf and warnf
    • fileExists
    • findRE
    • first
    • float
    • ge
    • getenv
    • group
    • gt
    • hasPrefix
    • highlight
    • hmac
    • htmlEscape
    • htmlUnescape
    • hugo
    • humanize
    • i18n
    • Image Functions
    • in
    • index
    • int
    • intersect
    • isset
    • jsonify
    • lang.Merge
    • lang.NumFmt
    • last
    • le
    • len
    • lower
    • lt
    • markdownify
    • Math
    • md5
    • merge
    • ne
    • now
    • os.Stat
    • partialCached
    • path.Base
    • path.Dir
    • path.Ext
    • path.Join
    • path.Split
    • plainify
    • pluralize
    • print
    • printf
    • println
    • querify
    • range
    • readDir
    • readFile
    • ref
    • reflect.IsMap
    • reflect.IsSlice
    • relLangURL
    • relref
    • relURL
    • replace
    • replaceRE
    • safeCSS
    • safeHTML
    • safeHTMLAttr
    • safeJS
    • safeURL
    • seq
    • sha
    • shuffle
    • singularize
    • slice
    • slicestr
    • sort
    • split
    • string
    • strings.Count
    • strings.HasSuffix
    • strings.Repeat
    • strings.RuneCount
    • strings.TrimLeft
    • strings.TrimPrefix
    • strings.TrimRight
    • strings.TrimSuffix
    • substr
    • symdiff
    • templates.Exists
    • time
    • title
    • transform.Unmarshal
    • trim
    • truncate
    • union
    • uniq
    • upper
    • urlize
    • urls.Parse
    • where
    • with
  • Variables
    • Variables Overview
    • Site Variables
    • Page Variables
    • Shortcode Variables
    • Pages Methods
    • Taxonomy Variables
    • File Variables
    • Menu Entry Properties
    • Hugo Variables
    • Git Variables
    • Sitemap Variables
  • Hugo Pipes
    • Hugo Pipes Overview
    • Hugo Pipes Introduction
    • SASS / SCSS
    • PostProcess
    • PostCSS
    • JavaScript Building
    • Babel
    • Asset minification
    • Asset bundling
    • Fingerprinting and SRI
    • Resource from Template
    • Resource from String
  • CLI
  • Troubleshooting
    • Troubleshoot
    • FAQ
    • Build Performance
  • Tools
    • Developer Tools Overview
    • Migrations
    • Starter Kits
    • Frontends
    • Editor Plug-ins
    • Search
    • Other Projects
  • Hosting & Deployment
    • Hosting & Deployment Overview
    • Hugo Deploy
    • Host-Agnostic Deploys with Nanobox
    • Host on AWS Amplify
    • Host on Netlify
    • Host on Render
    • Host on Firebase
    • Host on GitHub
    • Host on GitLab
    • Hosting on KeyCDN
    • Host on Bitbucket
    • Deployment with Wercker
    • Deployment with Rsync
  • Contribute
    • Contribute to Hugo
    • Development
    • Documentation
    • Themes
  • Maintenance
“Таксономии” последнее обновление: December 28, 2020: Перевод части content-management (295a8fcfc)
Улучшить эту страницу
Авторы Hugo
Hugo Logo
  • Подать вопрос
  • Получить помощь
  • Обсудить исходный код
  • @GoHugoIO
  • @spf13
  • @bepsays
 
 

Спонсоры Hugo

Logo for Forestry.io
Logo for Linode
Logo for eSolia
 

Авторские права на логотипы Hugo принадлежат © Steve Francia 2013–2021.

Hugo Gopher основан на оригинальной работе Renée French.

  • Новости
  • Документация
  • Темы
  • Витрина
  • Сообщество
  • GitHub
  • Telegram
  • О Хьюго
  • С чего начать
  • Модули Хьюго
  • Управление контентом
  • Templates
  • Functions
  • Variables
  • Hugo Pipes
  • CLI
  • Troubleshooting
  • Tools
  • Hosting & Deployment
  • Contribute
  • Maintenance