docs: tighten the site text and fold the about page into the index
This commit is contained in:
parent
18ab5a91ad
commit
39269ca61b
5 changed files with 65 additions and 186 deletions
4
Makefile
4
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/"
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
'';
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
<?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>
|
||||
|
|
@ -11,10 +11,10 @@
|
|||
</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>
|
||||
<p>Paste an address. The checker validates the page against the
|
||||
<a href="/dtd/mews-0.1.dtd">Mews DTD</a>, reads your stylesheet and up to
|
||||
twenty images, and lists every rule it breaks with the section of the spec
|
||||
that explains it.</p>
|
||||
|
||||
<form action="/result" method="post">
|
||||
<fieldset>
|
||||
|
|
@ -25,37 +25,30 @@
|
|||
</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>
|
||||
<p><strong>Check page</strong> reports and keeps nothing.
|
||||
<strong>Check and list</strong> also puts your site in the
|
||||
<a href="/directory" accesskey="4">directory</a> 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.</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>
|
||||
<p>The same checks run on the command line, which is quicker 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>
|
||||
<p>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.</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>
|
||||
<p>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.</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>
|
||||
<p>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
|
||||
<a href="/" accesskey="0">home page</a>.</p>
|
||||
<p><a href="/spec/0.1" accesskey="5">The spec</a></p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
116
site/index.html
116
site/index.html
|
|
@ -10,35 +10,47 @@
|
|||
<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>
|
||||
<h1>the mews</h1>
|
||||
<p>A <em>mews</em> is the lane round the back where the stables were:
|
||||
narrow, quiet, not on the way to anywhere. Small sites, plain words,
|
||||
nothing watching.</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><a href="https://geminiprotocol.net/">Gemini</a>, <a href="https://portal.mozz.us/spartan/spartan.mozz.us/">Spartan</a>, the
|
||||
<a href="https://indieweb.org/">IndieWeb</a> 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.</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>There was already a standard cut back on purpose: <em>XHTML Mobile Profile
|
||||
1.2</em> aka. <em>WAP 2.0</em> 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.</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>
|
||||
presentation.</strong></p>
|
||||
|
||||
<p>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 <a href="/mews-0.1.css" accesskey="4">mews-0.1.css</a>
|
||||
onto your own site, link it, and leave it alone. Host your own copy rather
|
||||
than linking this one.</p>
|
||||
|
||||
<h2>How the directory works</h2>
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>The checks say nothing about what a site publishes. Write to the
|
||||
address below and a listing comes out.</p>
|
||||
|
||||
<h2>What this site keeps</h2>
|
||||
<p>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.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>Have a look round</h2>
|
||||
<ul>
|
||||
|
|
@ -50,58 +62,8 @@
|
|||
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>
|
||||
|
||||
<address>trl@posteo.net</address>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue