Validation — 1.0.0
Local validation on 2026-09-27:
- Full test suite: 735 passed, including 11 notes browser/PDF tests and the original document browser tests.
- Ruff: passed for compiler, tests, and project helper tools.
- Mypy: passed across 26 Python source files.
- Wheel and source distribution: built successfully. Editor HTML/CSS/JS and notes runtime assets are included and match the current source.
- Browser coverage also checks embedded-word marks, block wrapping, checklist source updates and save/reload, rich disclosure hints, formatted diagram labels, every new Insert option, source navigation, incomplete fences, and alignment of worked equations inside printed boxes.
- New browser coverage: shorthand expansion, nested marks, draft recovery, cursor retention, save/reload persistence, external file conflicts, session-token enforcement, undo, scratch promotion, mobile layout, diagrams, math, connections, incremental working, recall, and cloze controls.
- A cross-feature matrix covers all seven shorthand marks in 72 prose contexts and all 49 mark pairings, plus explicit component forms, legacy document contracts in both modes, list ownership, raw-content preservation, line boundaries, source mapping, and fenced-block rearrangement.
- Release checks cover malformed manifests, nonportable/conflicting bundle paths, bounded UTF-8 input, source dependency protection, complete output hashes, preview access restrictions, and editor read errors. PDF export waits for print layout and fonts before capture.
- Compiler coverage: notes syntax, source locations, literal raw blocks, nested marks and punctuation, relative-layout validation, bounded keyboard math, relationship diagrams, styles, scratch work, study print output, nested rearrangement, and partial shorthand recovery.
examples/composable-notes.hmnexports a two-page PDF; both pages were visually reviewed.examples/learning-notes.hmnalso exports a PDF. Visual inspection checked the editor and printed specimen; a source bundle was also generated.
These checks are not exhaustive accessibility certification or proof of every possible layout. Connections across printed pages use reference links; automatic keyboard math is notation, not symbolic verification. See NOTES.md for feature contracts.
Historical 0.1.0 validation
Local validation performed on 2026-09-11. These results apply to this implementation and environment, not every feature described in the exploratory catalogue.
Environment
- macOS 26.6.2, Apple Silicon.
- Python 3.12.14; Playwright 1.62.0; Chromium 151.0.7922.34.
- Pygments 2.21.0; Pint 0.26.1; RDKit 2026.3.6.
- Bundled Paged.js 0.4.3, MathJax 3.2.2, model-viewer 4.3.1, and local Inter/Libre Baskerville fonts.
Automated checks
pytest -q: 89 passed, including 12 browser/PDF integration tests.ruff check .: passed.mypy src/hamen_markup: passed across 18 Python source files, using the project's gradual type-checking configuration.- Wheel and source distribution builds: passed.
- Clean, independent virtual environment: installed the wheel with the PDF extra, imported the installed package, validated an example, and exported HTML and PDF without importing the editable source tree.
- Source bundle: compiled, packed, checksum-verified, and round-trip tested.
The integration suite checks real browser geometry, repeated furniture, page masters, footnotes, mixed page dimensions, logical numbering restarts, flow preservation and overflow, constraints, narrow-screen layout, local controls, offline model loading/rotation, print fallbacks, and PDF text, dimensions, links, and tags.
Visual review
Seven executable examples produce HTML documents. Six also have PDF specimens in output/pdf/: editorial (2 pages), getting started (1), interactive 3D with a static poster (1), layout laboratory (1 landscape), page masters (2), and science (1). The responsive example is reviewed as a web document.
PDF specimens are rendered with Poppler for visual inspection. Checks include text visibility, chemistry/math sizing, chart and table alignment, footnote placement, repeating headers and footers, page numbers, and clipping. Browser screenshots and PDF page images are in output/playwright/.
Pagination waits for fonts introduced by its generated stylesheet before signaling readiness, so immediate exports wait for those resources as well as the original document fonts.
Local development environment
This host marks the editable-install .pth file as hidden, which its Python build skips. The configured .venv therefore also has a direct development symlink from its site-packages/hamen_markup to src/hamen_markup. Source edits remain live; the symlink is local environment state and is not included in distributions. Ordinary fresh environments use the standard editable-install instructions in the README.
Not certified
No remote release or CI run was performed. Cross-platform/browser equivalence, exhaustive accessibility conformance, PDF/A, PDF/X, PDF/UA, and automated pixel-baseline regression coverage are not certified. See IMPLEMENTATION.md for the exact feature boundaries.