Skip to content

SBL

Defined in: src/schema.ts:1982

The default schema according to SBL’s academic style guide.

Whereas a new Schema must have all required properties when constructed, this schema is meant to be used as a default so particular properties can be overidden (see example).

If the property is not set, the default value will be used. Each property is documented below with their default values.

Click into each property’s “Overrides” for more information about that property.

schema

a Partial\<Schema\>

Extend the default schema

transliterate("שָׁלוֹם", { SHIN: "sh" });
// shālôm

new SBL(schema): SBL

Defined in: src/schema.ts:2200

ParameterType
schemaPartial<Schema>

SBL

Schema.constructor

ALEF: string

Defined in: src/schema.ts:2042

"ʾ"

Schema.ALEF


AYIN: string

Defined in: src/schema.ts:2086

"ʿ"

Schema.AYIN


BET: string

Defined in: src/schema.ts:2044

"b"

Schema.BET


BET_DAGESH: string | undefined

Defined in: src/schema.ts:2046

undefined

Schema.BET_DAGESH


DALET: string

Defined in: src/schema.ts:2052

"d"

Schema.DALET


DALET_DAGESH: string | undefined

Defined in: src/schema.ts:2054

undefined

Schema.DALET_DAGESH


FINAL_KAF: string

Defined in: src/schema.ts:2068

"k"

Schema.FINAL_KAF


FINAL_MEM: string

Defined in: src/schema.ts:2076

"m"

Schema.FINAL_MEM


FINAL_NUN: string

Defined in: src/schema.ts:2080

"n"

Schema.FINAL_NUN


FINAL_PE: string

Defined in: src/schema.ts:2088

"p"

Schema.FINAL_PE


FINAL_TSADI: string

Defined in: src/schema.ts:2094

""

Schema.FINAL_TSADI


GIMEL: string

Defined in: src/schema.ts:2048

"g"

Schema.GIMEL


GIMEL_DAGESH: string | undefined

Defined in: src/schema.ts:2050

undefined

Schema.GIMEL_DAGESH


HE: string

Defined in: src/schema.ts:2056

"h"

Schema.HE


HET: string

Defined in: src/schema.ts:2062

""

Schema.HET


KAF: string

Defined in: src/schema.ts:2070

"k"

Schema.KAF


KAF_DAGESH: string | undefined

Defined in: src/schema.ts:2072

undefined

Schema.KAF_DAGESH


LAMED: string

Defined in: src/schema.ts:2074

"l"

Schema.LAMED


MEM: string

Defined in: src/schema.ts:2078

"m"

Schema.MEM


NUN: string

Defined in: src/schema.ts:2082

"n"

Schema.NUN


PE: string

Defined in: src/schema.ts:2090

"p"

Schema.PE


PE_DAGESH: string | undefined

Defined in: src/schema.ts:2092

undefined

Schema.PE_DAGESH


QOF: string

Defined in: src/schema.ts:2098

"q"

Schema.QOF


RESH: string

Defined in: src/schema.ts:2100

"r"

Schema.RESH


SAMEKH: string

Defined in: src/schema.ts:2084

"s"

Schema.SAMEKH


SHIN: string

Defined in: src/schema.ts:2102

"š"

Schema.SHIN


SIN: string

Defined in: src/schema.ts:2104

"ś"

Schema.SIN


TAV: string

Defined in: src/schema.ts:2106

"t"

Schema.TAV


TAV_DAGESH: string | undefined

Defined in: src/schema.ts:2108

undefined

Schema.TAV_DAGESH


TET: string

Defined in: src/schema.ts:2064

""

Schema.TET


TSADI: string

Defined in: src/schema.ts:2096

""

Schema.TSADI


VAV: string

Defined in: src/schema.ts:2058

"w"

Schema.VAV


YOD: string

Defined in: src/schema.ts:2066

"y"

Schema.YOD


ZAYIN: string

Defined in: src/schema.ts:2060

"z"

Schema.ZAYIN

