Grammar Reference
Separators
A line of 10 or more = or - characters.
| Kind | Character | Minimum length | LineKind |
|---|---|---|---|
| Major | = | 10 | Separator(SepKind::Major) |
| Minor | - | 10 | Separator(SepKind::Minor) |
================================================================================
--------------------------------------------------------------------------------
The formatter normalizes separators to line_width (default 78).
Tags
Pattern: *name*
nameis non-empty and contains no whitespace or tabs.- Multiple tags may appear on one line.
- Tags are conventionally right-aligned to
line_width.
*my-plugin* *my-plugin-intro*
Taglinks
Pattern: |name|
nameis non-empty and contains no whitespace.- The opening
|must fall at a word boundary: line start, or preceded by a space, tab,(,[, or|. - Taglinks inside backtick spans are not scanned.
See |my-plugin| for details.
Code Blocks
Content is verbatim: no tag scanning, no reformatting.
Inline fence
A prose line whose trimmed content ends with >, but not ->.
The following example: >
some_function()
<
Named fence
A line whose trimmed content matches >lang, where lang is one or more
characters from [A-Za-z0-9_+-].
>lua
vim.fn.input()
<
Termination
A block ends at the first of:
- A
<alone on a line. - A non-blank line beginning at column 0.
Blank lines do not terminate a block.
List Items
List items are preserved as-is and never reflowed with adjacent prose.
| Prefix | Kind |
|---|---|
- | Unordered (dash) |
* | Unordered (asterisk) |
• | Unordered (Unicode bullet U+2022) |
N. | Ordered (N = one or more digits) |
* and N. are list items only where the line defines no tag, so
*my-tag* Introduction and 1. Introduction *intro* are Text.
Backtick Spans
Pattern: `content`
Content between backticks is skipped during tag scanning.
Pipe Tables
Lines that start and end with |, after trailing whitespace is trimmed, are
preserved verbatim.
| Command | List |
| -------- | -------------- |
| `files` | find or fd |
|Prefix |Behavior |
|-----------|---------------|
|`no prefix`|Files |
Rows are never reflowed, merged with prose, or read as taglinks. Tab-aligned
tables with ~ headers are preserved by the tab rule.
Blank Lines
An empty or whitespace-only line is Blank.