Cluster
Defined in: cluster.ts:29
A cluster is group of Hebrew character constituted by:
- an obligatory Hebrew consonant character
- an optional ligature mark
- an optional vowel
- an optional taam
Remarks
A Syallble is a linguistic unit, whereas a Cluster is an orthgraphic one.
The word יֹו֑ם
is only one syllable, but it has three clusters—יֹ
, ו֑
, ם
.
Because Hebrew orthography is both sub and supra linear, clusters can be encoded in various ways.
Every character is sequenced first for normalization, see the SBL Hebrew Font Manual, p.8.
Extends
Node
<Cluster
>
Constructors
Constructor
new Cluster(
cluster
,noSequence
):Cluster
Defined in: cluster.ts:57
Creates a new cluster
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
cluster | string | undefined | the original cluster |
noSequence | boolean | false | whether to sequence the cluster |
Returns
Cluster
Example
const str = "הָ";const cluster = new Cluster(str);cluster.text;// "הָ"
Overrides
Properties
next
next:
null
|Node
<Cluster
>
Defined in: node.ts:9
Reference to the next node in the sequence.
Inherited from
prev
prev:
null
|Node
<Cluster
>
Defined in: node.ts:12
Reference to the previous node in the sequence.
Inherited from
value
value:
null
|Cluster
Defined in: node.ts:15
The value stored in this node.
Inherited from
Accessors
chars
Get Signature
get chars():
Char
[]
Defined in: cluster.ts:93
Gets all the characters in the cluster
Example
const text = new Text("הֲבָרֹות");text.clusters[0].chars;// [// Char { original: "ה" },// Char { original: "ֲ " }, i.e. \u{05B2} (does not print well)// ]
Returns
Char
[]
an array of sequenced Char objects
consonantNames
Get Signature
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: cluster.ts:145
Gets all consonant names in the cluster.
Example
const text = new Text("הֲבָרֹות");text.clusters[0].consonantNames;// ["HE"]
Warning
This can only every return one consonant, as a Cluster
is defined by having only one consonant.
Though it is impossible to have two consonants in a cluster, this api is meant for consistency with vowelNames
and taamimNames
Returns
("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"
)[]
an array of the consonant names in the cluster
consonants
Get Signature
get consonants(): (
"א"
|"ב"
|"ג"
|"ד"
|"ה"
|"ו"
|"ז"
|"ח"
|"ט"
|"י"
|"ך"
|"כ"
|"ל"
|"ם"
|"מ"
|"ן"
|"נ"
|"ס"
|"ע"
|"ף"
|"פ"
|"ץ"
|"צ"
|"ק"
|"ר"
|"ש"
|"ת"
)[]
Defined in: cluster.ts:113
Gets all the consonant characters in the cluster
Example
const text = new Text("הֲבָרֹות");text.clusters[0].consonants;// ["ה"]
Warning
This can only every return one consonant, as a Cluster
is defined by having only one consonant.
Though it is impossible to have two consonants in a cluster, this api is meant for consistency with vowels
and taamim
Returns
("א"
| "ב"
| "ג"
| "ד"
| "ה"
| "ו"
| "ז"
| "ח"
| "ט"
| "י"
| "ך"
| "כ"
| "ל"
| "ם"
| "מ"
| "ן"
| "נ"
| "ס"
| "ע"
| "ף"
| "פ"
| "ץ"
| "צ"
| "ק"
| "ר"
| "ש"
| "ת"
)[]
an array of the consonant characters in the cluster
hasHalfVowel
Get Signature
get hasHalfVowel():
boolean
Defined in: cluster.ts:203
Checks if the cluster contains a half-vowel
Example
const text = new Text("הֲבָרֹות");text.clusters[0].hasHalfVowel;// truetext.clusters[1].hasHalfVowel;// false
Description
The following characters are considered half-vowels:
- \u{05B1} HATAF SEGOL
- \u{05B2} HATAF PATAH
- \u{05B3} HATAF QAMATS
Returns
boolean
a boolean indicating if the cluster contains a half-vowel
hasLongVowel
Get Signature
get hasLongVowel():
boolean
Defined in: cluster.ts:228
Checks if the cluster contains a long vowel
Example
const text = new Text("הֲבָרֹות");text.clusters[0].hasLongVowel;// falsetext.clusters[1].hasLongVowel;// true
Description
The following characters are considered long vowels:
- \u{05B5} TSERE
- \u{05B8} QAMATS
- \u{05B9} HOLAM
- \u{05BA} HOLAM HASER FOR VAV
Returns
boolean
a boolean indicating if the cluster contains a long vowel
hasMeteg
Get Signature
get hasMeteg():
boolean
Defined in: cluster.ts:269
Checks if the cluster contains a meteg
Description
Checks if the following character is present and a sof pasuq does not follow it:
- \u{05BD} METEG
Returns
boolean
a boolean indicating if the cluster contains a meteg
const text = new Text("נַפְשִֽׁי׃");text.clusters[2].hasMetheg;// true
hasMetheg
Get Signature
get hasMetheg():
boolean
Defined in: cluster.ts:250
Checks if the cluster contains a meteg
Example
const text = new Text("נַפְשִֽׁי׃");text.clusters[2].hasMetheg;// true
Description
Checks if the following character is present and a sof pasuq does not follow it:
- \u{05BD} METEG
Returns
boolean
a boolean indicating if the cluster contains a meteg
hasSheva
Get Signature
get hasSheva():
boolean
Defined in: cluster.ts:308
Checks if the cluster contains a sheva
Example
const text = new Text("מַלְכָּה");text.clusters[0].hasSheva;// falsetext.clusters[1].hasSheva;// true
Description
Checks if the following character is present:
- \u{05B0} SHEVA
Returns
boolean
a boolean indicating if the cluster contains a sheva
hasShewa
Get Signature
get hasShewa():
boolean
Defined in: cluster.ts:332
Checks if the cluster contains a sheva
Example
const text = new Text("מַלְכָּה");text.clusters[0].hasSheva;// falsetext.clusters[1].hasSheva;// true
Description
Checks if the following character is present:
- \u{05B0} SHEVA
Returns
boolean
a boolean indicating if the cluster contains a sheva
hasShortVowel
Get Signature
get hasShortVowel():
boolean
Defined in: cluster.ts:358
Checks if the cluster contains a short vowel
Example
const text = new Text("מַלְכָּה");text.clusters[0].hasShortVowel;// truetext.clusters[2].hasShortVowel;// false
Description
The following characters are considered short vowels:
- \u{05B4} HIRIQ
- \u{05B6} SEGOL
- \u{05B7} PATAH
- \u{05BB} QUBUTS
- \u{05C7} QAMATS QATAN
Returns
boolean
a boolean indicating if the cluster contains a short vowel
hasSilluq
Get Signature
get hasSilluq():
boolean
Defined in: cluster.ts:378
Checks if the cluster contains a silluq
Example
const text = new Text("הָאָֽרֶץ׃");text.clusters[2].hasSilluq;// true
Description
Checks if the following character is present and a sof pasuq follows it:
- \u{05BD} METEG
Returns
boolean
a boolean indicating if the cluster contains a silluq
hasTaamim
Get Signature
get hasTaamim():
boolean
Defined in: cluster.ts:428
Checks if the cluster contains a taamim character
Example
const text = new Text("אֱלֹהִ֑ים");text.clusters[0].hasTaamim;// falsetext.clusters[2].hasTaamim;// true
Description
The following characters are considered taamim:
- \u{0591}-\u{05AF}\u{05BF}\u{05C0}\u{05C3}-\u{05C6}\u{05F3}\u{05F4}
Returns
boolean
a boolean indicating if the cluster contains a taamim character
hasVowel
Get Signature
get hasVowel():
boolean
Defined in: cluster.ts:450
Checks if the cluster contains any vowel character
Example
const text = new Text("הֲבָרֹות");text.clusters[0].hasVowel;// truetext.clusters[4].hasVowel;// false
Description
According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable.
Because Cluster
is concerned with orthography, a sheva is not a vowel character.
Returns
boolean
a boolean indicating if the cluster contains any vowel character
isMater
Get Signature
get isMater():
boolean
Defined in: cluster.ts:504
Checks if the cluster is a mater letter
Example
const text = new Text("סוּסָה");text.clusters[1].isMater; // the shureq// falsetext.clusters[3].isMater; // the heh// true
Description
Returns true
if Cluster.hasVowel
, Cluster.hasSheva
, Cluster.isShureq
, and Cluster.next.isShureq
are all false
and Cluster.text
contains a:
ה
preceded by a qametsו
preceded by a holemי
preceded by a hiriq, tsere, or segol
There are potentially other instances when a consonant may be a mater (e.g. a silent aleph), but these are the most common.
Though a shureq is a mater letter, it is also a vowel itself, and thus separate from isMater
.
Returns
boolean
a boolean indicating if the cluster is a mater letter
isNotHebrew
Get Signature
get isNotHebrew():
boolean
Defined in: cluster.ts:538
Checks if the Cluster does not have Hebrew chars
Returns
boolean
a boolean indicating if the Cluster does not have Hebrew chars
* const text = new Text("(לְעֹלָם)");text.clusters[0].isNotHebrew;// true
isPunctuation
Get Signature
get isPunctuation():
boolean
Defined in: cluster.ts:561
Checks if the Cluster has any punctuation characters
Example
const text = new Text("הָאָֽרֶץ׃");text.clusters[3].isPunctuation;// true
Description
These are all the Hebrew characters of the category PUNCTUATION
- \u{05BE} HEBREW PUNCTUATION MAQAF ־
- \u{05C0} HEBREW PUNCTUATION PASEQ ׀
- \u{05C3} HEBREW PUNCTUATION SOF PASUQ ׃
- \u{05C6} HEBREW PUNCTUATION NUN HAFUKHA ׆
Returns
boolean
a boolean indicating if the Cluster has any punctuation characters
isShureq
Get Signature
get isShureq():
boolean
Defined in: cluster.ts:585
Checks if the Cluster is a shureq
Description
Returns true
if Cluster.hasVowel
, Cluster.hasSheva
, and Cluster.prev.hasVowel
are all false
and Cluster.text
is a vav followed by a dagesh (e.g. וּ
)
A shureq is a vowel itself, but contains no vowel characters (hence why hasVowel
cannot be true
).
This allows for easier syllabification.
Returns
boolean
a boolean indicating if the Cluster is a shureq
const text = new Text("קוּם");text.clusters[0].isShureq;// falsetext.clusters[1].isShureq;// true
isTaam
Get Signature
get isTaam():
boolean
Defined in: cluster.ts:612
Checks if the Cluster is a taam
Example
const text = new Text("הָאָֽרֶץ׃");text.clusters[3].isTaam;// true
Description
This is an alias for isPunctuation
.
Returns true
is the Cluster is any of the following characters:
- \u{05BE} HEBREW PUNCTUATION MAQAF ־
- \u{05C0} HEBREW PUNCTUATION PASEQ ׀
- \u{05C3} HEBREW PUNCTUATION SOF PASUQ ׃
- \u{05C6} HEBREW PUNCTUATION NUN HAFUKHA ׆
Returns
boolean
a boolean indicating if the Cluster is a taam
original
Get Signature
get original():
string
Defined in: cluster.ts:624
The original string passed
Description
The original string passed to the constructor that has not been normalized or sequenced. See text
Returns
string
the original string passed
siblings
Get Signature
get siblings():
Node
<T
>[]
Defined in: node.ts:63
Gets the siblings of this node.
Returns
Node
<T
>[]
An array of Node
Set Signature
set siblings(
arr
):void
Defined in: node.ts:47
Sets the siblings of this node. Establishes bidirectional links between adjacent nodes in the provided array.
Parameters
Parameter | Type | Description |
---|---|---|
arr | Node <T >[] | An array of Node |
Returns
void
Inherited from
syllable
Get Signature
get syllable():
null
|Syllable
Defined in: cluster.ts:643
The parent Syllable
of the cluster
const text = new Text("דָּבָר");const lastCluster: Cluster = text.clusters[2];lastCluster.text;// "ר"lastCluster.syllable.text;// "בָר"
Description
If created via the Text
class, there should always be a syllable.
Returns
null
| Syllable
Set Signature
set syllable(
syllable
):void
Defined in: cluster.ts:651
Sets the parent Syllable
of the cluster
Parameters
Parameter | Type |
---|---|
syllable | null | Syllable |
Returns
void
taamim
Get Signature
get taamim(): (
"֑"
|"֒"
|"֓"
|"֔"
|"֕"
|"֖"
|"֗"
|"֘"
|"֙"
|"֚"
|"֛"
|"֜"
|"֝"
|"֞"
|"֟"
|"֠"
|"֡"
|"֢"
|"֣"
|"֤"
|"֥"
|"֦"
|"֧"
|"֨"
|"֩"
|"֪"
|"֫"
|"֬"
|"֭"
|"֮"
)[]
Defined in: cluster.ts:666
Gets all the taamim characters in the cluster
Returns
("֑"
| "֒"
| "֓"
| "֔"
| "֕"
| "֖"
| "֗"
| "֘"
| "֙"
| "֚"
| "֛"
| "֜"
| "֝"
| "֞"
| "֟"
| "֠"
| "֡"
| "֢"
| "֣"
| "֤"
| "֥"
| "֦"
| "֧"
| "֨"
| "֩"
| "֪"
| "֫"
| "֬"
| "֭"
| "֮"
)[]
an array of taamim characters in the cluster
const text = new Text("אֱלֹהֶ֑֔יךָ");text.clusters[2].taamim;// ["֑", "֔"]
taamimNames
Get Signature
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: cluster.ts:693
Gets all the names of the taamim characters in the cluster
Returns
("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"
)[]
an array of names of taamim characters in the cluster
const text = new Text("אֱלֹהֶ֑֔יךָ");text.clusters[2].taam;// ['ETNAHTA', 'ZAQEF_QATAN' ]
text
Get Signature
get text():
string
Defined in: cluster.ts:731
Gets text of the cluster
Example
const text = new Text("הֲבָרֹות");const clusters = text.clusters.map((cluster) => cluster.text);// [// "הֲ",// "בָ",// "רֹ",// "ו",// "ת"// ]
Description
The text has been normalized and sequenced — see original for text passed in the constructor.
Returns
string
the text of the cluster that has been built up from the .text of its constituent Char
s
vowelNames
Get Signature
get vowelNames(): (
"HATAF_SEGOL"
|"HATAF_PATAH"
|"HATAF_QAMATS"
|"HIRIQ"
|"TSERE"
|"SEGOL"
|"PATAH"
|"QAMATS"
|"HOLAM"
|"HOLAM_HASER"
|"QUBUTS"
|"QAMATS_QATAN"
)[]
Defined in: cluster.ts:752
Gets all the names of the vowel characters in the cluster
Example
const text = new Text("הַֽ֭יְחָבְרְךָ");text.clusters[0].vowelNames;// ['PATAH']
Description
It is exceedingly rare to find more than one vowel character in a cluster.
According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable.
Because Cluster
is concerned with orthography, a sheva is not a vowel character
Returns
("HATAF_SEGOL"
| "HATAF_PATAH"
| "HATAF_QAMATS"
| "HIRIQ"
| "TSERE"
| "SEGOL"
| "PATAH"
| "QAMATS"
| "HOLAM"
| "HOLAM_HASER"
| "QUBUTS"
| "QAMATS_QATAN"
)[]
an array of names of vowel characters in the cluster
vowels
Get Signature
get vowels(): (
"ֱ"
|"ֲ"
|"ֳ"
|"ִ"
|"ֵ"
|"ֶ"
|"ַ"
|"ָ"
|"ֹ"
|"ֺ"
|"ֻ"
|"ׇ"
)[]
Defined in: cluster.ts:787
Gets all the vowel characters in the cluster
Example
const text = new Text("הַֽ֭יְחָבְרְךָ");text.clusters[0].vowel;// "\u{05B7}"text.clusters[3].vowel;// null
Description
It is exceedingly rare to find more than one vowel character in a cluster.
According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable.
Because Cluster
is concerned with orthography, a sheva is not a vowel character
Returns
("ֱ"
| "ֲ"
| "ֳ"
| "ִ"
| "ֵ"
| "ֶ"
| "ַ"
| "ָ"
| "ֹ"
| "ֺ"
| "ֻ"
| "ׇ"
)[]
an array of vowel characters in the cluster
Methods
hasConsonantName()
hasConsonantName(
name
):boolean
Defined in: cluster.ts:175
Checks if the cluster contains the consonant character of the name passed in
Parameters
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" |
Returns
boolean
a boolean indicating if the cluster contains the consonant character of the name passed in
Example
const text = new Text("הֲבָרֹות");text.clusters[0].hasConsonantName("HE");// truetext.clusters[0].hasConsonantName("BET");// false
hasTaamName()
hasTaamName(
name
):boolean
Defined in: cluster.ts:403
Checks if the cluster contains a taamim character
Parameters
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" |
Returns
boolean
a boolean indicating if the cluster contains a taamim character
Example
const text = new Text("הָאָ֖רֶץ");text.clusters[0].hasTaamName("TIPEHA");// true
Description
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()
hasVowelName(
name
):boolean
Defined in: cluster.ts:472
Checks if the cluster contains the vowel character of the name passed in
Parameters
Parameter | Type |
---|---|
name | "HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" |
Returns
boolean
a boolean indicating if the cluster contains the vowel character of the name passed in
Example
const text = new Text("הַיְחָבְרְךָ");text.clusters[0].hasVowelName("PATAH");// truetext.clusters[0].hasVowelName("HIRIQ");// false
Description
According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable.
Because Cluster
is concerned with orthography, a sheva is not a vowel character.