Оформление
Блоки кода
Стили, подписи, определение синтаксиса, алиасы, переносы и нумерация кода.
Стили блоков
Значение --code-block-style |
Оформление |
|---|---|
basic |
Код с отступом без рамки, используется по умолчанию. |
simple |
Одна вертикальная линия слева. |
pretty |
Псевдографическая рамка. |
Добавьте :show-name, :show-icon или :show-name;show-icon, чтобы показать подпись. По умолчанию имя и значок скрыты. Для значков нужен Nerd Font, для обычных названий языков он не требуется.
Оформление блока кода
mdv --no-config --theme catppuccin --cols 64 --code-block-style basic example.md fn main() {
println!("hello, mdv");
}
Исходный Markdown
```rust
fn main() {
println!("hello, mdv");
}
```
Подписи и значки кода
Скрытые подписи, название языка, значок или оба.
mdv --no-config --theme catppuccin --cols 64 --code-block-style pretty example.md╭─────────────────────────────╮
│ fn main() { │
│ println!("hello, mdv"); │
│ } │
╰─────────────────────────────╯
Исходный Markdown
```rust
fn main() {
println!("hello, mdv");
}
```
Номера строк кода
Нумерация начинается заново в каждом блоке. --code-line-numbers без значения нумерует отображённые строки, включая продолжения после переноса. source нумерует физические строки кода и оставляет продолжения без номера. separator добавляет разделитель. Режимы объединяются как source;separator и работают во всех трёх стилях.
Номера строк кода
mdv --no-config --theme catppuccin --cols 44 example.md fn main() {
let message = "A long line of code tha
t wraps to the available terminal wi
dth";
println!("{message}");
}
Исходный Markdown
```rust
fn main() {
let message = "A long line of code that wraps to the available terminal width";
println!("{message}");
}
```
Отступ после переноса
--wrap выбирает места разрыва кода. --code-wrap-indent управляет продолжениями: none не добавляет дополнительный отступ, base сохраняет исходный, double добавляет к исходному ещё два пробела (режим по умолчанию). Номера строк, рамки, поля и окружающие списки уменьшают доступную ширину до переноса.
Отступ продолжений кода
mdv --no-config --theme catppuccin --cols 44 --code-wrap-indent none example.md fn main() {
let message = "A long line of code tha
t wraps to the available terminal width";
println!("{message}");
}
Исходный Markdown
```rust
fn main() {
let message = "A long line of code that wraps to the available terminal width";
println!("{message}");
}
```
Определение языка и цвета синтаксиса
mdv сначала использует указанный язык, пользовательские и встроенные алиасы, затем эвристическое определение. --no-code-guessing оставляет неизвестные блоки простым текстом. Для явно указанных plain/Markdown-блоков используется отдельная обработка текста. Свои определения синтаксиса добавляют языки, а темы задают цвета кода независимо от цветов документа.
Определение языка
mdv --no-config --theme catppuccin --cols 64 example.md #!/usr/bin/env python3
def greet(name):
print(f"Hello, {name}!")
greet("mdv")
Исходный Markdown
```
#!/usr/bin/env python3
def greet(name):
print(f"Hello, {name}!")
greet("mdv")
```
Свои значки, подписи и алиасы
--custom-code-block принимает записи language:icon=...,label=...,aliases=..., разделённые ;. Свойства разделяются запятыми, алиасы символом |. default:icon=... задаёт значок неизвестного языка. Эти определения изменяют подписи и алиасы поиска, но не грамматику подсветки.
Свои подписи кода
mdv --no-config --theme catppuccin --cols 64 --code-block-style 'pretty:show-name;show-icon' example.md╭─ Rust ────────────────────╮
│ fn main() { │
│ println!("hello, mdv"); │
│ } │
╰─────────────────────────────╯
Исходный Markdown
```rust
fn main() {
println!("hello, mdv");
}
```
custom_code_block:
python:
icon: "*"
label: Python
aliases: [py, py3]
default:
icon: "?"Пропущенные свойства объединяются с настройками меньшего приоритета. null очищает свойство или запись; корневые null и {} очищают всю пользовательскую настройку. aliases: [] или CLI aliases=[] очищают унаследованные алиасы. Цвет подписи задаёт code_block.label, а рамки code_block.border в схеме темы.