Skip to content

MediatrixLibre/Mediatrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mediatrix

An editorial Marian study library.
Fifteen hand-designed pages on Mary as Mediatrix and Co-Redemptrix.
Patristic. Medieval. Magisterial.

Live site  ·  Build spec  ·  Design system  ·  Data pipeline

Static HTML No framework Self-hosted fonts License


What this is

Mediatrix is a fifteen-page editorial archive of the Marian witness across twenty centuries, the patristic Fathers, the medieval Doctors, the modern Magisterium, gathered into a single quiet study library. Every claim is anchored. Every quotation is tagged for provenance: verbatim, traditional, disputed, liturgical, or magisterial. The site reads as a printed missal would: heavy with restraint, light with gold, ordered by feast.

The codebase is intentionally small. Static HTML, hand-written CSS, vanilla JavaScript. No framework. No build step inside site/. Twenty-seven self-hosted woff2 fonts, nothing fetched from a third-party CDN at read-time. A Python data pipeline (tools/, stdlib only) regenerates the structured JSON layer from a thirteen-file markdown corpus when the sources change.

The fifteen pages

Page Vestment What it carries
index.html blue Hero, today's feast, recent saints, resume reading
library.html blue Twelve eras of Marian witness, era by era
ot-types.html blue Twenty-eight Old Testament types of Our Lady
nt-texts.html blue Three load-bearing New Testament passages
anthology.html blue Fifty-seven saints, in their own words
rosary.html white Twenty mysteries, with scriptural and patristic glosses
litany.html blue The Litany of Loreto, fifty-four titles annotated
office.html blue Office of Readings: fifteen second-readings sourcebook
akathist.html blue The Akathist, twenty-four stanzas, Greek, English facing
defense.html red Twelve Protestant objections, twelve patristic replies
feasts.html blue The eighteen Marian feasts of the liturgical year
apparitions.html blue The seven principal Church-approved apparitions
iconography.html blue The four canonical Marian icon-types, with provenance
search.html blue Client-side fuzzy search across the whole corpus
about.html blue Methodology, provenance criteria, source notes

The two layers

  1. Editorial layer. Fifteen hand-designed HTML pages at site/*.html. The visible site. Each page is per-section bespoke. No template engine, no shared layout file: every page is tuned by hand.
  2. Data layer. Fourteen normalised JSON files at site/data/*.json, generated by the Python pipeline in tools/ from the canonical thirteen-file markdown corpus at $MARIOLOGY_CORPUS/. Each file carries schema_version, source_mtime, generated_at, and the structured records (saints, titles, types, mysteries, apparitions, feasts, ...). The HTML does not read the JSON at runtime , pages are hand-set against the markdown directly. The JSON exists for regeneration, cross-page validation, search-index rebuild, and any future template-driven hydration.

Design DNA

Editorial Catholic register. The palette is Marian: deep navy ink (#0C2340), Marian blue accent (#1E3A6E), Notre Dame gold (#C99700), mystical rose (#B66D87). Display in Cinzel, body in Source Serif 4, meta in Source Sans 3, numerics in JetBrains Mono. Six vestment washes echo the liturgical year; the default is blue. Day mode reads as paper under noon light; Vigil mode reads as gilt under tapers.

The only symbolic glyph is the Stella Maris, an eight-pointed gold star, appearing in the favicon, the index ornament, and the colophon rule. No decorative imagery. No emoji. No gradients used for decoration. No drop-shadow flourish.

Deep-history asides — the Marian Psalter's history, the Luminous mysteries' Bartolo Longo backstory, the Litany of Loreto's papal succession, the Sub Tuum's third-century papyrus, the Salve Regina's Hermann of Reichenau, the Memorare's seventeenth-century Paris parish, the Genesis 3:15 / Revelation 12 Marian bookends of Scripture — live in seven popover-cards across four surfaces, each opened by a small editorial chip near the relevant heading. The popover pattern uses the native HTML popover API; no JS modal library; the cards hide on paper.

Eight commands

make serve         # start the local preview on :8000
make check         # quick health (file counts, anchors, raw hex outside :root)
make stop          # kill the local preview
make clean         # remove tmp/ and pyc cruft
make build-data    # regenerate site/data/*.json from the markdown corpus
make verify-data   # verify all JSON outputs exist + record counts
make clean-data    # rm site/data/*.json
make help          # list every target

Folder map

Mediatrix/
├── site/                ← the live site. Open via `make serve`.
│   ├── *.html              15 hand-designed pages
│   ├── styles/             mediatrix.css (tokens + components) · fonts.css
│   ├── scripts/            mediatrix.js (mode, recents, resume)
│   ├── fonts/              27 self-hosted woff2
│   ├── data/               14 generated JSON files
│   ├── SPEC.md             page-by-page acceptance contract
│   └── design.md           token table · rhythm · type rules
├── tools/               ← data pipeline (markdown → JSON, stdlib only)
│   ├── build-mediatrix.py     main script: 13 extractors + search-index builder
│   ├── lib/parser.py          parsing primitives (frontmatter, sections, blockquotes)
│   ├── validate-references.py cross-page validator
│   └── README.md              pipeline documentation
├── docs/                ← extended editorial notes
├── scripts/             ← repo-management helpers (GitHub setup, etc.)
├── .env.example         ← copy to .env.local and set MARIOLOGY_CORPUS
├── Makefile
├── CITATION.cff
├── LICENSE              ← CC BY-NC-SA 4.0 (content) + MIT (code)
└── README.md

Hard rules

  1. Tokens only in styles/mediatrix.css :root. No raw hex elsewhere.
  2. <main id="main"> on every page; skip-link present and visible on focus.
  3. Italic Source Serif used only for Greek, Hebrew, and Latin.
  4. No href="#". No emoji. No gradients for decoration. No drop-shadow.
  5. No build step inside site/. Static HTML, full stop.
  6. Vestment via [data-vestment] on <body>, never via class.
  7. Numbers are specific (54 titles, 28 Old Testament types, 57 saints, 7 apparitions, 18 feasts, 20 mysteries, 7 popover-cards across four surfaces). Vagueness is a defect.
  8. Stella Maris is the only ornament admitted.

Local development

cp .env.example .env.local
# edit .env.local: set MARIOLOGY_CORPUS to your local markdown path
make serve            # opens http://localhost:8000
make build-data       # regenerate JSON layer (only if you have the corpus)

If MARIOLOGY_CORPUS is unset and ./corpus/mariology/ does not exist, the pipeline will exit early with a clear error. The HTML still renders fine without the JSON regenerated, pages are hand-set against the markdown directly.

Citing

If you reference Mediatrix in scholarship or homiletic preparation, see CITATION.cff for the canonical citation form.

License

  • Editorial content (prose, anthology, annotations), CC BY-NC-SA 4.0
  • Source code (Python, CSS, JavaScript, Makefile), MIT
  • Fonts, SIL Open Font License 1.1 (per the woff2 files)
  • Quoted patristic / medieval / magisterial sources, retain their public-domain or original-publisher status; quoted under editorial / fair-use commentary.

See LICENSE for full terms.

Contact

mediatrixdev@proton.me


Sub tuum praesidium confugimus, Sancta Dei Genitrix.

About

An editorial Marian study library: fifteen hand-designed pages on Mary as Mediatrix and Co-Redemptrix, drawn from a thirteen-file markdown corpus of patristic, medieval, and magisterial witness.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors