Skip to content

Syllable

Defined in: syllable.ts:40

A subunit of a Word consisting of consonants, vowels, and other linguistic and ortographic features.

new Syllable(clusters, options?): Syllable

Defined in: syllable.ts:64

Creates a new Syllable

Parameter Type Description
clusters Cluster[] an array of Cluster
options SyllableParams optional parameters

Syllable

new Syllable([new Cluster("אָ"), new Cluster("ב")]);

See the Syllabification page for how a syllable is determined. Currently, the Divine Name (e.g. יהוה), non-Hebrew text, and Hebrew punctuation (e.g. passeq, nun hafucha) are treated as a single syllable because these do not follow the rules of Hebrew syllabification.

Node.constructor

children: Node<Cluster, any, any>[] | null = null

Defined in: node.ts:21

Collection of child nodes.

Node.children


next: Node<Syllable, null, null> | null = null

Defined in: node.ts:11

Next sibling in the sequence.

Node.next


parent: Node<Word, any, any> | null = null

Defined in: node.ts:18

Reference to the parent container.

Node.parent


prev: Node<Syllable, null, null> | null = null

Defined in: node.ts:13

Previous sibling in the sequence.

Node.prev


value: Syllable | null = null

Defined in: node.ts:15

Node data.

Node.value

get chars(): Char[]

Defined in: syllable.ts:93

Gets all the Characters in the Syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables[2].chars;
// [
// Char { original: "ר" },
// Char { original: "ָ" },
// Char { original: "" }, i.e. \u{05A8} (does not print well)
// Char { original: "א" }
// ]

Char[]

a one dimensional array of characters


get clusters(): Cluster[]

Defined in: syllable.ts:112

Gets all the Clusters in the Syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables[1].clusters;
// [
// Cluster { original: "יִּ" },
// Cluster { original: "קְ" }
// ]

Cluster[]

a one dimensional array of clusters


get coda(): string

Defined in: syllable.ts:128

Gets the coda of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].coda;
// "ם"

string

the coda of the syllable as a string, including any taamim and ignoring gemination of the following syllable - see codaWithGemination


get codaWithGemination(): string

Defined in: syllable.ts:146

Gets the coda of the syllable, including gemination of the following syllable - see structure

const text = new Text("מַדּ֥וּעַ");
text.syllables[0].codaWithGemination;
// "דּ"
text.syllables[0].coda // without gemination
// ""

string

the coda of the syllable as a string, including any taamim and including gemination of the following syllable - see structure


get consonantNames(): ("ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV")[]

Defined in: syllable.ts:188

Gets the names of the consonant characters of the syllable

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].consonantNames;
// ["AYIN", "YOD", "FINAL_MEM"]

This returns a one dimensional array of consonant names, even if the characters are not phonemic consonants, meaning even the name of maters are returned. See the structure method if you need the consonants with phonemic value.

("ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV")[]

a one dimensional array of consonant character names


get consonants(): ("א" | "ב" | "ג" | "ד" | "ה" | "ו" | "ז" | "ח" | "ט" | "י" | "ך" | "כ" | "ל" | "ם" | "מ" | "ן" | "נ" | "ס" | "ע" | "ף" | "פ" | "ץ" | "צ" | "ק" | "ר" | "ש" | "ת")[]

Defined in: syllable.ts:168

Gets the consonant characters of the syllable

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].consonants;
// ["ע", "י", "ם"]

This returns a one dimensional array of consonant characters, even if the characters are not phonemic consonants, meaning even maters are returned as consonant characters. See the structure method if you need the consonants with phonemic value.

("א" | "ב" | "ג" | "ד" | "ה" | "ו" | "ז" | "ח" | "ט" | "י" | "ך" | "כ" | "ל" | "ם" | "מ" | "ן" | "נ" | "ס" | "ע" | "ף" | "פ" | "ץ" | "צ" | "ק" | "ר" | "ש" | "ת")[]

a one dimensional array of consonant characters


get isAccented(): boolean

Defined in: syllable.ts:292

Checks if the Syllable is accented

const text = new Text("וַיִּקְרָ֨א"); // note the taam over the ר
text.syllables[0].isAccented; // i.e. "וַ"
// false
text.syllables[2].isAccented; // i.e. "רָ֨א"
// true

An accented syllable receives stress, and is typically indicated by the presence of a taam character

