You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/pitfall/fontkit/shapers.rkt

73 lines
2.7 KiB
Racket

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#lang fontkit/racket
(require "default-shaper.rkt")
(provide (all-defined-out))
#|
approximates
https://github.com/mbutterick/fontkit/blob/master/src/opentype/shapers/index.js
|#
;; todo: alternative shapers
(define SHAPERS
(hasheq
; 'arab ArabicShaper ;; Arabic
; 'mong ArabicShaper ;; Mongolian
; 'syrc ArabicShaper ;; Syriac
; '|nko | ArabicShaper ;; N'Ko
; 'phag ArabicShaper ;; Phags Pa
; 'mand ArabicShaper ;; Mandaic
; 'mani ArabicShaper ;; Manichaean
; 'phlp ArabicShaper ;; Psalter Pahlavi
;
; 'hang HangulShaper ;; Hangul
;
; 'bali UniversalShaper ;; Balinese
; 'batk UniversalShaper ;; Batak
; 'brah UniversalShaper ;; Brahmi
; 'bugi UniversalShaper ;; Buginese
; 'buhd UniversalShaper ;; Buhid
; 'cakm UniversalShaper ;; Chakma
; 'cham UniversalShaper ;; Cham
; 'dupl UniversalShaper ;; Duployan
; 'egyp UniversalShaper ;; Egyptian Hieroglyphs
; 'gran UniversalShaper ;; Grantha
; 'hano UniversalShaper ;; Hanunoo
; 'java UniversalShaper ;; Javanese
; 'kthi UniversalShaper ;; Kaithi
; 'kali UniversalShaper ;; Kayah Li
; 'khar UniversalShaper ;; Kharoshthi
; 'khoj UniversalShaper ;; Khojki
; 'sind UniversalShaper ;; Khudawadi
; 'lepc UniversalShaper ;; Lepcha
; 'limb UniversalShaper ;; Limbu
; 'mahj UniversalShaper ;; Mahajani
; ';; mand UniversalShaper ;; Mandaic
; ';; mani UniversalShaper ;; Manichaean
; 'mtei UniversalShaper ;; Meitei Mayek
; 'modi UniversalShaper ;; Modi
; ';; mong UniversalShaper ;; Mongolian
; ';; 'nko ' UniversalShaper ;; NKo
; 'hmng UniversalShaper ;; Pahawh Hmong
; ';; phag UniversalShaper ;; Phags-pa
; ';; phlp UniversalShaper ;; Psalter Pahlavi
; 'rjng UniversalShaper ;; Rejang
; 'saur UniversalShaper ;; Saurashtra
; 'shrd UniversalShaper ;; Sharada
; 'sidd UniversalShaper ;; Siddham
; 'sinh UniversalShaper ;; Sinhala
; 'sund UniversalShaper ;; Sundanese
; 'sylo UniversalShaper ;; Syloti Nagri
; 'tglg UniversalShaper ;; Tagalog
; 'tagb UniversalShaper ;; Tagbanwa
; 'tale UniversalShaper ;; Tai Le
; 'lana UniversalShaper ;; Tai Tham
; 'tavt UniversalShaper ;; Tai Viet
; 'takr UniversalShaper ;; Takri
; 'tibt UniversalShaper ;; Tibetan
; 'tfng UniversalShaper ;; Tifinagh
; 'tirh UniversalShaper ;; Tirhuta
'latn DefaultShaper ;; Latin
'DFLT DefaultShaper)) ;; Default
(define (choose script)
(dict-ref SHAPERS script DefaultShaper))