8TML (“8TML is a Tiny Markup Language”) is a page format for a retro web: plain text files, served over HTTP, readable on networked 8-bit computers such as the Commodore 64, the ZX Spectrum, Atari 8-bit machines, the Apple II, MSX or the Amstrad CPC.
An 8TML page is a strict, simple subset of Markdown with a few extras: a header, inline colors, forms and stylesheets. Any program that follows the specification can show it; such a program is called a client. A client can be a browser on an 8-bit machine, a viewer on a PC, or a converter that turns pages into HTML.
---
8tml: 1
title: Hello
case: mixed
---
# Hello, retro web!
This page works on a *C64*, a ZX Spectrum and
anything in between. Some words are <yellow>yellow</>.
* [About me](about.8tml)
* [My C64 games](games.8tml)
Preview: Commodore 64, 40 columns
Hello, retro web!
This page works on a C64, a ZX Spectrum
and anything in between. Some words are
yellow.
● About me
● My C64 games
The design in five rules
- A page never touches the reader’s memory and never runs code. Everything in a page is a description that the client carries out within its own limits.
- One page, every machine. Every client shows the core; presentation is a hint; machine-specific content is optional and skipped by clients that can’t use it.
- Clients ignore what they don’t understand and never stop on a malformed page, so older clients survive newer pages.
- Single pass, small state. A page can be read byte by byte, with a small fixed state and short, bounded buffers.
- Every 8TML page is also a readable Markdown document.
Where to start
- Getting started: write your first page in five minutes.
- Guides: writing pages, styling a site, forms, hosting, writing a client.
- Reference: every part of the language, one page each.
- Examples: complete pages with their source.
- Platforms: what the different 8-bit machines can show.
Status: this documents 8TML 1, which is still a draft. Details can change until it is final.