boolean

true if Syllable is accented

set isAccented(accented): void

Defined in: syllable.ts:302

Sets whether the Syllable is accented

Parameter Type Description
accented boolean a boolean indicating if the Syllable is accented

void


get isClosed(): boolean

Defined in: syllable.ts:323

Checks if the Syllable is closed

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].isClosed; // i.e. "וַ"
// true
text.syllables[2].isClosed; // i.e. "רָ֨א"
// false

A closed syllable in Hebrew is a CVC or CVCC type, a mater letter does not close a syllable

boolean

true if Syllable is closed

set isClosed(closed): void

Defined in: syllable.ts:333

Sets whether the Syllable is closed

Parameter Type Description
closed boolean a boolean for whether the Syllable is closed

void


get isFinal(): boolean

Defined in: syllable.ts:351

Checks if the Syllable is the final syllable in a Word

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].isFinal; // i.e. "וַ"
// false
text.syllables[2].isFinal; // i.e. "רָ֨א"
// true

boolean

true if Syllable is final


get isInitial(): boolean

Defined in: syllable.ts:369

Checks if the Syllable is the initial syllable in a Word

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].isInitial; // i.e. "וַ"
// true
text.syllables[2].isInitial; // i.e. "רָ֨א"
// false

boolean

true if Syllable is initial


get nucleus(): string

Defined in: syllable.ts:387

Returns the nucleus of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].nucleus;
// "\u{05B8}\u{05A5}""

The nucleus is the vowel of the syllable - present in every syllable and containing its vowel (with any materes lecticonis) or a shureq.

string

the nucleus of the syllable as a string, including any taamim - see structure


get onset(): string

Defined in: syllable.ts:405

Returns the onset of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].onset;
// "י"

The onset is any initial consonant of the syllable - present in every syllable except those containing a except word-initial shureq or a furtive patah.

string

the onset of the syllable as a string - see structure


get position(): number

Defined in: syllable.ts:423

Returns the position of the Syllable within its Word

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].position;
// 0
text.syllables[2].position;
// 2

number

the position of the Syllable, or -1 if the Syllable is not part of a Word


get siblings(): Node<Self, Child, any>[]

Defined in: node.ts:45

Retrieves all subsequent nodes in the current sibling chain.

Node<Self, Child, any>[]

set siblings(arr): void

Defined in: node.ts:29

Connects an array of nodes as a doubly-linked sibling chain starting after this node.

Parameter Type
arr Node<Self, Child, any>[]

void

Node.siblings


get taamim(): ("֑" | "֒" | "֓" | "֔" | "֕" | "֖" | "֗" | "֘" | "֙" | "֚" | "֛" | "֜" | "֝" | "֞" | "֟" | "֠" | "֡" | "֢" | "֣" | "֤" | "֥" | "֦" | "֧" | "֨" | "֩" | "֪" | "֫" | "֬" | "֭" | "֮")[]

Defined in: syllable.ts:565

Gets all the taamim characters in the Syllable

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].taamim;
// ["\u{596}"]

("֑" | "֒" | "֓" | "֔" | "֕" | "֖" | "֗" | "֘" | "֙" | "֚" | "֛" | "֜" | "֝" | "֞" | "֟" | "֠" | "֡" | "֢" | "֣" | "֤" | "֥" | "֦" | "֧" | "֨" | "֩" | "֪" | "֫" | "֬" | "֭" | "֮")[]

a one dimensional array of taamim characters in the syllable


get taamimNames(): ("ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR")[]

Defined in: syllable.ts:581

Gets all the taamim names in the Syllable

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].taamimNames;
// ["TIPEHA"]

("ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR")[]

a one dimensional array of taamim names in the syllable


get text(): string

Defined in: syllable.ts:604

The text of the syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables.map((syl) => syl.text);
// [
// "וַ"
// "יִּקְ"
// "רָ֨א"
// ]

This returns a string that has been built up from the .text of its constituent Clusters.

string

the sequenced and normalized text of the syllable


get vowelNames(): ("HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ")[]

Defined in: syllable.ts:627

Gets the names of the vowel characters in the syllable

const text = new Text("מִתָּ֑͏ַ֜חַת");
text.syllables[1].vowelNames;
// ["QAMATS", "PATAH"]

