Files
dedinit.ru/PAPERMOD_PARAMS.md
T

626 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📋 Полный справочник параметров темы rDedInit (PaperMod)
## Описание
Этот документ содержит **все параметры конфигурации** темы rDedInit (форк PaperMod), которые вы можете использовать в файле `hugo.toml` (или `hugo.yaml`/`config.yaml`) и во frontmatter постов.
---
## 📁 Глобальные параметры (в hugo.toml)
### Базовые параметры сайта
| Параметр | Описание | Пример |
|----------|----------|--------|
| `baseURL` | Базовый URL сайта | `baseURL = 'https://dedinit.ru/'` |
| `languageCode` | Код языка сайта | `languageCode = 'ru-ru'` |
| `title` | Заголовок сайта | `title = 'dedinit()'` |
| `theme` | Используемая тема | `theme = 'rDedInit'` |
| `timeZone` | Часовой пояс для дат | `timeZone = 'Europe/Moscow'` |
| `preserveTaxonomyNames` | Сохранять имена таксономий | `preserveTaxonomyNames = true` |
| `metaDataFormat` | Формат frontmatter | `metaDataFormat = "yaml"` |
---
## ⚙️ Параметры в секции [params]
### 🎨 Тема и внешний вид
| Параметр | Описание | Значения | По умолчанию |
|----------|----------|----------|--------------|
| `defaultTheme` | Тема по умолчанию | `"light"`, `"dark"`, `"auto"` | `"auto"` |
| `disableThemeToggle` | Отключить переключатель темы | `true`, `false` | `false` |
| `env` | Окружение (влияет на SEO, аналитику) | `"production"`, `"development"` | `"development"` |
**Пример:**
```toml
[params]
defaultTheme = "auto"
disableThemeToggle = false
env = "production"
```
---
### 📝 Информация о сайте
| Параметр | Описание | Пример |
|----------|----------|--------|
| `title` | Заголовок сайта (альтернативный) | `title = "dedinit.ru"` |
| `description` | Описание сайта для мета-тегов | `description = "Блог об_ops-ах..."` |
| `keywords` | Ключевые слова сайта | `keywords = ["блог", "программирование"]` |
| `author` | Автор сайта (по умолчанию для всех постов) | `author = "Кразя"` |
| `DateFormat` | Формат отображения даты | `DateFormat = "02.01.2006 15:04"` |
| `language` | Код языка | `language = "ru"` |
| `languageAlt` | Альтернативный код языка | `languageAlt = "ru"` |
---
### 🏠 Главная страница (Home-Info Mode)
| Параметр | Описание | Пример |
|----------|----------|--------|
| `homeInfoParams.Title` | Заголовок информационной секции | `Title = "Привет! 👋"` |
| `homeInfoParams.Content` | Содержимое информационной секции | `Content = "Добро пожаловать..."` |
| `homeInfoParams.AlignSocialIconsTo` | Выравнивание соц. иконок | `AlignSocialIconsTo = "center"` |
**Пример:**
```toml
[params.homeInfoParams]
Title = "Привет! 👋"
Content = "Добро пожаловать в мой блог!"
AlignSocialIconsTo = "center"
```
---
### 👤 Режим профиля (Profile Mode)
| Параметр | Описание | Значения |
|----------|----------|----------|
| `profileMode.enabled` | Включить режим профиля | `true`, `false` |
| `profileMode.title` | Заголовок профиля | Текст |
| `profileMode.subtitle` | Подзаголовок профиля | Текст |
| `profileMode.imageUrl` | Путь к изображению профиля | Путь или URL |
| `profileMode.imageTitle` | Alt-текст изображения | Текст |
| `profileMode.imageWidth` | Ширина изображения | Число (px) |
| `profileMode.imageHeight` | Высота изображения | Число (px) |
| `profileMode.buttons` | Кнопки действий | Массив `{name, url}` |
**Пример:**
```toml
[params.profileMode]
enabled = true
title = "Имя Фамилия"
subtitle = "Разработчик, блогер, энтузиаст"
imageUrl = "/images/profile.jpg"
imageTitle = "Моё фото"
imageWidth = 150
imageHeight = 150
[[params.profileMode.buttons]]
name = "Архив"
url = "/posts/"
[[params.profileMode.buttons]]
name = "GitHub"
url = "https://github.com/username"
```
---
### 📱 Социальные иконки
| Параметр | Описание | Пример |
|----------|----------|--------|
| `socialIcons` | Список соц. иконок | Массив `{name, url}` |
**Пример:**
```toml
[[params.socialIcons]]
name = "telegram"
url = "https://t.me/username"
[[params.socialIcons]]
name = "github"
url = "https://github.com/username"
[[params.socialIcons]]
name = "linkedin"
url = "https://linkedin.com/in/username"
```
**Поддерживаемые платформы:** telegram, github, gitlab, twitter, x-twitter, linkedin, facebook, instagram, youtube, reddit, discord, stack-overflow, mastodon, и другие.
---
### 📄 Параметры постов (глобальные)
| Параметр | Описание | Значения | По умолчанию |
|----------|----------|----------|--------------|
| `ShowReadingTime` | Показывать время чтения | `true`, `false` | `false` |
| `ShowWordCount` | Показывать количество слов | `true`, `false` | `false` |
| `ShowShareButtons` | Показывать кнопки шеринга | `true`, `false` | `false` |
| `ShareButtons` | Какие кнопки шеринга показывать | Массив | `["twitter", "facebook", "linkedin"]` |
| `ShowBreadCrumbs` | Показывать хлебные крошки | `true`, `false` | `false` |
| `ShowPostNavLinks` | Показывать навигацию между постами | `true`, `false` | `false` |
| `ShowCodeCopyButtons` | Показывать кнопки копирования кода | `true`, `false` | `false` |
| `hideAuthor` | Скрывать информацию об авторе | `true`, `false` | `false` |
| `disableSpecial1stPost` | Отключить специальный стиль первого поста | `true`, `false` | `false` |
| `ShowAllPagesInArchive` | Показывать все страницы в архиве | `true`, `false` | `false` |
| `mainSections` | Основные секции для главной | Массив | `["posts"]` |
**Пример:**
```toml
[params]
ShowReadingTime = true
ShowWordCount = true
ShowShareButtons = true
ShareButtons = ["telegram", "twitter", "linkedin", "reddit"]
ShowBreadCrumbs = true
ShowPostNavLinks = true
ShowCodeCopyButtons = true
mainSections = ["posts", "blog"]
```
---
### 🖼️ Обложки (Cover)
| Параметр | Описание | Значения |
|----------|----------|----------|
| `cover.responsiveImages` | Генерировать адаптивные изображения | `true`, `false` |
| `cover.linkFullImages` | Ссылка на полное изображение | `true`, `false` |
| `cover.hidden` | Скрывать обложку в списках | `true`, `false` |
| `cover.hiddenInList` | Скрывать обложку только в списках | `true`, `false` |
**Пример:**
```toml
[params.cover]
responsiveImages = true
linkFullImages = true
```
---
### ✏️ Редактирование постов
| Параметр | Описание | Пример |
|----------|----------|--------|
| `editPost.URL` | URL репозитория для редактирования | `"https://github.com/user/repo/content"` |
| `editPost.Text` | Текст кнопки редактирования | `"Редактировать"` |
| `editPost.appendFilePath` | Добавлять путь к файлу в URL | `true`, `false` |
**Пример:**
```toml
[params.editPost]
URL = "https://github.com/dedinit/dedinit.ru/content"
Text = "Предложить правки"
appendFilePath = true
```
---
### 🔍 Поиск (Fuse.js)
| Параметр | Описание | Значения |
|----------|----------|----------|
| `fuseOpts.isCaseSensitive` | Чувствительность к регистру | `true`, `false` |
| `fuseOpts.shouldSort` | Сортировать результаты | `true`, `false` |
| `fuseOpts.location` | Позиция начала поиска | Число |
| `fuseOpts.distance` | Расстояние для поиска | Число |
| `fuseOpts.threshold` | Порог соответствия (0.0–1.0) | Число |
| `fuseOpts.minMatchCharLength` | Мин. длина совпадения | Число |
| `fuseOpts.limit` | Ограничение результатов | Число |
| `fuseOpts.keys` | Поля для поиска | Массив |
**Пример:**
```toml
[params.fuseOpts]
isCaseSensitive = false
shouldSort = true
location = 0
distance = 1000
threshold = 0.4
minMatchCharLength = 2
limit = 10
keys = ["title", "summary", "content"]
```
---
### 👥 Авторы
| Параметр | Описание | Пример |
|----------|----------|--------|
| `author` | Авторы сайта по умолчанию | `author = ["Кразя"]` |
Может быть переопределено во frontmatter поста:
```yaml
---
author: ["Автор 1", "Автор 2"]
---
```
---
### 📊 Footer (Подвал)
| Параметр | Описание | Значения |
|----------|----------|----------|
| `footer.hideCopyright` | Скрыть информацию о копирайте | `true`, `false` |
| `footer.text` | Текст в подвале (до ссылки на Hugo) | Текст (markdown) |
| `hideFooter` | Полностью скрыть подвал | `true`, `false` |
| `disableScrollToTop` | Отключить кнопку "Наверх" | `true`, `false` |
**Пример:**
```toml
[params.footer]
hideCopyright = false
text = "Сделано с ❤️"
```
---
### 🔗 Label (Логотип в шапке)
| Параметр | Описание | Пример |
|----------|----------|--------|
| `label.text` | Текст логотипа | `text = "dedinit()"` |
| `label.icon` | Путь к иконке логотипа | `icon = "/images/logo.png"` |
| `label.iconSVG` | SVG логотипа (inline) | `iconSVG = "<svg>..."` |
| `label.iconHeight` | Высота иконки | `iconHeight = 30` |
**Пример:**
```toml
[params.label]
text = "dedinit()"
icon = "/images/favicon/favicon48x48.ico"
iconHeight = 30
```
---
### 📈 Аналитика и верификация
| Параметр | Описание | Пример |
|----------|----------|--------|
| `analytics.google.SiteVerificationTag` | Тег верификации Google | `SiteVerificationTag = "XXXXXXXXXX"` |
| `analytics.yandex.SiteVerificationTag` | Тег верификации Яндекс | `SiteVerificationTag = "YYYYYYYYYY"` |
| `analytics.bing.SiteVerificationTag` | Тег верификации Bing | `SiteVerificationTag = "ZZZZZZZZZZ"` |
| `analytics.naver.SiteVerificationTag` | Тег верификации Naver | `SiteVerificationTag = "AAAAAAAAAA"` |
**Пример:**
```toml
[params.analytics.google]
SiteVerificationTag = "XXXXXXXXXX"
[params.analytics.yandex]
SiteVerificationTag = "YYYYYYYYYY"
```
**Google Analytics (в секции services):**
```toml
[services.googleAnalytics]
ID = "G-XXXXXXXXXX"
```
---
### 🎯 Прочие параметры
| Параметр | Описание | Значения |
|----------|----------|----------|
| `CanonicalLinkText` | Текст для canonical ссылки | `"Originally published at"` |
| `displayFullLangName` | Показывать полное название языка | `true`, `false` |
| `ShowPageNums` | Показывать номера страниц в пагинации | `true`, `false` |
| `ShowRssButtonInSectionTermList` | Показывать RSS кнопку в разделах | `true`, `false` |
---
### 🔧 Assets (Ресурсы)
| Параметр | Описание | Значения |
|----------|----------|----------|
| `assets.favicon` | Путь к favicon.ico | Путь |
| `assets.favicon16x16` | Путь к favicon 16x16 | Путь |
| `assets.favicon32x32` | Путь к favicon 32x32 | Путь |
| `assets.apple_touch_icon` | Путь к Apple touch icon | Путь |
| `assets.safari_pinned_tab` | Путь к Safari pinned tab | Путь |
| `assets.theme_color` | Цвет темы для браузера | HEX цвет |
| `assets.msapplication_TileColor` | Цвет плитки MS | HEX цвет |
| `assets.disableScrollBarStyle` | Отключить стили скроллбара | `true`, `false` |
| `assets.disableFingerprinting` | Отключить fingerprinting | `true`, `false` |
**Пример:**
```toml
[params.assets]
favicon = "images/favicon/favicon48x48.ico"
favicon16x16 = "images/favicon/favicon-16x16.png"
favicon32x32 = "images/favicon/favicon-32x32.png"
apple_touch_icon = "images/favicon/apple-touch-icon.png"
theme_color = "#2e2e33"
```
---
### 📑 Schema.org разметка
| Параметр | Описание | Пример |
|----------|----------|--------|
| `schema.publisherType` | Тип издателя | `"Organization"`, `"Person"` |
| `schema.sameAs` | Ссылки на соц. профили | Массив URL |
**Пример:**
```toml
[params.schema]
publisherType = "Person"
sameAs = ["https://t.me/username", "https://github.com/username"]
```
---
## 📝 Frontmatter параметры (в постах)
Эти параметры указываются в начале каждого поста (в YAML/TOML):
| Параметр | Описание | Пример |
|----------|----------|--------|
| `title` | Заголовок поста | `title = "Мой пост"` |
| `description` | Описание поста | `description = "Краткое описание"` |
| `date` | Дата публикации | `date = 2026-03-06T19:30:00+03:00` |
| `lastmod` | Дата последнего изменения | `lastmod = 2026-03-07T10:00:00+03:00` |
| `publishDate` | Дата публикации (альтернативная) | `publishDate = 2026-03-06` |
| `draft` | Черновик (не публиковать) | `draft = true` |
| `tags` | Теги поста | `tags = ["hugo", "blog"]` |
| `categories` | Категории поста | `categories = ["технологии"]` |
| `keywords` | Ключевые слова поста | `keywords = ["hugo", "golang"]` |
| `author` | Автор поста (переопределение) | `author = ["Имя"]` |
| `canonicalURL` | Canonical URL | `canonicalURL = "https://..."` |
| `CanonicalLinkText` | Текст canonical ссылки | `CanonicalLinkText = "Оригинал"` |
### Параметры отображения поста
| Параметр | Описание | Значения |
|----------|----------|----------|
| `ShowReadingTime` | Показывать время чтения | `true`, `false` |
| `ShowWordCount` | Показывать количество слов | `true`, `false` |
| `ShowBreadCrumbs` | Показывать хлебные крошки | `true`, `false` |
| `ShowPostNavLinks` | Показывать навигацию | `true`, `false` |
| `ShowShareButtons` | Показывать кнопки шеринга | `true`, `false` |
| `ShowCodeCopyButtons` | Показывать кнопки копирования | `true`, `false` |
| `ShowToc` | Показывать оглавление | `true`, `false` |
| `TocOpen` | Оглавление открыто по умолчанию | `true`, `false` |
| `UseHugoToc` | Использовать встроенный Hugo TOC | `true`, `false` |
| `disableAnchoredHeadings` | Отключить якорные заголовки | `true`, `false` |
| `hideSummary` | Скрыть саммари в списке | `true`, `false` |
| `hideMeta` | Скрыть мета-информацию | `true`, `false` |
| `hideAuthor` | Скрыть автора | `true`, `false` |
| `hideFooter` | Скрыть подвал на странице | `true`, `false` |
| `searchHidden` | Скрыть из поиска | `true`, `false` |
| `hiddenInHomeList` | Скрыть с главной страницы | `true`, `false` |
| `robotsNoIndex` | Запретить индексацию | `true`, `false` |
### Обложка поста
```yaml
cover:
image: "/images/cover.jpg"
alt: "Описание изображения"
caption: "Подпись к изображению"
relative: false
hidden: false
hiddenInList: false
```
### Редактирование поста
```yaml
editPost:
URL: "https://github.com/user/repo/content/post.md"
Text: "Предложить правки"
appendFilePath: true
```
---
## 🗂️ Структура [outputs]
Настройка форматов вывода для разных типов страниц:
```toml
[outputs]
home = ["HTML", "RSS", "JSON"] # JSON нужен для поиска
page = ["HTML"]
section = ["HTML", "RSS"]
taxonomy = ["HTML", "RSS"]
term = ["HTML", "RSS"]
```
---
## 🏷️ Таксономии
```toml
[taxonomies]
category = "categories"
tag = "tags"
```
---
## 🎨 Подсветка синтаксиса (Chroma)
```toml
[markup.highlight]
style = "github-dark"
lineNos = true
tabWidth = 4
```
**Доступные стили:** `github`, `github-dark`, `monokai`, `dracula`, `one-dark`, и другие.
---
## 🌐 Многоязычность
```toml
[languages]
[languages.ru]
languageName = "Русский"
languageCode = "ru-ru"
weight = 1
title = "dedinit()"
[languages.ru.params]
languageAltTitle = "Russian"
[languages.en]
languageName = "English"
languageCode = "en-us"
weight = 2
title = "dedinit()"
```
---
## 📜 Меню
```toml
[[menu.main]]
name = "Главная"
url = "/"
weight = 10
[[menu.main]]
name = "Архив"
url = "/posts/"
weight = 20
[[menu.main]]
name = "Категории"
url = "/categories/"
weight = 30
```
---
## 🔑 Горячие клавиши (AccessKeys)
| Клавиша | Действие |
|---------|----------|
| `Alt + H` | Перейти на главную |
| `Alt + T` | Переключить тему |
| `Alt + C` | Открыть/закрыть оглавление |
| `Alt + G` | Перейти к началу страницы |
| `Alt + /` | Перейти к поиску (если в меню) |
---
## 📌 Пример полной конфигурации
```toml
baseURL = 'https://dedinit.ru/'
languageCode = 'ru-ru'
title = 'dedinit()'
theme = 'rDedInit'
timeZone = 'Europe/Moscow'
preserveTaxonomyNames = true
metaDataFormat = "yaml"
[params]
env = "production"
title = "dedinit.ru"
description = "Блог об_ops-ах"
keywords = ["блог", "программирование", "mlops", "devops"]
author = "Кразя"
DateFormat = "02.01.2006 15:04"
language = "ru"
languageAlt = "ru"
# Тема
defaultTheme = "auto"
disableThemeToggle = false
# Посты
ShowReadingTime = true
ShowWordCount = true
ShowShareButtons = false
ShareButtons = ["telegram", "twitter", "linkedin"]
ShowPostNavLinks = true
ShowBreadCrumbs = true
ShowCodeCopyButtons = true
disableSpecial1stPost = true
# Главная
mainSections = ["posts"]
# Footer
disableScrollToTop = false
[params.assets]
favicon = "images/favicon/favicon48x48.ico"
favicon16x16 = "images/favicon/favicon-16x16.png"
favicon32x32 = "images/favicon/favicon-32x32.png"
[params.label]
text = "dedinit()"
icon = "images/favicon/favicon48x48.ico"
iconHeight = 30
[outputs]
home = ["HTML", "RSS"]
page = ["HTML"]
section = ["HTML", "RSS"]
[taxonomies]
category = "categories"
tag = "tags"
[markup.highlight]
style = "github-dark"
lineNos = true
tabWidth = 4
[menu]
[[menu.main]]
name = "Главная"
url = "/"
weight = 10
[[menu.main]]
name = "Архив"
url = "/posts/"
weight = 20
[languages]
[languages.ru]
languageName = "Русский"
languageCode = "ru-ru"
weight = 1
title = "dedinit()"
[services.googleAnalytics]
ID = ""
```
---
## 📚 Источники
- [Официальная документация PaperMod](https://github.com/adityatelange/hugo-PaperMod/wiki)
- [Документация Hugo](https://gohugo.io/documentation/)
- [Пример конфигурации PaperMod](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite)
---
## 💡 Советы
1. **Минимальная конфигурация**: Для начала достаточно указать `title`, `description`, `author`, `defaultTheme`
2. **SEO**: Включите `env = "production"` для активации мета-тегов
3. **Производительность**: `ShowCodeCopyButtons` и `ShowReadingTime` не влияют на скорость
4. **Кастомизация**: Используйте `assets/css/extended/blank.css` для своих стилей
5. **Frontmatter**: Параметры во frontmatter переопределяют глобальные настройки
---
**Документ актуален для версии темы rDedInit на базе PaperMod v9.x**