summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/typst/src/model/numbering.rs14
-rw-r--r--tests/suite/model/numbering.typ5
2 files changed, 19 insertions, 0 deletions
diff --git a/crates/typst/src/model/numbering.rs b/crates/typst/src/model/numbering.rs
index ed2081b9..ce1d6eae 100644
--- a/crates/typst/src/model/numbering.rs
+++ b/crates/typst/src/model/numbering.rs
@@ -301,6 +301,8 @@ pub enum NumberingKind {
DevanagariNumber,
/// Bengali numerals.
BengaliNumber,
+ /// Bengali letters (ক, খ, গ, ...কক, কখ etc.).
+ BengaliLetter,
/// Circled numbers (①, ②, ③, etc.), up to 50.
CircledNumber,
/// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10.
@@ -327,6 +329,7 @@ impl NumberingKind {
'\u{06F1}' => NumberingKind::EasternArabicPersian,
'\u{0967}' => NumberingKind::DevanagariNumber,
'\u{09E7}' => NumberingKind::BengaliNumber,
+ '\u{0995}' => NumberingKind::BengaliLetter,
'①' => NumberingKind::CircledNumber,
'⓵' => NumberingKind::DoubleCircledNumber,
_ => return None,
@@ -353,6 +356,7 @@ impl NumberingKind {
Self::EasternArabicPersian => '\u{06F1}',
Self::DevanagariNumber => '\u{0967}',
Self::BengaliNumber => '\u{09E7}',
+ Self::BengaliLetter => '\u{0995}',
Self::CircledNumber => '①',
Self::DoubleCircledNumber => '⓵',
}
@@ -566,6 +570,16 @@ impl NumberingKind {
Self::EasternArabicPersian => decimal('\u{06F0}', n),
Self::DevanagariNumber => decimal('\u{0966}', n),
Self::BengaliNumber => decimal('\u{09E6}', n),
+ Self::BengaliLetter => zeroless::<32>(
+ |x| {
+ [
+ 'ক', 'খ', 'গ', 'ঘ', 'ঙ', 'চ', 'ছ', 'জ', 'ঝ', 'ঞ', 'ট', 'ঠ', 'ড',
+ 'ঢ', 'ণ', 'ত', 'থ', 'দ', 'ধ', 'ন', 'প', 'ফ', 'ব', 'ভ', 'ম', 'য',
+ 'র', 'ল', 'শ', 'ষ', 'স', 'হ',
+ ][x]
+ },
+ n,
+ ),
Self::CircledNumber => zeroless::<50>(
|x| {
[
diff --git a/tests/suite/model/numbering.typ b/tests/suite/model/numbering.typ
index d0cbe247..241ef3ea 100644
--- a/tests/suite/model/numbering.typ
+++ b/tests/suite/model/numbering.typ
@@ -50,6 +50,11 @@
#t(pat: "\u{09E7}", 10, "১০")
#t(pat: "\u{09E7}", 123456789, "১২৩৪৫৬৭৮৯")
+// Bengali Consonants.
+#t(pat: "\u{0995}", 1, "ক")
+#t(pat: "\u{0995}", 32, "হ")
+#t(pat: "\u{0995}", 32*2 , "কহ")
+
// Circled number.
#t(pat: "①", 1, "①")
#t(pat: "①", 50, "㊿")