DAGESH: string

Defined in: src/schema.ts:2008

""

Schema.DAGESH


DAGESH_CHAZAQ: string | boolean

Defined in: src/schema.ts:2010

true

Schema.DAGESH_CHAZAQ


MAQAF: string

Defined in: src/schema.ts:2012

"-"

Schema.MAQAF


PASEQ: string

Defined in: src/schema.ts:2014

""

Schema.PASEQ


SOF_PASUQ: string

Defined in: src/schema.ts:2016

""

Schema.SOF_PASUQ

ADDITIONAL_FEATURES: (WordFeature | SyllableFeature | ClusterFeature)[] | undefined

Defined in: src/schema.ts:2175

[
{
FEATURE: "syllable",
HEBREW: /[\u{05B4}\u{05BB}]/u,
TRANSLITERATION: (syllable, heb, schema) => {
// matches any syllable with a hiriq or qubuts,
// and checks for a "long" vowel (i.e a hiriq or qubuts in an accented syllable without a mater)
const hasMater = syllable.clusters.some((cluster) => cluster.isMater);
if (syllable.isAccented && !hasMater) {
const macron = "\u0304";
const output = syllable.hasVowelName("HIRIQ") ? schema["HIRIQ"] + macron : schema["QUBUTS"] + macron;
return syllable.text.replace(heb, output.normalize("NFC"));
}
return syllable.text;
}
},
{
FEATURE: "syllable",
HEBREW: "\u{05BC}",
TRANSLITERATION: (syllable, heb) => {
// matches any word with a dagesh,
// and checks for a euphonic dagesh
const currWord = syllable?.word?.value;
const prevWord = currWord?.prev?.value;
if (!currWord || !prevWord || !prevWord.isInConstruct) {
return syllable.text;
}
if (syllable.prev) {
return syllable.text;
}
return syllable.text.replace(heb, "");
}
}
]

Extending SBL with a new feature and keeping the default features

import { SBL, transliterate } from "hebrew-transliteration";
const sbl = new SBL();
const oldFeatures = sbl.ADDITIONAL_FEATURES;
const newFeature = {
FEATURE: "word",
HEBREW: "הָאָרֶץ",
TRANSLITERATION: "The Earth"
}
transliterate("הָאָרֶץ", {
ADDITIONAL_FEATURES: [...oldFeatures, newFeature],
});

Schema.ADDITIONAL_FEATURES


BET_DAGESH: string | undefined

Defined in: src/schema.ts:2046

undefined

Schema.BET_DAGESH


DAGESH_CHAZAQ: string | boolean

Defined in: src/schema.ts:2010

true

Schema.DAGESH_CHAZAQ


DALET_DAGESH: string | undefined

Defined in: src/schema.ts:2054

undefined

Schema.DALET_DAGESH


DIVINE_NAME: string

Defined in: src/schema.ts:2110

"yhwh"

Schema.DIVINE_NAME


DIVINE_NAME_ELOHIM: string | undefined

Defined in: src/schema.ts:2112

undefined

Schema.DIVINE_NAME_ELOHIM


FURTIVE_PATAH: string

Defined in: src/schema.ts:2020

"a"

Schema.FURTIVE_PATAH


GIMEL_DAGESH: string | undefined

Defined in: src/schema.ts:2050

undefined

Schema.GIMEL_DAGESH


HIRIQ_YOD: string

Defined in: src/schema.ts:2022

"î"

Schema.HIRIQ_YOD


HOLAM_VAV: string

Defined in: src/schema.ts:2030

"ô"

Schema.HOLAM_VAV


KAF_DAGESH: string | undefined

Defined in: src/schema.ts:2072

undefined

Schema.KAF_DAGESH


MS_SUFX: string

Defined in: src/schema.ts:2040

"āyw"

Schema.MS_SUFX


optional ON_COMPLETE?: (result, context) => string

Defined in: src/schema.ts:1788

A callback that is invoked when transliteration is complete

