Skip to content

Домашняя Страница ​

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

yaml
---
layout: home
---

Однако, этот параметр сам по себе мало что изменит. Вы можете добавить несколько различных предварительно оформленных "секций" на домашнюю страницу, установив дополнительные параметры, такие как hero и features.

Секция Героя ​

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

yaml
---
layout: home

hero:
  name: VitePress
  text: Генератор статических сайтов на Vite & Vue.
  tagline: Lorem ipsum...
  image:
    src: /logo.png
    alt: VitePress
  actions:
    - theme: brand
      text: Начать
      link: /guide/what-is-vitepress
    - theme: alt
      text: Посмотреть на GitHub
      link: https://github.com/vuejs/vitepress
---
ts
interface Hero {
  // Строка, отображаемая в верхней части `text`. Имеет цвет бренда
  // и ожидается, что будет короткой, например, название продукта.
  name?: string

  // Основной текст для секции героя. Определяется
  // как тег `h1`.
  text: string

  // Слоган, отображаемый под `text`.
  tagline?: string

  // Изображение отображается рядом с областью текста и слогана.
  image?: ThemeableImage

  // Кнопки действий для отображения в секции героя на домашней странице.
  actions?: HeroAction[]
}

type ThemeableImage =
  | string
  | { src: string; alt?: string }
  | { light: string; dark: string; alt?: string }

interface HeroAction {
  // Цветовая тема кнопки. По умолчанию `brand`.
  theme?: 'brand' | 'alt'

  // Надпись на кнопке.
  text: string

  // Ссылка назначения кнопки.
  link: string

  // Атрибут target ссылки.
  target?: string

  // Атрибут rel ссылки.
  rel?: string
}

Настройка цвета имени ​

VitePress использует цвет бренда (--vp-c-brand-1) для name. Однако, вы можете настроить этот цвет, переопределив переменную --vp-home-hero-name-color.

css
:root {
  --vp-home-hero-name-color: blue;
}

Также вы можете дополнительно настроить его, комбинируя --vp-home-hero-name-background, чтобы дать name градиентный цвет.

css
:root {
  --vp-home-hero-name-color: transparent;
  --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff);
}

Секция Особенностей ​

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

Вы можете предоставить иконку для каждой особенности, которая может быть эмодзи или любым типом изображения. Когда настроенная иконка является изображением (svg, png, jpeg...), вы должны предоставить иконку с правильной шириной и высотой; вы также можете предоставить описание, его внутренний размер, а также его варианты для темной и светлой темы при необходимости.

yaml
---
layout: home

features:
  - icon: 🛠️
    title: Простота и минимализм, всегда
    details: Lorem ipsum...
  - icon:
      src: /cool-feature-icon.svg
    title: Еще одна крутая особенность
    details: Lorem ipsum...
  - icon:
      dark: /dark-feature-icon.svg
      light: /light-feature-icon.svg
    title: Еще одна крутая особенность
    details: Lorem ipsum...
---
ts
interface Feature {
  // Иконка для каждой особенности.
  icon?: FeatureIcon

  // Название особенности.
  title: string

  // Детали особенности.
  details: string

  // Ссылка при нажатии на компонент особенности. Ссылка может
  // быть как внутренней, так и внешней.
  //
  // например, `guide/reference/default-theme-home-page` или `https://example.com`
  link?: string

  // Текст ссылки, отображаемый в компоненте особенности. Лучше всего
  // использовать с параметром `link`.
  //
  // например, `Узнать больше`, `Посетить страницу` и т.д.
  linkText?: string

  // Атрибут rel для параметра `link`.
  //
  // например, `external`
  rel?: string

  // Атрибут target для параметра `link`.
  target?: string
}

type FeatureIcon =
  | string
  | { src: string; alt?: string; width?: string; height: string }
  | {
      light: string
      dark: string
     

 alt?: string
      width?: string
      height: string
    }

Содержание доступно по лицензии MIT