The Mews · Directory · Specification
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.
The same checks run on the command line, which is quicker while you are still fixing things:
uvx --from git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=validator \
mewslint https://example.com/
Without uv, install it with pip (Python 3.12 or later):
pip install "git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=validator" mewslint https://example.com/
It reads local files too, so you can check a page before publishing it.
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 uv 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
Without uv, the same with pip:
pip install "git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=quickstart"
mews-quickstart --no-install mysite
cd mysite
pip install pelican markdown \
"pelican-mews @ git+https://code.randogoth.com/randogoth/mews.page.git#subdirectory=pelican-mews"
pelican content
The pages land in output/ as plain HTML that any web server will serve as valid mews pages.