ParameterType
resultstring
context{ original: string; schema: Omit<Schema, "ON_COMPLETE">; text: Text; }
context.originalstring
context.schemaOmit<Schema, "ON_COMPLETE">
context.textText

string

Modifying the result

const schema = new Schema({
// truncated for brevity
ON_COMPLETE: (result) => result.replace("th", "t'h"),
});
transliterate("תִתְהַלָּֽל", schema);
// tit'hallāl

Accessing callback arguments

const schema = new Schema({
// truncated for brevity
ON_COMPLETE: (result, { original, schema, text }) => {
console.log("Original Hebrew:", original);
console.log("Schema value:", schema.PATAH);
console.log("Word count:", text.words.length);
return result;
},
});
transliterate("שָּׁלוֹם", schema);
// "šālôm"
// Original Hebrew: שָּׁלוֹם
// Schema value: a
// Word count: 1

Schema.ON_COMPLETE


PATAH_HE: string | undefined

Defined in: src/schema.ts:2034

undefined

Schema.PATAH_HE


PE_DAGESH: string | undefined

Defined in: src/schema.ts:2092

undefined

Schema.PE_DAGESH


QAMATS_HE: string

Defined in: src/schema.ts:2032

"â"

Schema.QAMATS_HE


SEGOL_HE: string | undefined

Defined in: src/schema.ts:2036

undefined

Schema.SEGOL_HE


SEGOL_YOD: string

Defined in: src/schema.ts:2026

"ê"

Schema.SEGOL_YOD


SHIN: string

Defined in: src/schema.ts:2102

"š"

Schema.SHIN


SHUREQ: string

Defined in: src/schema.ts:2028

"û"

Schema.SHUREQ


SIN: string

Defined in: src/schema.ts:2104

"ś"

Schema.SIN


STRESS_MARKER: { exclude?: "never" | "final" | "single"; location: "before-syllable" | "after-syllable" | "before-vowel" | "after-vowel"; mark: string; } | undefined

Defined in: src/schema.ts:2177

{ exclude?: "never" | "final" | "single"; location: "before-syllable" | "after-syllable" | "before-vowel" | "after-vowel"; mark: string; }

optional exclude?: "never" | "final" | "single"

Whether to exclude the mark on certain syllables

"never"

undefined and "never" are the same

const schema = new Schema({
STRESS_MARKER: {
location: "after-vowel",
mark: "\u0301",
},
});
transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
// bṓqer yốm ʾeḥā́d

Exclude only single syllable words using "single"

const schema = new Schema({
STRESS_MARKER: {
location: "after-vowel",
mark: "\u0301",
exclude: "single",
},
});
transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
// bṓqer yôm ʾeḥā́d

Exclude when accent is on the final syllable, implicitly excluding single syllable words using "final"

const schema = new Schema({
STRESS_MARKER: {
location: "after-vowel",
mark: "\u0301",
exclude: "final",
},
});
transliterate("בֹּ֖קֶר י֥וֹם אֶחָֽד׃ ", schema);
// bṓqer yôm ʾeḥād

location: "before-syllable" | "after-syllable" | "before-vowel" | "after-vowel"

The location of the mark

mark: string

A string to use as the marker


undefined

undefined

Schema.STRESS_MARKER


SYLLABLE_SEPARATOR: string | undefined

Defined in: src/schema.ts:2114

undefined

Schema.SYLLABLE_SEPARATOR


TAV_DAGESH: string | undefined

Defined in: src/schema.ts:2108

undefined

Schema.TAV_DAGESH


TSERE_HE: string | undefined

Defined in: src/schema.ts:2038

undefined

Schema.TSERE_HE


TSERE_YOD: string

Defined in: src/schema.ts:2024

"ê"

Schema.TSERE_YOD

allowNoNiqqud: boolean | undefined

Defined in: src/schema.ts:2193

true

Schema.allowNoNiqqud


article: boolean | undefined

Defined in: src/schema.ts:2191

true

Schema.article


