diff --git a/Makefile b/Makefile index 57268c0..c401341 100644 --- a/Makefile +++ b/Makefile @@ -8,13 +8,13 @@ SPEC_DESCRIPTION = The Mews Profile specification, version 0.1. site: rm -rf build mkdir -p build/spec build/dtd - cp site/index.html site/about.html site/check.html build/ + cp site/index.html site/check.html build/ cp mews-0.1.css build/mews-0.1.css cp mews-0.1.css build/spec/mews-0.1.css cp dtd/mews-0.1.dtd dtd/xhtml-mobile12.dtd build/dtd/ uv run --script md2mews.py doc/SPEC.md -o build/spec/0.1.html --lang en \ --variant mews-cool --description "$(SPEC_DESCRIPTION)" - uv run mewslint.py --quiet build/index.html build/about.html build/check.html \ + uv run mewslint.py --quiet build/index.html build/check.html \ build/spec/0.1.html @echo "site built in build/" diff --git a/flake.nix b/flake.nix index 9928aab..3484b6e 100644 --- a/flake.nix +++ b/flake.nix @@ -109,7 +109,7 @@ # page that does not follow the spec cannot reach the server. site = pkgs.runCommand "mews-site" { } '' mkdir -p $out/spec $out/dtd - cp ${./site}/index.html ${./site}/about.html ${./site}/check.html $out/ + cp ${./site}/index.html ${./site}/check.html $out/ cp ${./mews-0.1.css} $out/mews-0.1.css cp ${./mews-0.1.css} $out/spec/mews-0.1.css cp ${./dtd/mews-0.1.dtd} $out/dtd/mews-0.1.dtd @@ -121,7 +121,7 @@ --description ${lib.escapeShellArg specDescription} ${app}/bin/mewslint --quiet \ - $out/index.html $out/about.html $out/check.html $out/spec/0.1.html + $out/index.html $out/check.html $out/spec/0.1.html ''; } ); diff --git a/site/about.html b/site/about.html deleted file mode 100644 index 2a37f58..0000000 --- a/site/about.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - About Mews - - - - - - -

About Mews

-

Mews Profile is a working draft. The format, the stylesheet and this - site are all version 0.1, which is to say I am still changing my mind - about parts of it, and the spec admits as much in its first paragraph. - What a given version promises is written down at - mews.page/spec/0.1, and it stays - there once published.

- -

How the directory works

-

Anyone can submit an address. The page is fetched and put through both - of the checks in section 9.1: it has to validate against the Mews DTD, and - it has to follow the handful of rules a DTD can't express, like keeping - your images on your own site and the markup under 256 KB (and preferably - under 64). Pass both and - your site is listed at once, by nobody's leave but the checker's.

- -

Listed sites are looked at again every week, and one whose page stops - conforming is dropped; since I hold no contact details there is nobody to - warn beforehand, so submit the fixed page and it is listed again - immediately. A site the checker simply can't reach gets a few days of - retries before it goes, because being down over a weekend isn't the same - as being wrong.

- -

The checks say nothing whatsoever about what a site publishes, and they - can't: a page about anything at all can be flawless XHTML. So if a listing - here points at something abusive, write to me and it comes out.

- -

What this site keeps

-

A submission stores the address you gave, the domain it belongs to, - what the checks found, and a salted hash of your IP address so that the - rate limits work. The salt is replaced every month, so last month's hashes - stop matching this month's, and raw addresses are never written down at - all.

- -

Submissions and results are deleted after ninety days. No cookies, - nothing loaded from anywhere else, and no analytics, which given the - subject matter would have been embarrassing.

- -

Thanks

-

The format rests on XHTML Mobile Profile 1.2, which the - Open Mobile Alliance finished in - March 2008 and which is still perfectly good. The stylesheet asks first - for Atkinson - Hyperlegible, made free for anyone to use by the Braille - Institute of America, and then for - Source Code - Pro by Paul D. Hunt. Neither is loaded from anywhere: if you have - them you see them, and if you don't, Verdana is waiting.

- -

Get in touch

-

Bug reports, arguments about the spec, and sites that ought to be - listed and aren't:

-
hello@mews.page
- -
-

I would rather this stayed small: a format one person can implement in - a weekend, a directory you can read in a single sitting, and pages that - still open in 2046. If it grows much past that, something has gone - wrong.

-

Mews - · Check a page - · The directory

- - diff --git a/site/check.html b/site/check.html index 00d39ba..d58cec7 100644 --- a/site/check.html +++ b/site/check.html @@ -11,10 +11,10 @@

Check a page

-

Paste an address below. The checker fetches that page, validates it - against the Mews DTD, reads your copy of - the stylesheet and up to twenty of your images, and then lists every rule - the page breaks together with the section of the spec that explains it.

+

Paste an address. The checker validates the page against the + Mews DTD, reads your stylesheet and up to + twenty images, and lists every rule it breaks with the section of the spec + that explains it.

@@ -25,37 +25,30 @@
-

Check page tells you what it found and keeps nothing. - Check and list does the same and then, if the page passes, - puts your site in the directory. - Either way it can take up to a minute, and there is no progress bar, - because a progress bar wants JavaScript and that is the one thing a Mews - page can't have. Leave this page open and go and put the kettle on.

+

Check page reports and keeps nothing. + Check and list also puts your site in the + directory if the page passes. + Either way it takes up to a minute, with no progress bar, because that + would want JavaScript. Leave this page open and put the kettle on.

Doing it yourself

-

The same checks run on the command line, which is far less tedious - while you are still fixing things:

+

The same checks run on the command line, which is quicker while you + are still fixing things:

uv run mewslint.py https://example.com/
-

It reads local files too, so you can check a page before anyone else - sees it, and I run it on this site as well: the build refuses to produce - mews.page at all if one of its own pages stops conforming. That seemed - only fair.

