SyllableFeature
Extends
Properties
FEATURE
FEATURE:
"syllable"
Additional orthographic feature:
"cluster"
is any combination of a single character and optionally a dagesh and vowel."syllable"
is any combination of a multiple characters and a single vowel and optionally a dagesh"word"
covers everything else
Defined in
HEBREW
HEBREW:
string
|RegExp
The Hebrew text — use consonants and vowels; do not use taamim
Remarks
The text is parsed as a Regex so special characters like ?
and |
can be used
Inherited from
Defined in
PASS_THROUGH?
optional
PASS_THROUGH:boolean
If true
passes the characters of the result of the TRANSLITERATION
callback to the be mapped to the schema.
If TRANSLITERATION
is a string, this does nothing.
Default
true
Examples
// with PASS_THROUGH true or undefined; the rest of the characters are passed through// to regular mapping on the schemaheb.transliterate("בְּרֵאשִׁ֖ית", { ADDITIONAL_FEATURES: [{ HEBREW: "(?<![\u{05B1}-\u{05BB}\u{05C7}].*)\u{05B0}", FEATURE: "syllable", PASS_THROUGH: true, TRANSLITERATION: function (syllable, _hebrew, schema) { const next = syllable.next; const nextVowel = next.vowelName === "SHEVA" ? "VOCAL_SHEVA" : next.vowelName
if (next && nextVowel) { const vowel = schema[nextVowel] || ""; return syllable.text.replacenew RegExp("\u{05B0}", "u"; vowel); }
return syllable.text; } }]});
// with PASS_THROUGH false, a custom mapping needs to be implemented,// or Hebrew characters are returned for the rest of the `FEATURE`heb.transliterate("בְּרֵאשִׁ֖ית", { ADDITIONAL_FEATURES: [{ HEBREW: "(?<![\u{05B1}-\u{05BB}\u{05C7}].*)\u{05B0}", FEATURE: "syllable", PASS_THROUGH: false, TRANSLITERATION: function (syllable, _hebrew, schema) { const next = syllable.next; const nextVowel = next.vowelName === "SHEVA" ? "VOCAL_SHEVA" : next.vowelName
if (next && nextVowel) { const vowel = schema[nextVowel] || ""; return syllable.text.replacenew RegExp("\u{05B0}", "u"; vowel); }
return syllable.text; } }]});// בּērēʾšît
Remarks
This is generally most useful when the callback does not transliterate the entire FEATURE
Inherited from
Defined in
TRANSLITERATION
TRANSLITERATION:
string
|SyllableCallback
A string or callback to customize output
Examples
Using a string
transliterate("מְחִיּיָאֵ֗ל", { ADDITIONAL_FEATURES: [{ FEATURE: "syllable", HEBREW: /יּ(?![\u{05B4}-\u{05BB}])/u, // a yod with a dagesh, not followed by a vowel character TRANSLITERATION: "Y" }]});
məḥiYyāʾēl
Using a callback
transliterate("נָעֳמִי֙", { ADDITIONAL_FEATURES: [{ FEATURE: "syllable", HEBREW: /\u{05C7}/u, TRANSLITERATION: (syllable) => { // If the syllable contains a qamets qatan character (U+05C7), check the text of the next syllable const next = syllable?.next?.value?.text;
// If the next syllable includes a hateph qamets, then replace the qamets qatan with a regular qamets if (next && next.includes("\u05B3")) { return syllable.text.replace("\u{05C7}", "\u{05B8}"); } return syllable.text; } }]});
// nāʿŏmî