Structure
A page is a header followed by blocks: paragraphs, headings, lists, quotes, preformatted text, separators and forms. The start of each line decides what it is (see Blocks). Inside the text you can use emphasis, colors, links and a few tags (see Inline markup).
Write for many screens
The same page is shown on screens from 22 to 80 columns. Let the client do the layout:
- Write flowing text and let it wrap. Don’t break lines by hand to make a shape; it falls apart on a different width.
- Keep headings short; they wrap like paragraphs.
- Use preformatted text only for things that need fixed columns, and keep it narrow: lines wider than the screen are cut or scrolled sideways.
- Use colors as a hint, not as the only way to say something: some machines show no colors at all.
The same paragraph on three machines:
Preview: Commodore 64, 40 columns
This paragraph wraps on every screen.
The client decides where each line ends,
so the page reads well everywhere.
Preview: ZX Spectrum, 32 columns
This paragraph wraps on every
screen. The client decides where
each line ends, so the page
reads well everywhere.
Preview: VIC-20, 22 columns
This paragraph wraps
on every screen. The
client decides where
each line ends, so the
page reads well
everywhere.
Upper and lower case
Pages are shown in uppercase unless the header says case: mixed, because many 8-bit machines start up in an uppercase character set. Your text keeps its case in the file either way. If your page has lowercase text, add case: mixed.
Characters
8TML uses 7-bit ASCII. Letters with accents, curly quotes and other non-ASCII characters show up as ? on the reader’s screen, so write a, " and - instead.
A few ASCII characters don’t exist on every machine. On Commodore computers \ ^ _ ` { | } ~ look different (\ appears as a pound sign, _ as a left arrow). Avoid them in text that matters. See Files and characters.
Links
Link to your other pages with relative addresses such as news.8tml or games/index.8tml; they keep working when the site moves to another host. A link to a folder (games/) loads its index.8tml. See Links and URLs.
Keep pages small
An 8-bit computer has little memory for a page. A client shows what fits and tells the reader that the page was cut. A few kilobytes per page is a good size; split longer texts into several pages and link them.
It’s also Markdown
Every 8TML page is a readable Markdown document, so code hosting sites and Markdown viewers show it nicely too. The 8TML extras (colors, forms) show up there as plain text.