semcon = semicolon character. the only trigger in mtx.
; one semcon — this triggers an operator
;; duo semcon — this outputs a literal ;
every level (lvl1, lvl2, lvl3), every context (plain text, code blocks, tables) — the rule is the same.
6 levels. all start with ;= followed by exactly 3 characters — 4 total including the first =
weight descends by eroding = into - into .
;==== H1 TITLE ;. 4 equals (heaviest)
;===- H2 section ;. 3 equals 1 dash
;==-- H3 subsection ;. 2 equals 2 dashes
;=--- H4 detail ;. 1 equal 3 dashes
;=--. H5 minor ;. 1 equal 2 dashes 1 dot
;=-.. H6 smallest ;. 1 equal 1 dash 2 dots (lightest)
fixed width. deterministic. you can see the level in the source.
# H1 markdown — but # is also a comment in bash, python, yaml
;==== H1 mtx — ; + = is always a heading, nothing else
<h1>H1</h1> html — open tag, content, close tag
;==== H1 ;. mtx — trigger, content, closer
| what | mtx | renders as |
|---|---|---|
| bold | ;^ text ;. | bold text |
| italic | ;% text ;. | italic text |
| inline code | ;` text ;. | inline code |
| strikethrough | ;\st text ;. | |
| superscript | ;\sp text ;. | x2 |
| subscript | ;\sb text ;. | H2O |
all formatting works inline within plain text:
this is bold and italic and code — all inline.
this is ;^ bold ;. and ;% italic ;. and ;` code ;. — all inline.
**bold** markdown — ** also appears in shell globs
;^ bold ;. mtx — ; is the only trigger
_italic_ markdown — _ appears in variable_names
;% italic ;. mtx — no character conflicts
plain text just works. no operators needed for basic text.
single enter = line break.
double enter = new paragraph.
the rain came down hard.
she closed the window.
the room went quiet.
a new paragraph starts after the empty line.
the text above renders with natural line breaks and paragraphs.
markdown collapses single enters — mtx preserves them.
;' opens a code block. ;. alone on a line closes it.
everything inside is literal — no operators parse (except ;; escape).
;'
your code here
no ;^ bold ;. triggers inside
;.
```
your code here
```
markdown uses triple backtick — also used in shell interpolation.
mtx uses ;' — unambiguous.
one rule: ;; = literal ; in output.
;; -> ;
;;. -> ;.
;;" -> ;"
;;| -> ;|
;;^ not bold -> ;^ not bold (no formatting)
when to escape: anytime you want ; to appear as text, not trigger an operator.
when NOT to escape: inside code blocks (content is already literal, only ;; still applies).