refactor: split the repo into self-contained validator, directory, quickstart, spec and site folders
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.
This commit is contained in:
parent
5fa8708bd1
commit
060d4e00fd
90 changed files with 1290 additions and 287 deletions
44
site/content/pages/index.md
Normal file
44
site/content/pages/index.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
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
|
||||
|
||||
[Directory](/directory) · [Specification](/spec/0.1)
|
||||
|
||||
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](https://indieweb.org/), small web, and alternative protocols like [Gemini](https://geminiprotocol.net/) and [Spartan](https://portal.mozz.us/spartan/spartan.mozz.us/) 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](/spec/0.1) and also a [directory](/directory) of sites that opted in. Anyone can [submit](/check) 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 <a href="/mews-0.1.css" accesskey="4">mews-0.1.css</a> stylesheet. Validate and submit it [here](/check). Done.
|
||||
|
||||
## Get started
|
||||
|
||||
Check this [sample page](https://code.randogoth.com/randogoth/mews.page/src/branch/main/sample/sample.html) with one of every element a mews page can hold and the [validator](/check) 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](https://code.randogoth.com/randogoth/mews.page/src/branch/main/quickstart/md2mews.py) that converts from a Markdown file. If you want a real blog engine, here's a [uvx](https://github.com/astral-sh/uv) powered quickstart script that writes a project folder, installs the [Pelican](https://getpelican.com/) static site generator together with our [pelican-mews](https://code.randogoth.com/randogoth/mews.page/src/branch/main/pelican-mews) plugin, and leaves you a first post to edit:
|
||||
|
||||
<pre>uvx --from git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=quickstart \
|
||||
mews-quickstart mysite
|
||||
cd mysite
|
||||
uv run pelican content</pre>
|
||||
|
||||
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](mailto:trl(ät)posteo(punkt)net) or even better, send me a [smolmail](https://smol.place):
|
||||
|
||||
<address>smol://randogoth@smol.place/olrtb3y4xr73w3gxgslejz4c6klgiawdu63ms2vm3nxekonqxk3a</address>
|
||||
|
||||
<hr />
|
||||
|
||||
So: write something. Link to a neighbour. Leave the light on.
|
||||
|
||||
<a href="https://code.randogoth.com">Repository</a>
|
||||
Loading…
Add table
Add a link
Reference in a new issue