You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vitepress/docs/ru/reference/default-theme-config.md

453 lines
15 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Настройка темы по умолчанию {#default-theme-config}
Конфигурация темы позволяет настроить её под себя. Вы можете настроить тему с помощью опции `themeConfig` в файле конфигурации:
```ts
export default {
lang: 'ru-RU',
title: 'VitePress',
description: 'Генератор статического сайта на базе Vite и Vue.',
// Конфигурации, связанные с темой.
themeConfig: {
logo: '/logo.svg',
nav: [...],
sidebar: { ... }
}
}
```
**Параметры, описанные на этой странице, применимы только к теме по умолчанию.** Разные темы предполагают разные конфигурации темы. При использовании пользовательской темы объект конфигурации темы будет передан теме, чтобы она могла определить условное поведение на его основе.
## i18nRouting {#i18nrouting}
- Тип: `boolean`
При смене локали на `ru` URL изменится с `/foo` (или `/en/foo/`) на `/ru/foo`. Вы можете отключить это поведение, установив для параметра `themeConfig.i18nRouting` значение `false`.
## logo {#logo}
- Тип: `ThemeableImage`
Файл логотипа для отображения в навигационной панели, прямо перед заголовком сайта. Принимает строку пути или объект, чтобы установить другой логотип для светлого/тёмного режима.
```ts
export default {
themeConfig: {
logo: '/logo.svg'
}
}
```
```ts
type ThemeableImage =
| string
| { src: string; alt?: string }
| { light: string; dark: string; alt?: string }
```
## siteTitle {#sitetitle}
- Тип: `string | false`
Вы можете настроить этот элемент для замены стандартного заголовка сайта (`title` в конфигурации приложения) в nav. При установке значения `false` заголовок в панели навигации будет отключен. Пригодится, если у вас есть `logo`, который уже содержит текст названия сайта.
```ts
export default {
themeConfig: {
siteTitle: 'Привет, мир'
}
}
```
## nav {#nav}
- Тип: `NavItem`
Конфигурация для пункта навигационного меню. Подробнее в главе [Тема по умолчанию: Навигация](./default-theme-nav#navigation-links).
```ts
export default {
themeConfig: {
nav: [
{ text: 'Руководство', link: '/guide' },
{
text: 'Выпадающее меню',
items: [
{ text: 'Пункт A', link: '/item-1' },
{ text: 'Пункт B', link: '/item-2' },
{ text: 'Пункт C', link: '/item-3' }
]
}
]
}
}
```
```ts
type NavItem = NavItemWithLink | NavItemWithChildren
interface NavItemWithLink {
text: string
link: string
activeMatch?: string
target?: string
rel?: string
noIcon?: boolean
}
interface NavItemChildren {
text?: string
items: NavItemWithLink[]
}
interface NavItemWithChildren {
text?: string
items: (NavItemChildren | NavItemWithLink)[]
activeMatch?: string
}
```
## sidebar {#sidebar}
- Тип: `Sidebar`
Конфигурация для пунктов меню боковой панели. Подробнее в главе [Тема по умолчанию: Сайдбар](./default-theme-sidebar).
```ts
export default {
themeConfig: {
sidebar: [
{
text: 'Руководство',
items: [
{ text: 'Введение', link: '/introduction' },
{ text: 'Первые шаги', link: '/getting-started' },
...
]
}
]
}
}
```
```ts
export type Sidebar = SidebarItem[] | SidebarMulti
export interface SidebarMulti {
[path: string]: SidebarItem[]
}
export type SidebarItem = {
/**
* Текстовая метка элемента
*/
text?: string
/**
* Ссылка на элемент
*/
link?: string
/**
* Потомки элемента
*/
items?: SidebarItem[]
/**
* Если не указано, группа не будет сворачиваться
*
* Если `true`, то группа будет сворачиваться и разворачиваться по умолчанию
*
* Если `false`, группа сворачивается, но по умолчанию разворачивается
*/
collapsed?: boolean
}
```
## aside {#aside}
- Тип: `boolean | 'left'`
- По умолчанию: `true`
- Можно переопределить для каждой страницы с помощью [метаданных](./frontmatter-config#aside)
Установка этого значения в `false` предотвращает отрисовку контейнера сайдбара.\
Установка этого значения в `true` приведёт к отображению сайдбара справа.\
Установка этого значения в `left` приведёт к отображению сайдбара слева.
Если вы хотите отключить его для всех режимов просмотра, используйте `aside: false`.
## outline {#outline}
- Тип: `Outline | Outline['level'] | false`
- Уровень можно переопределить для каждой страницы с помощью [метаданных](./frontmatter-config#outline)
Установка этого значения в `false` предотвращает отрисовку оглавления. Для получения более подробной информации обратитесь к этому интерфейсу:
```ts
interface Outline {
/**
* Уровни заголовков, которые будут отображаться в оглавлении.
* Одиночное число означает, что будут отображаться только заголовки этого уровня.
* Если передается кортеж, то первое число — это минимальный уровень, а второе — максимальный.
* `'deep'` то же самое, что `[2, 6]`, что означает, что будут отображены все заголовки от `<h2>` до `<h6>`.
*
* @default 2
*/
level?: number | [number, number] | 'deep'
/**
* Заголовок, который будет отображаться в оглавлении.
*
* @default 'На этой странице'
*/
label?: string
}
```
## socialLinks {#sociallinks}
- Тип: `SocialLink[]`
Вы можете задать эту опцию, чтобы показывать ссылки на ваши социальные аккаунты с помощью иконок в панели навигации.
```ts
export default {
themeConfig: {
socialLinks: [
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' },
{ icon: 'twitter', link: '...' },
// Вы также можете добавить пользовательские иконки, передав SVG в виде строки:
{
icon: {
svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Dribbble</title><path d="M12...6.38z"/></svg>'
},
link: '...',
// Вы также можете включить пользовательский ярлык для доступности (необязательно, но рекомендуется):
ariaLabel: 'классная ссылка'
}
]
}
}
```
```ts
interface SocialLink {
icon: SocialLinkIcon
link: string
ariaLabel?: string
}
type SocialLinkIcon =
| 'discord'
| 'facebook'
| 'github'
| 'instagram'
| 'linkedin'
| 'mastodon'
| 'npm'
| 'slack'
| 'twitter'
| 'x'
| 'youtube'
| { svg: string }
```
## footer {#footer}
- Тип: `Footer`
- Можно переопределить для каждой страницы с помощью [метаданных](./frontmatter-config#footer)
Настройка подвала. Вы можете разместить в подвале сообщение или текст об авторских правах, однако он будет отображаться только в том случае, если страница не содержит боковой панели. Это объясняется соображениями дизайна.
```ts
export default {
themeConfig: {
footer: {
message: 'Опубликовано под лицензией MIT.',
copyright: '© 2019 настоящее время, Эван Ю'
}
}
}
```
```ts
export interface Footer {
message?: string
copyright?: string
}
```
## editLink {#editlink}
- Тип: `EditLink`
- Можно переопределить для каждой страницы с помощью [метаданных](./frontmatter-config#editlink)
Ссылка для редактирования позволяет отобразить ссылку для редактирования страницы на сервисах управления Git, таких как GitHub или GitLab. См. секцию [Тема по умолчанию: Ссылка для редактирования](./default-theme-edit-link) для получения более подробной информации.
```ts
export default {
themeConfig: {
editLink: {
pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path',
text: 'Редактировать эту страницу на GitHub'
}
}
}
```
```ts
export interface EditLink {
pattern: string
text?: string
}
```
## lastUpdated {#lastupdated}
- Тип: `LastUpdatedOptions`
Позволяет настраивать текст и формат даты последнего обновления.
```ts
export default {
themeConfig: {
lastUpdated: {
text: 'Обновлено',
formatOptions: {
dateStyle: 'full',
timeStyle: 'medium'
}
}
}
}
```
```ts
export interface LastUpdatedOptions {
/**
* @default 'Last updated'
*/
text?: string
/**
* @default
* { dateStyle: 'short', timeStyle: 'short' }
*/
formatOptions?: Intl.DateTimeFormatOptions & { forceLocale?: boolean }
}
```
## algolia {#algolia}
- Тип: `AlgoliaSearch`
Опция для поддержки поиска на вашем сайте документации с помощью [Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch). Подробнее в главе [Тема по умолчанию: Поиск](./default-theme-search)
```ts
export interface AlgoliaSearchOptions extends DocSearchProps {
locales?: Record<string, Partial<DocSearchProps>>
}
```
Посмотреть все доступные опции можно [здесь](https://github.com/vuejs/vitepress/blob/main/types/docsearch.d.ts).
## carbonAds {#carbon-ads}
- Тип: `CarbonAdsOptions`
Возможность отображения [Carbon Ads](https://www.carbonads.net/).
```ts
export default {
themeConfig: {
carbonAds: {
code: 'код-рекламы',
placement: 'место-размещения-рекламы'
}
}
}
```
```ts
export interface CarbonAdsOptions {
code: string
placement: string
}
```
Подробнее в главе [Тема по умолчанию: Carbon Ads](./default-theme-carbon-ads)
## docFooter {#docfooter}
- Тип: `DocFooter`
Можно использовать для настройки текста, отображаемого над ссылками на предыдущую и следующую страницы. Полезно, если вы не пишете документы только на английском языке. Также можно использовать для глобального отключения подобных ссылок. Если вы хотите выборочно включить/выключить эти ссылки на отдельной странице, воспользуйтесь [метаданными](./default-theme-prev-next-links).
```ts
export default {
themeConfig: {
docFooter: {
prev: 'Предыдущая страница',
next: 'Следующая страница'
}
}
}
```
```ts
export interface DocFooter {
prev?: string | false
next?: string | false
}
```
## darkModeSwitchLabel {#darkmodeswitchlabel}
- Тип: `string`
- По умолчанию: `Appearance`
Можно использовать для настройки надписи переключателя тёмного режима. Этот ярлык отображается только в мобильном представлении.
## lightModeSwitchTitle {#lightmodeswitchtitle}
- Тип: `string`
- По умолчанию: `Switch to light theme`
Может использоваться для настройки заголовка переключателя светлого режима, который появляется при наведении курсора.
## darkModeSwitchTitle {#darkmodeswitchtitle}
- Тип: `string`
- По умолчанию: `Switch to dark theme`
Можно использовать для настройки заголовка переключателя тёмного режима, который появляется при наведении курсора.
## sidebarMenuLabel {#sidebarmenulabel}
- Тип: `string`
- По умолчанию: `Menu`
Может использоваться для настройки метки бокового меню. Эта метка отображается только в мобильном представлении.
## returnToTopLabel {#returntotoplabel}
- Тип: `string`
- По умолчанию: `Return to top`
Может использоваться для настройки метки кнопки возврата наверх. Эта метка отображается только в мобильном представлении.
## langMenuLabel {#langmenulabel}
- Тип: `string`
- По умолчанию: `Change language`
Можно использовать для настройки aria-метки кнопки переключения языка в панели навигации. Это используется только в том случае, если вы используете [i18n](../guide/i18n).
## externalLinkIcon {#externallinkicon}
- Тип: `boolean`
- По умолчанию: `false`
Отображать ли значок внешней ссылки рядом с внешними ссылками в Markdown.