Skip to content

Возможности VitePress

VitePress поставляется со встроенными расширениями Markdown.

Якоря заголовка

К заголовкам автоматически применяются якорные ссылки. Тег генерируется автоматически. Он создаётся путём транслитерации из содержимого заголовка и обрезается до 25 символов.

Пользовательские якоря

Чтобы указать пользовательский якорь для заголовка, а не использовать автоматически сгенерированный, добавьте суффикс к заголовку:

md
# Использование пользовательских якорей {#мой-якорь}

Это позволит ссылаться на заголовок по пользовательскому якорю #мой-якорь вместо стандартного #использование-пользовательских-якорей.

Метаданные

Метаданные YAML поддерживаются платформой VitePress:

md
---
title: Веду блог как хакер
lang: ru-RU
---

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

Более подробную информацию можно найти в разделе «Метаданные».

Эмодзи 🎉

Разметка

md
:tada: :100:

Результат

🎉 💯

Список всех эмодзи

Оглавление

Разметка

md
[[toc]]

Результат

Информационный блок

Пользовательские блоки можно определить по их типам, заголовкам и содержимому.

Заголовок по умолчанию

Разметка

md
::: info
Это информация.
:::

::: tip
Это совет.
:::

::: warning
Это предупреждение.
:::

::: danger
Это сигнал об опасности.
:::

::: details
Это блок-спойлер.
:::

Результат

NOTE

Это информация.

TIPS

Это совет.

WARNING

Это предупреждение.

CAUTION

Это уведомление об опасности.

DETAILS

Это блок-спойлер.

Пользовательский заголовок

Вы можете задать собственный заголовок, добавив текст сразу после «типа» контейнера.

Разметка

md
::: danger СТОП
Опасная зона, остановитесь
:::

::: details Нажмите на меня, чтобы просмотреть код

```js
console.log('Привет, VitePress!')
```

:::

Результат

СТОП

Опасная зона, остановитесь

Нажмите на меня, чтобы просмотреть код
js
console.log('Привет, VitePress!')

Блоки кода

VitePress использует Shiki для выделения синтаксиса языка в блоках кода Markdown с помощью цветного текста. Shiki поддерживает широкий спектр языков программирования. Всё, что нужно сделать, это добавить правильный псевдоним языка к начальным значкам блока кода:

Разметка

```js
export default {
  name: 'MyComponent',
  // ...
}
```

```html
<ul>
  <li v-for="todo in todos" :key="todo.id">
    {{ todo.text }}
  </li>
</ul>
```

Результат

js
export default {
  name: 'MyComponent'
  // ...
}
html
<ul>
  <li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li>
</ul>

Список всех поддерживаемых языков.

Также можно настроить пользовательскую тему подсветки синтаксиса в конфигурации проекта. Более подробную информацию смотрите в документации VitePress в секции «Markdown».

Выделение строк в блоках кода

Разметка

```js{4}
export default {
  data () {
    return {
      msg: 'Подсвечено!'
    }
  }
}
```

Результат

js
export default {
  data () {
    return {
      msg: 'Подсвечено!'
    }
  }
}

Помимо одной строки, можно указать несколько отдельных строк, диапазонов или и то, и другое:

  • Диапазоны строк, например: {5-8}, {3-10}, {10-17}
  • Несколько одиночных строк, например: {4,7,9}
  • Диапазоны строк и отдельные строки, например: {4,7-13,16,23-27,40}

Разметка

```js{1,4,6-8}
export default { // Подсвечено
  data () {
    return {
      msg: `Подсвечено!
      Эта строка не выделена,
      но эта и две следующих - да.`,
      motd: 'VitePress - это потрясающе',
      lorem: 'ipsum'
    }
  }
}
```

Результат

js
export default { // Подсвечено
  data () {
    return {
      msg: `Подсвечено!
      Эта строка не выделена,
      но эта и две следующих - да.`,
      motd: 'VitePress - это потрясающе',
      lorem: 'ipsum'
    }
  }
}

Кроме того, можно выделять непосредственно в строке, используя комментарий // [!code highlight].

Разметка

```js
export default {
  data () {
    return {
      msg: 'Подсвечено!' // [!code highlight]
    }
  }
}
```

Результат

js
export default {
  data() {
    return {
      msg: 'Подсвечено!'
    }
  }
}

Фокус в блоках кода

Добавление комментария // [!code focus] к строке сфокусирует её и размоет остальные части кода.

