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.
38 lines
2 KiB
Markdown
38 lines
2 KiB
Markdown
# Known issues
|
|
|
|
Things that are true of the implementation but not yet of the spec, or the other
|
|
way round. Each one is a decision waiting to be made, not a bug to work around.
|
|
|
|
## The hosted XHTML-MP DTD cannot validate offline
|
|
|
|
Section 9.1 says the project hosts a copy of the original XHTML-MP 1.2 DTD "so
|
|
validation never depends on the Open Mobile Alliance's server." The copy in
|
|
`spec/xhtml-mobile12.dtd` is only the OMA *driver*: it pulls about twenty-two
|
|
modules from `http://www.w3.org/TR/xhtml-modularization/DTD/*.mod`, one module
|
|
from openmobilealliance.org, and a relative `xhtml-mobile12-model-1.mod` that is
|
|
not in this repository. Hosting it therefore removes one network dependency and
|
|
leaves the rest.
|
|
|
|
It does not affect Mews validation. `spec/mews-0.1.dtd` is self-contained, and
|
|
the only thing the declared doctype has to provide is the character entity set,
|
|
which `validator/mews/lint.py` builds in memory from `html.entities` — the same
|
|
252 names, no network, nothing to keep in sync.
|
|
|
|
Two ways out, when it matters: reword 9.1 to say the hosted copy is a
|
|
convenience, or vendor the modules under `spec/xhtml-mobile12/` with a
|
|
public-ID resolver. Only the second would let a test prove section 3's claim
|
|
that every page passing the Mews DTD is also valid XHTML-MP 1.2 apart from
|
|
`lang` and `dir`.
|
|
|
|
## The head element order is normative, and surprising
|
|
|
|
`<!ELEMENT head ( title, meta, ( meta | link )* )>` means the title comes first
|
|
and at least one meta follows it, so a `<link>` before the first `<meta>` is
|
|
invalid. That follows section 3.3, but 3.3 does not say the order is normative,
|
|
and the validator's message has to explain it. Worth a sentence in the spec.
|
|
|
|
## The copies under validator/mews/data
|
|
|
|
`validator/mews/data/mews-0.1.css` and `validator/mews/data/mews-0.1.dtd` are
|
|
copies of the canonical files in `spec/`. They exist so the validator finds
|
|
them when it is installed as a wheel with nothing else on disk. `tests/test_data.py` fails if a copy drifts from its original.
|