Extreme Scripts Playground
Stress-test the pdfnative shaping pipeline against the most demanding inputs: deep BiDi mixing across 3+ scripts, Tamil ultra-conjuncts, Bengali & Devanagari with reph + multi-halant ligature chains, isolated Arabic harakat, since 1.8.0 Tai Tham and Cham, the two scripts shaped by the Universal Shaping Engine, and — since 1.9.0 — right-to-left paragraphs under the whole of UAX #9: direction: 'auto' aligns them to the right, justifies them in visual order, pairs their brackets and honours isolates. Pick a preset, edit the text, and click Generate PDF.
Document title
Heading (H1)
Body paragraphs (one per line; blank line for a new paragraph)
Each paragraph takes the direction of its first strong letter (UAX #9 P2/P3) and its lines are resolved once over the whole paragraph; glyph order follows it. Under direction: 'auto' (1.9.0) a right-to-left paragraph is also aligned to the right and justified in visual order — the rtl preset sets it; the other presets keep the left alignment of a document built without the option.
View underlying code
- Universal Shaping Engine (1.8.0) — Tai Tham (Lanna) sakot stacks, pre-base vowels and medial consonants, and Cham pre-base vowel reordering, medials and finals, shaped from the generated USE data in
src/shaping/. The preset above registersnodandcjmand renders a paragraph of each. - Arabic harakat (تشكيل — fatha, kasra, damma, sukun, shadda…) now anchor on the preceding base glyph using font-provided GPOS MarkBasePos data, with fallback to (0, 0) when anchors are missing. Closes the visual half of #25.
- UAX #9 isolates (LRI / RLI / FSI / PDI, U+2066–U+2069) handled via three-tier dispatcher with full recursion. Nested and unmatched isolates supported.
- One Indic OpenType engine (since 1.8.0) — Bengali, Tamil and Devanagari (Telugu and Sinhala too) apply the font's own
rphf/half/blwf/pstf/akhn/presfeatures per syllable, so the reph lands over the consonant after the base, the Tamil i-matra stays right of its consonant, and every vowel sign takes the anchor the font declares; Arabic keeps its positional shaper and shares the mark-attachment helper.
UAX #9 explicit embeddings (LRE / RLE / LRO / RLO / PDF) with character-level X4–X5 direction overrides, and native COLRv1 colour emoji, are now shipped — try the embeddings & colour-emoji presets above.