Кроме того, можно задать количество строк для фокусировки с помощью конструкции // [!code focus:<строки>].

Разметка

```js
export default {
  data () {
    return {
      msg: 'Фокус!' // [!code focus]
    }
  }
}
```

Результат

js
export default {
  data() {
    return {
      msg: 'Фокус!'
    }
  }
}

Подсветка различий в блоках кода

Добавление в строку комментариев // [!code --] или // [!code ++] создаст подсветку в формате Git Diff.

Разметка

```js
export default {
  data () {
    return {
      msg: 'Удалено' // [!code --]
      msg: 'Добавлено' // [!code ++]
    }
  }
}
```

Результат

js
export default {
  data () {
    return {
      msg: 'Удалено'
      msg: 'Добавлено'
    }
  }
}

Ошибки и предупреждения в блоках кода

Добавление в строку комментариев // [!code warning] или // [!code error] окрасит её соответствующим образом.

Разметка

```js
export default {
  data () {
    return {
      msg: 'Ошибка', // [!code error]
      msg: 'Предупреждение' // [!code warning]
    }
  }
}
```

Результат

js
export default {
  data() {
    return {
      msg: 'Ошибка', 
      msg: 'Предупреждение'
    }
  }
}

Номера строк

С помощью конструкций :line-numbers и :no-line-numbers можно добавить метки в блоки кода, чтобы переопределить значение, установленное в конфигурационном файле.

Также можно настроить номер начальной строки, добавив = после :line-numbers. Например, :line-numbers=2 означает, что номера строк в блоках кода будут начинаться с 2.

Разметка

```ts {1}
// опция line-numbers по умолчанию отключена
const line2 = 'Строка 2'
const line3 = 'Строка 3'
```

```ts:line-numbers {1}
// опция line-numbers включена
const line2 = 'Строка 2'
const line3 = 'Строка 3'
```

```ts:line-numbers=2 {1}
// опция line-numbers включена, нумерация начинается с 2
const line3 = 'Строка 3'
const line4 = 'Строка 4'
```

Результат

ts
// опция line-numbers по умолчанию отключена
const line2 = 'Строка 2'
const line3 = 'Строка 3'
ts
// опция line-numbers включена
const line2 = 'Строка 2'
const line3 = 'Строка 3'
ts
// опция line-numbers включена, нумерация начинается с 2
const line3 = 'Строка 3'
const line4 = 'Строка 4'

Группировка блоков кода

Несколько блоков кода можно сгруппировать для отображения содержимого во вкладках:

Разметка

md
::: code-group

```js [config.js]
/**
 * @type {import('vitepress').UserConfig}
 */
const config = {
  // ...
}

export default config
```

```ts [config.ts]
import type { UserConfig } from 'vitepress'

const config: UserConfig = {
  // ...
}

export default config
```

:::

Результат

js
/**
 * @type {import('vitepress').UserConfig}
 */
const config = {
  // ...
}

export default config
ts
import type { UserConfig } from 'vitepress'

const config: UserConfig = {
  // ...
}

export default config

Группировка блоков текста

Можно сгруппировать несколько блоков текста для отображения содержимого во вкладках:

Разметка

md
:::tabs
== tab a
a content
== tab b
b content
:::

:::tabs
== tab a
a content 2
== tab b
b content 2
:::

Результат

a content

a content 2

Включить содержание одного файла в другой с разметкой Markdown

Можно включить файл Markdown в другой файл Markdown, даже вложенный. Например, включить относительный файл Markdown можно следующим образом:

Разметка

md
<!--@include: \@/.parts/blocks/constructing.md\-->

Результат

🚧 В разработке

К сожалению, эта страница ещё находится в разработке. Если вы не нашли нужную информацию, вы можете воспользоваться меню навигации на боковой панели, чтобы начать чтение.

Импорт фрагментов кода

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

<<< @/filepath

Бейджи

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

Использование в заголовках

Можно использовать компонент Badge, который доступен глобально.

Разметка

md
### Заголовок <Badge type="info" text="по умолчанию" />

### Заголовок <Badge type="tip" text="^1.9.0" />

### Заголовок <Badge type="warning" text="beta" />

### Заголовок <Badge type="danger" text="осторожно" />

Результат

Заголовок по умолчанию

Заголовок ^1.9.0

Заголовок beta

Заголовок осторожно

Авторы

The avatar of contributor named as x1z53 x1z53
The avatar of contributor named as Олег Щавелев Олег Щавелев

История изменений