This returns an array of names of vowel characters in the syllable, but not for mater lectionis (e.g. a holam vav would return the HOLAM, not the vav). The only exception is a shureq, which returns “SHUREQ” because there is no vowel character for a shureq. It is very uncommon to have multiple vowel characters in a syllable. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character.

("HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ")[]

an array of names of vowel characters in the syllable


get vowels(): ("ֱ" | "ֲ" | "ֳ" | "ִ" | "ֵ" | "ֶ" | "ַ" | "ָ" | "ֹ" | "ֺ" | "ֻ" | "ׇ" | "ְ" | "וּ")[]

Defined in: syllable.ts:663

Gets the vowel characters of the syllable

const text = new Text("מִתָּ֑͏ַ֜חַת");
text.syllables[1].vowels;
// ["\u{05B8}", "\u{05B7}"]

This returns a single vowel character, even for most mater lectionis (e.g. a holam vav would return the holam, not the vav). The only exception is a shureq, which returns the vav and the dagesh because there is no vowel character for a shureq. It is very uncommon to have multiple vowel characters in a syllable. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character

("ֱ" | "ֲ" | "ֳ" | "ִ" | "ֵ" | "ֶ" | "ַ" | "ָ" | "ֹ" | "ֺ" | "ֻ" | "ׇ" | "ְ" | "וּ")[]

an array of vowel characters in the syllable


get word(): Word | null

Defined in: syllable.ts:702

Gets the Word to which the syllable belongs

const text = new Text("הָאָ֖רֶץ");
text.syllables[0].word;
// Word {
// text: "הָאָ֖רֶץ"
// }

Word | null

the Word to which the syllable belongs

hasConsonantName(name): boolean

Defined in: syllable.ts:209

Checks if the syllable contains the consonant character matching the name passed in

Parameter Type
name "ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV"

boolean

a boolean indicating if the syllable contains the consonant character matching the name passed in

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].hasConsonantName("AYIN");
// true
text.syllables[2].hasConsonantName("YOD");
// false

This checks if the syllable contains the given consonant name, even if the character is not a phonemic consonant.


hasTaamName(name): boolean

Defined in: syllable.ts:268

Checks if the syllable contains the taamim character of the name passed in

Parameter Type
name "ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR"

boolean

a boolean indicating if the syllable contains the taamim character of the name passed in

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].hasTaamName("TIPEHA");
// true

Note: it only checks according to the character name, not its semantic meaning. E.g. “כֵֽן׃” would be true when checking for "METEG", not silluq


hasVowelName(name): boolean

Defined in: syllable.ts:244

Checks if the syllable contains the vowel character of the name passed in

Parameter Type
name "HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ"

boolean

a boolean indicating if the syllable contains the vowel character of the name passed in

const text = new Text("הַיְחָבְרְךָ");
text.syllables[0].hasVowelName("PATAH");
// true
// test for vocal sheva
text.syllables[1].hasVowelName("SHEVA");
// true
// test for silent sheva
text.syllables[2].hasVowelName("SHEVA");
// false

This returns a boolean if the vowel character is present, even for most mater lectionis (e.g. in a holam vav construction, “HOLAM” would return true) The only exception is a shureq, because there is no vowel character for a shureq. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character. It returns true for “SHEVA” only when the sheva is the vowel (i.e. a vocal sheva or sheva na’).


structure(withGemination?): [string, string, string]

Defined in: syllable.ts:450

Returns the structure of the syllable

Parameter Type Default value Description
withGemination boolean false If this argument is true, include gemination of the next syllable’s onset in this syllable’s coda.

[string, string, string]

the structure of the Syllable, i.e. the syllable’s onset, nucleus, and coda.

const text = new Text("מַדּוּעַ");
text.syllables.map(s => s.structure(true));
// [
// [ 'מ', 'ַ', 'דּ' ],
// [ 'דּ', 'וּ', '' ], NOTE: the dalet is the onset, but rendering can sometimes causes the blank string to appear to be first
// [ '', 'ַ', 'ע' ]
// ]
  • The onset is any initial consonant of the syllable - present in every syllable except those containing a except word-initial shureq or a furtive patah.
  • The nucleus is the vowel of the syllable - present in every syllable and containing its vowel (with any materes lecticonis) or a shureq.
  • The coda is all final consonants of the syllable - not including any matres lecticonis, and including the onset of the subsequent syllable if the subsequent syllable is geminated and the withGemination argument is true.