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