8TML

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

  1. 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.
  2. 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.
  3. Clients ignore what they don’t understand and never stop on a malformed page, so older clients survive newer pages.
  4. Single pass, small state. A page can be read byte by byte, with a small fixed state and short, bounded buffers.
  5. 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.