holemHaser: "update" | "preserve" | "remove" | undefined

Defined in: src/schema.ts:2197

"remove"

Schema.holemHaser


ketivQeres: KetivQere[] | undefined

Defined in: src/schema.ts:2199

undefined

Schema.ketivQeres


longVowels: boolean | undefined

Defined in: src/schema.ts:2179

true

Schema.longVowels


qametsQatan: boolean | undefined

Defined in: src/schema.ts:2181

true

Schema.qametsQatan


shevaAfterMeteg: boolean | undefined

Defined in: src/schema.ts:2183

true

Schema.shevaAfterMeteg


shevaWithMeteg: boolean | undefined

Defined in: src/schema.ts:2185

false

Schema.shevaWithMeteg


sqnmlvy: boolean | undefined

Defined in: src/schema.ts:2187

true

Schema.sqnmlvy


strict: boolean | undefined

Defined in: src/schema.ts:2195

false

Schema.strict


wawShureq: boolean | undefined

Defined in: src/schema.ts:2189

true

Schema.wawShureq

MAQAF: string

Defined in: src/schema.ts:2012

"-"

Schema.MAQAF


SOF_PASUQ: string

Defined in: src/schema.ts:2016

""

Schema.SOF_PASUQ

MS_SUFX: string

Defined in: src/schema.ts:2040

"āyw"

Schema.MS_SUFX

FURTIVE_PATAH: string

Defined in: src/schema.ts:2020

"a"

Schema.FURTIVE_PATAH


HATAF_PATAH: string

Defined in: src/schema.ts:1988

"ă"

Schema.HATAF_PATAH


HATAF_QAMATS: string

Defined in: src/schema.ts:1990

"ŏ"

Schema.HATAF_QAMATS


HATAF_SEGOL: string

Defined in: src/schema.ts:1986

"ĕ"

Schema.HATAF_SEGOL


HIRIQ: string

Defined in: src/schema.ts:1992

"i"

Schema.HIRIQ


HIRIQ_YOD: string

Defined in: src/schema.ts:2022

"î"

Schema.HIRIQ_YOD


HOLAM: string

Defined in: src/schema.ts:2002

"ō"

Schema.HOLAM


HOLAM_HASER: string

Defined in: src/schema.ts:2004

"ō"

Schema.HOLAM_HASER


HOLAM_VAV: string

Defined in: src/schema.ts:2030

"ô"

Schema.HOLAM_VAV


PATAH: string

Defined in: src/schema.ts:1998

"a"

Schema.PATAH


PATAH_HE: string | undefined

Defined in: src/schema.ts:2034

undefined

Schema.PATAH_HE


QAMATS: string

Defined in: src/schema.ts:2000

"ā"

Schema.QAMATS


QAMATS_HE: string

Defined in: src/schema.ts:2032

"â"

Schema.QAMATS_HE


QAMATS_QATAN: string

Defined in: src/schema.ts:2018

"o"

Schema.QAMATS_QATAN


QUBUTS: string

Defined in: src/schema.ts:2006

"ū"

Schema.QUBUTS


SEGOL: string

Defined in: src/schema.ts:1996

"e"

Schema.SEGOL


SEGOL_HE: string | undefined

Defined in: src/schema.ts:2036

undefined

Schema.SEGOL_HE


SEGOL_YOD: string

Defined in: src/schema.ts:2026

"ê"

Schema.SEGOL_YOD


SHUREQ: string

Defined in: src/schema.ts:2028

"û"

Schema.SHUREQ


TSERE: string

Defined in: src/schema.ts:1994

"ē"

Schema.TSERE


TSERE_HE: string | undefined

Defined in: src/schema.ts:2038

undefined

Schema.TSERE_HE


TSERE_YOD: string

Defined in: src/schema.ts:2024

"ê"

Schema.TSERE_YOD


VOCAL_SHEVA: string

Defined in: src/schema.ts:1984

"ə"

Schema.VOCAL_SHEVA