summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Michel <56166507+FlorentCLMichel@users.noreply.github.com>2024-09-02 14:12:57 +0100
committerGitHub <noreply@github.com>2024-09-02 13:12:57 +0000
commit51df7aee763d162b3aeec0a59788818e0292004f (patch)
tree3150770dd39fe7933c7ee7e844e677b5fff87aca
parentc644dce81b1685383ee8d991a92991eb03f5e32e (diff)
Add Devanagari numbering (#4850)
-rw-r--r--crates/typst/src/model/numbering.rs5
-rw-r--r--tests/suite/model/numbering.typ7
2 files changed, 11 insertions, 1 deletions
diff --git a/crates/typst/src/model/numbering.rs b/crates/typst/src/model/numbering.rs
index 5530830f..3afde1f8 100644
--- a/crates/typst/src/model/numbering.rs
+++ b/crates/typst/src/model/numbering.rs
@@ -297,6 +297,8 @@ pub enum NumberingKind {
EasternArabic,
/// The variant of Eastern Arabic numerals used in Persian and Urdu.
EasternArabicPersian,
+ /// Devanagari numerals.
+ DevanagariNumber,
/// Circled numbers (①, ②, ③, etc.), up to 50.
CircledNumber,
/// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10.
@@ -321,6 +323,7 @@ impl NumberingKind {
'가' => NumberingKind::KoreanSyllable,
'\u{0661}' => NumberingKind::EasternArabic,
'\u{06F1}' => NumberingKind::EasternArabicPersian,
+ '\u{0967}' => NumberingKind::DevanagariNumber,
'①' => NumberingKind::CircledNumber,
'⓵' => NumberingKind::DoubleCircledNumber,
_ => return None,
@@ -345,6 +348,7 @@ impl NumberingKind {
Self::KoreanSyllable => '가',
Self::EasternArabic => '\u{0661}',
Self::EasternArabicPersian => '\u{06F1}',
+ Self::DevanagariNumber => '\u{0967}',
Self::CircledNumber => '①',
Self::DoubleCircledNumber => '⓵',
}
@@ -556,6 +560,7 @@ impl NumberingKind {
),
Self::EasternArabic => decimal('\u{0660}', n),
Self::EasternArabicPersian => decimal('\u{06F0}', n),
+ Self::DevanagariNumber => decimal('\u{0966}', n),
Self::CircledNumber => zeroless::<50>(
|x| {
[
diff --git a/tests/suite/model/numbering.typ b/tests/suite/model/numbering.typ
index e101365c..55c24f65 100644
--- a/tests/suite/model/numbering.typ
+++ b/tests/suite/model/numbering.typ
@@ -102,6 +102,11 @@
#assert.eq(numbering("\u{0661}", 1475), "١٤٧٥")
#assert.eq(numbering("\u{06F1}", 1475), "۱۴۷۵")
+--- numbering-devanagari-number ---
+#assert.eq(numbering("\u{0967}", 1), "१")
+#assert.eq(numbering("\u{0967}", 10), "१०")
+#assert.eq(numbering("\u{0967}", 123456789), "१२३४५६७८९")
+
--- numbering-negative ---
// Error: 17-19 number must be at least zero
#numbering("1", -1)
@@ -112,4 +117,4 @@
--- numbering-double-circled-number ---
#assert.eq(numbering("⓵", 1), "⓵")
-#assert.eq(numbering("⓵", 10), "⓾") \ No newline at end of file
+#assert.eq(numbering("⓵", 10), "⓾")