validator/ holds mewslint (lint, css, fetch, DTD/CSS data); directory/ holds the mews.page service (app, db, check, pages, cli) and depends on validator/; quickstart/ holds mews-quickstart and md2mews.py for third parties who want to create Mews content without cloning the repo; spec/ consolidates doc/ and dtd/ with the canonical mews-0.1.css; site/ becomes a Pelican project with the forward-facing pages as Markdown, the check form kept as a raw HTML snippet. Root pyproject.toml is now a virtual uv workspace over validator, directory and quickstart, with cross-cutting tests that span more than one of them staying at the repo root. Makefile and flake.nix updated to match.
3 KiB
Title: the mews Slug: index Description: A quiet corner of the web, built on a standard that was already cut back: XHTML Mobile Profile 1.2.
the mews
The web is a loud place now. Pages track you, shout at you, and weigh magnitudes more than the words they carry.
A mews is the lane round the back where the stables were: narrow, quiet, not on the way to anywhere. The web needs more mews: small sites, plain words, nothing watching.
The IndieWeb, small web, and alternative protocols like Gemini and Spartan already point the way. But a quieter, more private web doesn't need a new protocol. We already had one: XHTML Mobile Profile 1.2 (WAP 2.0), built for phones too limited for a complex web. Also strip away scripts and styling, and an old constraint becomes the point: quiet.
Get listed
The mews is this idea turned into a specification and also a directory of sites that opted in. Anyone can submit an address. The page is fetched, put through both of the spec's checks, and listed at once if it passes. Nobody reviews it.
To get listed, publish a site that conforms to the doctype, avoids script tags, nested tables, divs, and other unsupported elements and only embeds the mews-0.1.css stylesheet. Validate and submit it here. Done.
Get started
Check this sample page with one of every element a mews page can hold and the validator that tells you for any address exactly what it breaks and why.
For a simple way to create compatible content there's a Python script that converts from a Markdown file. If you want a real blog engine, here's a uvx powered quickstart script that writes a project folder, installs the Pelican static site generator together with our pelican-mews plugin, and leaves you a first post to edit:
uvx --from git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=quickstart \
mews-quickstart mysite
cd mysite
uv run pelican content
The pages land in output/ as plain HTML that any web server will serve as valid mews pages.
Get in touch
Bug reports, arguments about the spec, and sites that ought to be listed and aren't, mail me or even better, send me a smolmail:
smol://randogoth@smol.place/olrtb3y4xr73w3gxgslejz4c6klgiawdu63ms2vm3nxekonqxk3aSo: write something. Link to a neighbour. Leave the light on.