Formatting

Lists and checkboxes

Task states, nested list markers, definition markers and custom colors.

Task-list checkboxes

  • -x, --checkbox-style <square|circle> - renders task-list checkboxes as Nerd Font icons instead of the default [ ] / [x] markers. Requires a Nerd Font in the terminal.
  • --custom-checkbox <PAIRS> - overrides built-in checkbox icons or adds new states (only with --checkbox-style). Each semicolon-separated pair is either <char>:<icon>[:<color>] or <char>:<color>. The color-only form keeps an existing icon or uses the default unchecked icon for a new state. Colors accept named, hex, rgb, and ansi(N) values.
    • Override: --custom-checkbox ' :!' replace the unchecked icon
    • Add: --custom-checkbox '*:*' add a new [*] checkbox state
    • Color: --custom-checkbox ' :!:yellow' or #ff0000, 128,1,1, ansi(200)
    • Color only: --custom-checkbox '?:red' keeps the Nerd Font icon for the ? state and applies red.
    • New state, color only: --custom-checkbox '*:yellow' uses the default unchecked icon and applies yellow.

Task-list checkboxes

mdv --no-config --theme catppuccin --cols 64 example.md
mdv outputVersion 6.1.1
[ ] Read the guide
[✓] Install mdv
Markdown source
- [ ] Read the guide
- [x] Install mdv

Custom task states

mdv --no-config --theme catppuccin --cols 64 --checkbox-style square example.md
mdv outputVersion 6.1.1
󰄱 Read the guide
󰄲 Install mdv
[*] Review settings
󰞋 Ask a question
Markdown source
- [ ] Read the guide
- [x] Install mdv
- [*] Review settings
- [?] Ask a question

List markers and definitions

  • -L, --list-style <style> - replaces the default - unordered-list markers with a level-aware icon set. The value is required and uses the format type:<nerd-font|unicode>;size:<large|small>, for example --list-style 'type:unicode;size:small'.
    • size changes only Nerd Font markers. Unicode accepts either value but renders the same markers; their spacing may vary by font. Verified with Nerd Font families, especially JetBrainsMono Nerd Font.
  • -D, --definition-marker-style <unicode|nerd-font> - renders definition descriptions with a built-in Unicode or Nerd Font marker.
  • --uniform-list-marker <level:1-4|icon:glyph> - uses one marker at every nesting level (only with --list-style). level:2 reuses level 2 from the selected set; icon:* uses a custom glyph.
  • --custom-list <level>:<icon>[:<color>];... - overrides the marker icon and/or color for specific nesting levels (only with --list-style). Level is 1-based; icon is the marker glyph. Colors accept named (red), hex (#ff0000), rgb (255,0,0), and ansi(N) values.
    • Icon + color: --custom-list '1:*:yellow' marker * in yellow
    • Icon only: --custom-list '1:>' marker > in theme color
    • Color only: --custom-list '1:red' keep built-in icon, red color

Nested list markers

mdv --no-config --theme catppuccin --cols 64 example.md
mdv outputVersion 6.1.1
- Documents
  - Guides
    - Installation
      - Linux
- Examples
Markdown source
- Documents
  - Guides
    - Installation
      - Linux
- Examples

Uniform markers

mdv --no-config --theme catppuccin --cols 64 --list-style 'type:unicode;size:small' example.md
mdv outputVersion 6.1.1
⦁ Documents
  ▪ Guides
    ⚬ Installation
      ▫ Linux
⦁ Examples
Markdown source
- Documents
  - Guides
    - Installation
      - Linux
- Examples

Custom list colors

mdv --no-config --theme catppuccin --cols 64 --list-style 'type:unicode;size:small' example.md
mdv outputVersion 6.1.1
⦁ Documents
  ▪ Guides
    ⚬ Installation
      ▫ Linux
⦁ Examples
Markdown source
- Documents
  - Guides
    - Installation
      - Linux
- Examples

Definition markers

mdv --no-config --theme catppuccin --cols 64 example.md
mdv outputVersion 6.1.1
Theme
  Colors for a document.

Preset
  A reusable group of settings.
Markdown source
Theme
: Colors for a document.

Preset
: A reusable group of settings.

Structured overrides

checkbox_style: square
custom_checkbox:
  " ":
    icon: "!"
    color: yellow
  x:
    color: green
list_style: "type:unicode;size:small"
uniform_list_marker: "level:2"
custom_list:
  1:
    icon: "*"
    color: yellow
  2:
    color: red
definition_marker_style: unicode

List levels are one-based.

  • Named CLI forms such as 1:icon=*,color=yellow are accepted alongside positional forms.
  • Each entry/property merges with lower-priority configuration and preset values; explicit null clears a property or entry, and root null or {} clears the entire setting.
  • Without definition_marker_style, definitions keep a two-space indentation.
  • Numbered lists keep their numbering; marker customization targets unordered lists.