HUGO

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

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

  • Что такое меню в Hugo?
  • Добавить контент в меню
    • Простое
  • Добавление записей, не относящихся к содержанию, в меню
  • Вложенность
  • Параметры
  • Рендеринг меню
CONTENT MANAGEMENT

Меню

У Хьюго простая, но мощная система меню.

Если все, что Вам нужно, это простое меню для Ваших разделов, смотрите «Меню раздела для ленивых блоггеров» в шаблонах меню.

Ты можешь это сделать:

  • Размещение контента в одном или нескольких меню
  • Обработка вложенных меню с неограниченной глубиной
  • Создание пунктов меню без привязки к какому-либо контенту
  • Различать активный элемент (и активную ветвь)

Что такое меню в Hugo?

menu - это именованный массив пунктов меню, доступных по имени через переменную сайта .Site.Menus. Например, Вы можете получить доступ к главному меню main Вашего сайта через .Site.Menus.main.

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

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

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

Hugo позволяет Вам добавлять контент в меню через front matter.

Простое

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

Одиночное меню

---
menu: "main"
---

Мультименю

---
menu: ["main", "footer"]
---

Продвинутое

---
menu:
  docs:
    parent: 'extras'
    weight: 20
---

Добавление записей, не относящихся к содержанию, в меню

Вы также можете добавлять элементы в меню, которые не связаны с частью контента. Это происходит в файле config file Вашего проекта Hugo.

Вот пример фрагмента, извлеченного из файла конфигурации:

config.
     
menu:
  main:
  - identifier: about
    name: about hugo
    pre: <i class='fa fa-heart'></i>
    url: /about/
    weight: -110
  - name: getting started
    post: <span class='alert'>New!</span>
    pre: <i class='fa fa-road'></i>
    url: /getting-started/
    weight: -100
[menu]

  [[menu.main]]
    identifier = "about"
    name = "about hugo"
    pre = "<i class='fa fa-heart'></i>"
    url = "/about/"
    weight = -110

  [[menu.main]]
    name = "getting started"
    post = "<span class='alert'>New!</span>"
    pre = "<i class='fa fa-road'></i>"
    url = "/getting-started/"
    weight = -100
{
   "menu": {
      "main": [
         {
            "identifier": "about",
            "name": "about hugo",
            "pre": "\u003ci class='fa fa-heart'\u003e\u003c/i\u003e",
            "url": "/about/",
            "weight": -110
         },
         {
            "name": "getting started",
            "post": "\u003cspan class='alert'\u003eNew!\u003c/span\u003e",
            "pre": "\u003ci class='fa fa-road'\u003e\u003c/i\u003e",
            "url": "/getting-started/",
            "weight": -100
         }
      ]
   }
}

URL-адреса должны быть относительно корня контекста. Если baseURL - это https://example.com/mysite/, тогда URL-адреса в меню не должны включать корневой контекст mysite. Использование абсолютного URL-адреса заменит базовый URL-адрес. Если значение, используемое для URL в приведенном выше примере, равно https://subdomain.example.com/, вывод будет https://subdomain.example.com.

Вложенность

Все вложение контента выполняется через поле parent.

Родительский элемент записи должен быть идентификатором другой записи. Идентификатор должен быть уникальным (в пределах меню).

Для определения идентификатора используется следующий порядок:

.Name > .LinkTitle > .Title

Это означает, что .Title будет использоваться, если не присутствует .LinkTitle и т.д. На практике, .Name и .Identifier используются только для структурирования отношений и поэтому никогда не отображаются.

В этом примере верхний уровень меню определен в Вашем файле сайта config. Все записи содержимого прикрепляются к одной из этих записей через поле .Parent.

Параметры

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

Типичным вариантом использования является определение настраиваемого параметра для добавления класса css к определенному пункту меню.

config.
     
menu:
  main:
  - identifier: about
    name: about hugo
    params:
      class: highlight-menu-item
    pre: <i class='fa fa-heart'></i>
    url: /about/
    weight: -110
[menu]

  [[menu.main]]
    identifier = "about"
    name = "about hugo"
    pre = "<i class='fa fa-heart'></i>"
    url = "/about/"
    weight = -110
    [menu.main.params]
      class = "highlight-menu-item"
{
   "menu": {
      "main": [
         {
            "identifier": "about",
            "name": "about hugo",
            "params": {
               "class": "highlight-menu-item"
            },
            "pre": "\u003ci class='fa fa-heart'\u003e\u003c/i\u003e",
            "url": "/about/",
            "weight": -110
         }
      ]
   }
}

Рендеринг меню

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

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

  • Menu Entry Properties
  • .HasMenuCurrent
  • .IsMenuCurrent
  • Menu Templates
  • О Хьюго
    • Обзор
    • Модель безопасности Хьюго
    • 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 (3d537170a)
Улучшить эту страницу
Авторы 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