Home  ›  Playgrounds  ›  Extreme scripts

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
Shaping & BiDi coverage:
  • 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 registers nod and cjm and 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 / pres features 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.