Настройка

Темы

Встроенные палитры, свои темы YAML, наследование и примеры оформления.

Выбор темы

Встроенные темы: terminal, solarized-dark, nord, tokyonight, kanagawa, gruvbox, monokai, material-ocean, catppuccin.

По умолчанию используется terminal. Код следует палитре документа, если другая палитра не выбрана через --code-theme. --theme-info показывает активные цвета; при переданном имени файла также отображает документ.

Палитра документа

mdv --no-config --theme terminal --cols 64 example.md
Вывод mdvВерсия 6.1.1
Пример
 
 Читайте Markdown через `mdv`.
 
 ╭─ Note ────────────────────────╮
 │ Пример документа в терминале. │
 ╰───────────────────────────────╯
 
   fn main() {
       println!("hello, mdv");
   }
 
 Откройте руководство.
Исходный Markdown
# Пример

Читайте **Markdown** через `mdv`.

> [!NOTE]
> Пример документа в терминале.

```rust
fn main() {
    println!("hello, mdv");
}
```

Откройте [руководство](https://example.org/guide).

Отдельная палитра кода

mdv --no-config --theme catppuccin --cols 64 --code-theme terminal example.md
Вывод mdvВерсия 6.1.1
  fn main() {
      println!("hello, mdv");
  }
Исходный Markdown
```rust
fn main() {
    println!("hello, mdv");
}
```

Пользовательские темы

Положите один или несколько файлов *.yaml/*.yml в каталог <config_dir>/themes/, чтобы зарегистрировать собственные темы. Каталог ищется в том же порядке, что и config.yaml (флаг --config-file, переменная MDV_CONFIG_PATH, затем пользовательский каталог настроек ОС). В репозитории есть два готовых примера:

# <config_dir>/themes/warm.yaml
name: warm
description: Тёплый красный акцент поверх monokai.
extends: monokai
pager:
  transparent: true

h1: "#ff5577"
link: "#66ccff"
background: "#1c1c1c"

inline_style:
  code:
    backticks: false
    underline: true

syntax:
  keyword: "#ff5577"

Основные поля файла темы:

  • name (обязательно) - значение, принимаемое параметром --theme.
  • description (необязательно) - описание для mdv --theme-info; наследуется от базовой темы.
  • extends (необязательно) - встроенная тема или пользовательская тема, загруженная раньше по алфавиту. Без него пропущенные поля наследуются от terminal.
  • pager - цвета нижней панели, прозрачность, выделение и подсветка поиска во встроенном pager.
  • inline_style - начертания строчных элементов Markdown; цвета задаются в соответствующих цветовых секциях.

Цвета наследуются по отдельным полям.

Пользовательская тема с тем же именем, что и встроенная, имеет приоритет и полностью её заменяет - это поддерживаемый способ сделать форк встроенной темы, не копируя каждое поле. Нечитаемые или повреждённые файлы пропускаются с предупреждением, поэтому одна битая тема не ломает остальные.