The typesetter should render OpenITI mARkdown through a semantic layout model, not directly from raw source lines.
- Normalize source lines without losing structural markers.
- Parse with the upstream OpenITI parser where possible.
- Convert parser output into ordered layout blocks.
- Render each block type with its own typography.
page_reference: source page marker, rendered marginally.paragraph: authorial prose.apparatus_note: editorial/takhrij/source apparatus, rendered smaller and muted.invocation,praise,quran_citation,verse_pair,verse_line: semantic text.- headings and special OpenITI context tags: rendered according to hierarchy.
PageV..P..is structural, not visible prose.ms####andMilestone####are source milestones, not visible prose.+is a source separator. It is hidden by default.- A
+segment becomesapparatus_noteonly when it matches apparatus grammar such asحديث ...,أثر ...,تنبيه ...,قلت ..., orقال المحقق .... - Other
+segments remain authorial prose.
- Body text may use native paragraph justification.
- Manual tatweel/kashida is optional polish and must never be required for correct layout.
- Apparatus notes are never kashida-justified.
- Mixed LTR/RTL runs should be isolated before layout, but isolates must not be stored as user-visible word text.