+

It reads local files too, so you can check a page before publishing + it. This site's own build refuses to produce mews.page if any of its pages + stops conforming. That seemed only fair.

What gets listed

-

One page per site, the one you hand me, and nobody reviews it: if the - page passes it goes in, and that is the whole of the trust model. A listed - site is checked again every week, and one whose page stops conforming - comes out of the directory without being asked twice.

- -

Fix it, submit it again, and it is back in straight away. I keep no - address to warn you at, which is the trade (no account, no password to - forget, and no warning either).

+

One page per site, the one you submit, and nobody reviews it: it + passes or it doesn't. Listed sites are rechecked every week, and there is + no address to warn you at. No account, no password to forget, and no + warning either.


-

If the checker turns your page down over something the spec doesn't - actually say, that is a bug in my validator rather than a fault in your - page, and I would like to hear about it.

-

The spec - · About this site

+

A page turned down over something the spec doesn't say is a bug in the + validator, not a fault in your page. Report it to the address on the + home page.

+

The spec

diff --git a/site/index.html b/site/index.html index 2af2807..9032d47 100644 --- a/site/index.html +++ b/site/index.html @@ -10,35 +10,47 @@ -

Mews

-

A mews is the lane round the back where the stables used to be: - narrow, quiet, and not on the way to anywhere. The web could do with one of - those. Small sites, plain words, nothing watching you read.

+

the mews

+

A mews is the lane round the back where the stables were: + narrow, quiet, not on the way to anywhere. Small sites, plain words, + nothing watching.

-

This obviously isn't the first attempt to do so. The - IndieWeb and small web crowd have made this case for way longer than I have. The usual answer is to go and build somewhere else, and the people doing it are right about the problem. - Gemini has been at it since 2019, Spartan trimmed even the TLS out of it, and I keep capsules on all of them.

- -

Where I disagree is that it takes a new protocol, which means a new client, a new server, and a page hardly anybody can open from a link you send them. - We already had a Web standard that was cut back on purpose, and cut back - properly: a published spec, a DTD, and a few hundred million handsets to - test it against. XHTML Mobile Profile 1.2 is strict XML built - from a fixed list of modules, with the desktop machinery left out of the - build: no frames, no iframes, no image maps, and basic tables instead of - the full set. It kept scripts and author stylesheets, because a phone in - 2008 was expected to want them.

+

Gemini, Spartan, the + IndieWeb and the small web got there + first, and they are right about the problem. But a calmer web doesn't really need + a new protocol and a client nobody has.

-

Mews goes further, for different reasons, and keeps the MP - while it is at it. Out go the scripting, style and object modules and the - event attributes; what is left is a choice rather than a hardware budget: - headings, paragraphs, lists, links, a few images, one stylesheet that - nobody gets to write, and nothing at all loaded from a server you don't - control. The phones were the excuse. The quiet is the point.

+

There was already a standard cut back on purpose: XHTML Mobile Profile + 1.2 aka. WAP 2.0 is strict XML with no frames and basic tables, because a 2008 + phone couldn't afford more. Mews takes out the scripts and styling too. The phones are still the excuse but this time the quiet is the point.

Authors provide structure. Readers control - presentation. Every rule in the spec follows from that one line, - which in practice means I don't get to pick your typeface, your line width - or your colours, and you don't have to put up with mine.

+ presentation.

+ +

For viewing Mews pages in regular web browsers there is exactly one stylesheet, thirty-two colours and all, and you + don't write it: copy mews-0.1.css + onto your own site, link it, and leave it alone. Host your own copy rather + than linking this one.

+ +

How the directory works

+

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.

+ +

Listed sites are checked again every week, and one whose page stops + conforming is dropped. Submit the fixed page and it goes straight back in. + Being unreachable buys a few days first.

+ +

The checks say nothing about what a site publishes. Write to the + address below and a listing comes out.

+ +

What this site keeps

+

A submission stores the address you gave, its domain, the findings, and + a salted hash of your IP address for the rate limits, resalted monthly. Raw + addresses are never stored.

+ +

Everything is deleted after ninety days. No cookies, nothing loaded + from anywhere else, and no analytics, which given the subject matter would + have been embarrassing.

Have a look round

-

The whole page

-

Here is a conforming Mews page, and not an excerpt either. The - lot:

-
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
-  "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <title>Signal Bars</title>
-    <meta name="mews-profile" content="0.1" />
-    <link rel="stylesheet" type="text/css" href="mews-0.1.css" />
-  </head>
-  <body>
-    <h1>Signal Bars</h1>
-    <p>Notes on old phones and small screens.</p>
-  </body>
-</html>
-

If that looks like 1999 to you, good.

- -

One stylesheet, thirty-two colours

-

There is exactly one stylesheet, and you don't write it. Copy - mews-0.1.css onto your own site, - link it, and then leave it alone. It sets a readable column width, a light - theme and a dark one, and four palettes (warm, cool, green, and a - monochrome one that looks like an early phone screen) which you choose - between with a single class on the body. Every text colour in it clears - 7:1 contrast against its background, which is a higher bar than most of - the web bothers with.

- -

Host your own copy rather than linking mine. If every Mews site pointed - at one central file, that file's server would see a request for every page - anybody reads anywhere, and the whole business of loading nothing from - other sites would have been for nothing.

- -

The bits and pieces

- - -
-

This is a draft, version 0.1, and I am still changing my mind about - parts of it. The directory is new and nearly empty. But a page written to - these rules opens on a handset from 2006, in your browser today, and in - whatever is reading pages in twenty years, because there is almost nothing - left in it to break.

-

So: write something. Link to a neighbour. Leave the light on.

-

About this site

+ +
trl@posteo.net