NAME
App::Greple::md - Greple module for Markdown syntax highlighting
SYNOPSIS
greple -Mmd file.md
greple -Mmd --mode=dark -- file.md
greple -Mmd --base-color=Crimson -- file.md
greple -Mmd --cm h1=RD -- file.md
greple -Mmd --no-table -- file.md
DESCRIPTION
App::Greple::md is a greple module for viewing Markdown files in the terminal with syntax highlighting.
It colorizes headings, bold, italic, strikethrough, inline code, fenced code blocks, HTML comments, blockquotes, horizontal rules, links, and images. Tables are formatted with aligned columns and optional Unicode box-drawing borders. Links become clickable via OSC 8 terminal hyperlinks in supported terminals.
Nested elements are handled with cumulative coloring: for example, a link inside a heading retains both its link color and the heading background color.
For a complete Markdown viewing experience with line folding, multi-column output, and themes, see App::mdee, which uses this module as its highlighting engine.
MODULE OPTIONS
Module options are specified before -- to separate them from greple's own options:
greple -Mmd --mode=dark --cm h1=RD -- file.md
-m MODE, --mode=MODE
Set color mode. Available modes are light (default) and dark.
greple -Mmd -m dark -- file.md
-B COLOR, --base-color=COLOR
Override the base color used for headings, bold, links, and other elements. Accepts a named color (e.g., Crimson, DarkCyan) or a Term::ANSIColor::Concise color spec.
greple -Mmd -B Crimson -- file.md
--[no-]table
Enable or disable table formatting. When enabled (default), Markdown tables (3 or more consecutive pipe-delimited rows) are formatted with aligned columns using App::ansicolumn.
greple -Mmd --no-table -- file.md
--[no-]rule
Enable or disable Unicode box-drawing characters for table borders. When enabled (default), ASCII pipe characters (|) are replaced with vertical lines (│), and separator row dashes become horizontal rules (─) with corner pieces (├, ┤, ┼).
greple -Mmd --no-rule -- file.md
--cm LABEL=SPEC
Override the color for a specific element. LABEL is one of the color labels listed in "COLOR LABELS". SPEC follows Term::ANSIColor::Concise format and supports sub{...} function specs via Getopt::EX::Colormap.
greple -Mmd --cm h1=RD -- file.md
greple -Mmd --cm bold='${base}D' -- file.md
--hashed LEVEL=VALUE
Append closing hashes to headings. For example, ### Title becomes ### Title ###. Set per heading level:
greple -Mmd --hashed h3=1 --hashed h4=1 -- file.md
--show LABEL[=VALUE]
Control which elements are highlighted. This is useful for focusing on specific elements or disabling unwanted highlighting.
greple -Mmd --show bold=0 -- file.md # disable bold
greple -Mmd --show all= --show h1 -- file.md # only h1
--show LABEL=0 or --show LABEL= disables the label. --show LABEL or --show LABEL=1 enables it. all is a special key that sets all labels at once.
CONFIGURATION
Module parameters can also be set using the config() function in the -M declaration:
greple -Mmd::config(mode=dark,base_color=Crimson) file.md
Nested hash parameters use dot notation:
greple -Mmd::config(hashed.h3=1,hashed.h4=1) file.md
Available parameters:
mode light or dark (default: light)
base_color base color override
table table formatting (default: 1)
rule box-drawing characters (default: 1)
osc8 OSC 8 hyperlinks (default: 1)
hashed.h1-h6 closing hashes per level (default: 0)
OSC 8 Hyperlinks
Links are converted to clickable OSC 8 terminal hyperlinks in supported terminals (iTerm2, Kitty, WezTerm, Ghostty, etc.). Disable with:
greple -Mmd::config(osc8=0) file.md
COLOR LABELS
The following labels identify colorizable elements. Use them with --cm to customize colors or --show to control visibility.
Code
code_mark Code delimiters (fences and backticks)
code_info Fenced code block info string (language name)
code_block Fenced code block body
code_inline Inline code body
Headings
h1 - h6 Heading levels 1 through 6
Inline Formatting
bold Bold (**text** or __text__)
italic Italic (*text* or _text_)
strike Strikethrough (~~text~~)
Block Elements
blockquote Blockquote marker (>)
horizontal_rule Horizontal rules (---, ***, ___)
comment HTML comments (<!-- ... -->)
Links
link Inline links [text](url)
image Images 
image_link Image links [](url)
SEE ALSO
- App::mdee
-
Markdown viewer command with line folding, table formatting, multi-column layout, and themes. Uses this module for syntax highlighting.
- App::Greple
-
General-purpose extensible grep tool that hosts this module.
- Term::ANSIColor::Concise
-
Concise ANSI color specification format used for color labels.
- App::ansicolumn
-
ANSI-aware column formatting used for table alignment.
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright 2025-2026 Kazumasa Utashiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.