MARKTXT

home · story · guide · about

plain text markup. write docs and pages with one syntax.

no tag soup. no markdown traps. formatting is opt-in.


what is marktxt?

marktxt is a plain-text markup language.
semicolon trigger, dot closer. plain text stays plain.


two ways to write

marktxt gives you two styles in one format. use whichever fits.

plain text mode

just write. single enter = line break. double enter = new paragraph.
no operators needed for basic text — it just works.

the old keeper climbed the stairs.
one hundred and twelve steps.
each one worn smooth by decades of boots.

at the top, the lamp waited.
a brass beast with a glass heart.

the text above renders with natural line breaks and paragraphs.
no ;! or ;~ needed — plain text behaves like you'd expect.

see it in action: the lighthouse keeper — a short story written in plain text mode.

operator mode

when you need structure — headings, lists, bold, links — use ; operators.
every operator follows the same pattern: ;{op} content ;.

;==== HEADING ;.           headings (6 levels)
;^ bold ;.                 bold text
;% italic ;.               italic text
;` code ;.                 inline code
;- bullet item ;.          lists
;] link text ;. ;} url ;.  links
;< quote ;.                blockquotes

both styles mix freely. write plain text, drop in an operator when you need formatting.


images work too

placeholder image

images use the ;{ alt url ;. pattern. simple.


quick example

bold text and italic text and inline code — all inline.

;==== PAGE TITLE ;.
;===- section heading ;.
;- bullet one ;.
;- bullet two ;.
;^ bold ;. and ;% italic ;. and ;` code ;. inline.
;] click here ;. ;} https://example.com ;.

why not markdown?

the default is reversed: plain is safe, formatting is opt-in.

how it works

the pattern

every marktxt operator follows one pattern:

;{operator} content ;.

; opens. the operator determines what it is.
;. closes inline content. ;| closes blocks. ;" closes attributes.
;t. closes table cells. ;q. closes raw passthrough.

the engine resolves files in priority order: .mt first, then .txt.
both are parsed identically. if about.mt exists, about.txt is ignored.

headings

;==== H1 (heaviest) through ;=-.. H6 (lightest).
all heading operators are exactly 4 chars. fixed width. deterministic.

formatting

;^ bold ;.        ->  bold
;% italic ;.      ->  italic
;` code ;.        ->  code
;\st strike ;.    ->  strikethrough

renders as: bold and italic and code and strike

plain text

single enter = line break (<br>)
double enter = new paragraph (<p>)

no operators needed. just type naturally.
the parser wraps consecutive lines in a paragraph with line breaks between them.

lists

  1. first item
  2. second item
  3. third item

checkboxes

links

plain url: https://example.com
linked text: marktxt on github


get started

  1. download mt.php and .htaccess
  2. write your pages as .mt or .txt files
  3. upload to shared hosting
  4. done — your site is live

no npm. no build step. no framework. just php + apache.


home · story · guide · about

github · © 2026 digiopsys. powered by marktxt.