HUGO

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

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

  • Группы страниц
  • Разбивка пути в Хьюго
    • Индексные страницы: _index.md
    • Отдельные страницы в разделах
  • Объяснение путей
    • section
    • slug
    • path
    • url
  • Переопределение путей назначения через Front Matter
    • filename
    • slug
    • section
    • type
    • url
CONTENT MANAGEMENT FUNDAMENTALS

Организация контента

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

Группы страниц

Hugo 0.32 анонсировал изображения, относящиеся к страницам, и другие ресурсы, упакованные в Page Bundles.

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

На иллюстрации показаны 3 комплекта. Обратите внимание, что пакет домашней страницы не может содержать другие страницы содержимого, но другие файлы (изображения и т.д.) подойдут.

Документация пакета в разработке. Вскоре мы опубликуем более подробные документы по этому поводу.

Организация источника контента

В Hugo Ваш контент должен быть организован таким образом, чтобы отражать отрендеренный веб-сайт.

Хотя Hugo поддерживает вложенный контент на любом уровне, верхние уровни (например, content/<DIRECTORIES>) являются специальными в Hugo и считаются типом контента, используемым для определения макетов и т.д. Чтобы узнать больше о разделах, в том числе о том, как их вкладывать, см. разделы.

Без дополнительной настройки будет работать следующее:

.
└── content
    └── about
    |   └── index.md  // <- https://example.com/about/
    ├── posts
    |   ├── firstpost.md   // <- https://example.com/posts/firstpost/
    |   ├── happy
    |   |   └── ness.md  // <- https://example.com/posts/happy/ness/
    |   └── secondpost.md  // <- https://example.com/posts/secondpost/
    └── quote
        ├── first.md       // <- https://example.com/quote/first/
        └── second.md      // <- https://example.com/quote/second/

Разбивка пути в Хьюго

Ниже показаны отношения между Вашей организацией контента и структурой выходных URL-адресов Вашего веб-сайта Hugo при его отображении. В этих примерах предполагается, что Вы используете красивые URL-адреса, то является поведением по умолчанию для Hugo. В примерах также предполагается наличие пары “ключ-значение” baseURL = "https://example.com" в файле конфигурации Вашего сайта.

Индексные страницы: _index.md

_index.md играет в Хьюго особую роль. Это позволяет Вам добавлять главные темы и контент в Ваши список шаблонов. Эти шаблоны включают шаблоны для раздел шаблонов, шаблоны таксономии, шаблоны терминов таксономии, и [][шаблон домашней страницы].

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

Вы можете сохранить по одному _index.md для своей домашней страницы и по одному в каждом из разделов Вашего контента, таксономий и терминов таксономии. Ниже показано типичное размещение _index.md, который будет содержать контент и заставку для страницы списка разделов posts на веб-сайте Hugo:

.         url
.       ⊢--^-⊣
.        path    slug
.       ⊢--^-⊣⊢---^---⊣
.           filepath
.       ⊢------^------⊣
content/posts/_index.md

При сборке это будет выводиться по следующему адресу со связанными значениями:

                     url ("/posts/")
                    ⊢-^-⊣
       baseurl      section ("posts")
⊢--------^---------⊣⊢-^-⊣
        permalink
⊢----------^-------------⊣
https://example.com/posts/index.html

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

Отдельные страницы в разделах

Отдельные файлы содержимого в каждом из Ваших разделов будут отображаться как одностраничные шаблоны. Вот пример одиночного post внутри posts:

                   path ("posts/my-first-hugo-post.md")
.       ⊢-----------^------------⊣
.      section        slug
.       ⊢-^-⊣⊢--------^----------⊣
content/posts/my-first-hugo-post.md

Когда Hugo создаст Ваш сайт, контент будет выводиться по следующему адресу:


                               url ("/posts/my-first-hugo-post/")
                   ⊢------------^----------⊣
       baseurl     section     slug
⊢--------^--------⊣⊢-^--⊣⊢-------^---------⊣
                 permalink
⊢--------------------^---------------------⊣
https://example.com/posts/my-first-hugo-post/index.html

Объяснение путей

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

section

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

slug

slug контента - это либо name.extension, либо name/. Значение slug определяется как

  • имя файла содержимого (например, lollapalooza.md) ИЛИ
  • переопределение front matter

path

path содержимого определяется путем раздела к файлу. Файл path

  • основан на пути к местоположению содержимого И
  • не включает слаг

url

url - это относительный URL-адрес части контента. url

  • зависит от местоположения содержимого в структуре каталогов ИЛИ
  • определяется во вступительной части и переопределяет все вышеперечисленное

Переопределение путей назначения через Front Matter

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

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

Следующие элементы определены в этом порядке по определенной причине: элементы, описанные ниже в списке, будут иметь приоритет над более ранними элементами, и не все из этих элементов могут быть определены в начале:

filename

Это не главное, это настоящее имя файла без расширения. Это будет имя файла в месте назначения (например, content/posts/my-post.md превратится в example.com/posts/my-post/).

slug

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

content/posts/old-post.md

---
title: A new post with the filename old-post.md
slug: "new-post"
---

Это будет отображаться в следующем месте назначения в соответствии с поведением Хьюго по умолчанию:

example.com/posts/new-post/

section

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

type

type контента также определяется его местоположением на диске, но, в отличие от section, он может быть указан в начале. Смотрите типы. Это может быть особенно удобно, если Вы хотите, чтобы часть контента отображалась с использованием другого макета. В следующем примере Вы можете создать макет в layouts/new/mylayout.html, который Хьюго будет использовать для рендеринга этого фрагмента контента, даже среди множества других сообщений.

content/posts/my-post.md

---
title: My Post
type: new
layout: mylayout
---

url

Может быть предоставлен полный URL-адрес. Это отменит все вышеперечисленное, поскольку оно относится к конечному пункту назначения. Это должен быть путь от baseURL (начиная с /). url будет использоваться точно так же, как он был указан в начале статьи, и игнорировать параметр --uglyURLs в конфигурации Вашего сайта:

content/posts/old-url.md

---
title: Old URL
url: /blog/new-url/
---

Предполагая, что ваш baseURL сконфигурирован на https://example.com, добавление url к началу приведет к рендерингу old-url.md в следующем месте:

https://example.com/blog/new-url/

Дополнительную информацию о том, как управлять путями вывода, можно найти в Управление URL-адресами.

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

  • Комментарии
  • Page Resources
  • Разделы контента
  • Типы контента
  • Связанный контент
  • О Хьюго
    • Обзор
    • Модель безопасности Хьюго
    • 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 26, 2020: Перевод части content-management (38cdf5e5e)
Улучшить эту страницу
Авторы 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