feat: the mews.page site
This commit is contained in:
parent
5fa14bdf1b
commit
003bb0b4b1
4 changed files with 274 additions and 0 deletions
76
site/about.html
Normal file
76
site/about.html
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
<?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>About Mews</title>
|
||||
<meta name="mews-profile" content="0.1" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<meta name="description" content="How the Mews directory works, what this site keeps, and how to get in touch." />
|
||||
<link rel="stylesheet" type="text/css" href="mews-0.1.css" />
|
||||
</head>
|
||||
<body class="mews-cool">
|
||||
<h1>About Mews</h1>
|
||||
<p>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
|
||||
<a href="/spec/0.1" accesskey="1">mews.page/spec/0.1</a>, and it stays
|
||||
there once published.</p>
|
||||
|
||||
<h2>How the directory works</h2>
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>What this site keeps</h2>
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>Thanks</h2>
|
||||
<p>The format rests on <em>XHTML Mobile Profile 1.2</em>, which the
|
||||
<a href="/dtd/xhtml-mobile12.dtd">Open Mobile Alliance</a> finished in
|
||||
March 2008 and which is still perfectly good. The stylesheet asks first
|
||||
for <a href="https://www.brailleinstitute.org/freefont/"><em>Atkinson
|
||||
Hyperlegible</em></a>, made free for anyone to use by the Braille
|
||||
Institute of America, and then for
|
||||
<a href="https://github.com/adobe-fonts/source-code-pro"><em>Source Code
|
||||
Pro</em></a> by Paul D. Hunt. Neither is loaded from anywhere: if you have
|
||||
them you see them, and if you don't, Verdana is waiting.</p>
|
||||
|
||||
<h2>Get in touch</h2>
|
||||
<p>Bug reports, arguments about the spec, and sites that ought to be
|
||||
listed and aren't:</p>
|
||||
<address>hello@mews.page</address>
|
||||
|
||||
<hr />
|
||||
<p>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.</p>
|
||||
<p><a href="/" accesskey="0">Mews</a>
|
||||
· <a href="/check" accesskey="2">Check a page</a>
|
||||
· <a href="/directory" accesskey="3">The directory</a></p>
|
||||
</body>
|
||||
</html>
|
||||
61
site/check.html
Normal file
61
site/check.html
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?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>Check a page</title>
|
||||
<meta name="mews-profile" content="0.1" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<meta name="description" content="Check a page against Mews Profile 0.1, and add your site to the directory." />
|
||||
<link rel="stylesheet" type="text/css" href="mews-0.1.css" />
|
||||
</head>
|
||||
<body class="mews-cool">
|
||||
<h1>Check a page</h1>
|
||||
<p>Paste an address below. The checker fetches that page, validates it
|
||||
against the <a href="/dtd/mews-0.1.dtd">Mews DTD</a>, 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.</p>
|
||||
|
||||
<form action="/result" method="post">
|
||||
<fieldset>
|
||||
<p><label for="url">Page address</label><br />
|
||||
<input type="text" name="url" id="url" size="30" maxlength="200" accesskey="1" /></p>
|
||||
<p><input type="submit" name="check" value="Check page" accesskey="2" />
|
||||
<input type="submit" name="list" value="Check and list" accesskey="3" /></p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<p><strong>Check page</strong> tells you what it found and keeps nothing.
|
||||
<strong>Check and list</strong> does the same and then, if the page passes,
|
||||
puts your site in the <a href="/directory" accesskey="4">directory</a>.
|
||||
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.</p>
|
||||
|
||||
<h2>Doing it yourself</h2>
|
||||
<p>The same checks run on the command line, which is far less tedious
|
||||
while you are still fixing things:</p>
|
||||
<pre>uv run mewslint.py https://example.com/</pre>
|
||||
<p>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.</p>
|
||||
|
||||
<h2>What gets listed</h2>
|
||||
<p>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.</p>
|
||||
|
||||
<p>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).</p>
|
||||
|
||||
<hr />
|
||||
<p>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.</p>
|
||||
<p><a href="/spec/0.1" accesskey="5">The spec</a>
|
||||
· <a href="/about" accesskey="0">About this site</a></p>
|
||||
</body>
|
||||
</html>
|
||||
107
site/index.html
Normal file
107
site/index.html
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
<?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>Mews</title>
|
||||
<meta name="mews-profile" content="0.1" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<meta name="description" content="A quiet corner of the web, built on a standard that was already cut back: XHTML Mobile Profile 1.2." />
|
||||
<link rel="stylesheet" type="text/css" href="mews-0.1.css" />
|
||||
</head>
|
||||
<body class="mews-cool">
|
||||
<h1>Mews</h1>
|
||||
<p>A <em>mews</em> 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.</p>
|
||||
|
||||
<p>This obviously isn't the first attempt to do so. The
|
||||
<a href="https://indieweb.org/">IndieWeb</a> 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.
|
||||
<a href="https://geminiprotocol.net/">Gemini</a> has been at it since 2019, <a href="https://portal.mozz.us/spartan/spartan.mozz.us/">Spartan</a> trimmed even the TLS out of it, and I keep capsules on all of them.</p>
|
||||
|
||||
<p>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. <em>XHTML Mobile Profile 1.2</em> 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.</p>
|
||||
|
||||
<p>Mews goes further, for different reasons, and keeps the <em>MP</em>
|
||||
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.</p>
|
||||
|
||||
<p><strong>Authors provide structure. Readers control
|
||||
presentation.</strong> 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.</p>
|
||||
|
||||
<h2>Have a look round</h2>
|
||||
<ul>
|
||||
<li><a href="/spec/0.1" accesskey="1">The spec</a>. Nine short sections.
|
||||
You can read the whole thing before your tea goes cold.</li>
|
||||
<li><a href="/check" accesskey="2">Check a page</a>. Paste an address and
|
||||
find out what it breaks, with the section number that explains why.</li>
|
||||
<li><a href="/directory" accesskey="3">The directory</a>. Every site
|
||||
whose page passes.</li>
|
||||
</ul>
|
||||
|
||||
<h2>The whole page</h2>
|
||||
<p>Here is a conforming Mews page, and not an excerpt either. The
|
||||
lot:</p>
|
||||
<pre><?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></pre>
|
||||
<p>If that looks like 1999 to you, good.</p>
|
||||
|
||||
<h2>One stylesheet, thirty-two colours</h2>
|
||||
<p>There is exactly one stylesheet, and you don't write it. Copy
|
||||
<a href="/mews-0.1.css" accesskey="4">mews-0.1.css</a> 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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>The bits and pieces</h2>
|
||||
<ul>
|
||||
<li><a href="/mews-0.1.css">mews-0.1.css</a>, the stylesheet above.</li>
|
||||
<li><a href="/dtd/mews-0.1.dtd">mews-0.1.dtd</a>, which is what the
|
||||
checker validates against. Your browser should never fetch it, and
|
||||
neither should a client.</li>
|
||||
<li><a href="/dtd/xhtml-mobile12.dtd">xhtml-mobile12.dtd</a>, the
|
||||
original from 2008, kept here so nobody has to go hunting for it.</li>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
<p>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.</p>
|
||||
|
||||
<p>So: write something. Link to a neighbour. Leave the light on.</p>
|
||||
<p><a href="/about" accesskey="0">About this site</a></p>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue