Add Devanagari numbering (#4850)

This commit is contained in:
Florent Michel 2024-09-02 14:12:57 +01:00 committed by GitHub
parent c644dce81b
commit 51df7aee76
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 1 deletions

View File

@ -297,6 +297,8 @@ pub enum NumberingKind {
EasternArabic, EasternArabic,
/// The variant of Eastern Arabic numerals used in Persian and Urdu. /// The variant of Eastern Arabic numerals used in Persian and Urdu.
EasternArabicPersian, EasternArabicPersian,
/// Devanagari numerals.
DevanagariNumber,
/// Circled numbers (①, ②, ③, etc.), up to 50. /// Circled numbers (①, ②, ③, etc.), up to 50.
CircledNumber, CircledNumber,
/// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10. /// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10.
@ -321,6 +323,7 @@ impl NumberingKind {
'가' => NumberingKind::KoreanSyllable, '가' => NumberingKind::KoreanSyllable,
'\u{0661}' => NumberingKind::EasternArabic, '\u{0661}' => NumberingKind::EasternArabic,
'\u{06F1}' => NumberingKind::EasternArabicPersian, '\u{06F1}' => NumberingKind::EasternArabicPersian,
'\u{0967}' => NumberingKind::DevanagariNumber,
'①' => NumberingKind::CircledNumber, '①' => NumberingKind::CircledNumber,
'⓵' => NumberingKind::DoubleCircledNumber, '⓵' => NumberingKind::DoubleCircledNumber,
_ => return None, _ => return None,
@ -345,6 +348,7 @@ impl NumberingKind {
Self::KoreanSyllable => '가', Self::KoreanSyllable => '가',
Self::EasternArabic => '\u{0661}', Self::EasternArabic => '\u{0661}',
Self::EasternArabicPersian => '\u{06F1}', Self::EasternArabicPersian => '\u{06F1}',
Self::DevanagariNumber => '\u{0967}',
Self::CircledNumber => '①', Self::CircledNumber => '①',
Self::DoubleCircledNumber => '⓵', Self::DoubleCircledNumber => '⓵',
} }
@ -556,6 +560,7 @@ impl NumberingKind {
), ),
Self::EasternArabic => decimal('\u{0660}', n), Self::EasternArabic => decimal('\u{0660}', n),
Self::EasternArabicPersian => decimal('\u{06F0}', n), Self::EasternArabicPersian => decimal('\u{06F0}', n),
Self::DevanagariNumber => decimal('\u{0966}', n),
Self::CircledNumber => zeroless::<50>( Self::CircledNumber => zeroless::<50>(
|x| { |x| {
[ [

View File

@ -102,6 +102,11 @@
#assert.eq(numbering("\u{0661}", 1475), "١٤٧٥") #assert.eq(numbering("\u{0661}", 1475), "١٤٧٥")
#assert.eq(numbering("\u{06F1}", 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 --- --- numbering-negative ---
// Error: 17-19 number must be at least zero // Error: 17-19 number must be at least zero
#numbering("1", -1) #numbering("1", -1)
@ -112,4 +117,4 @@
--- numbering-double-circled-number --- --- numbering-double-circled-number ---
#assert.eq(numbering("⓵", 1), "⓵") #assert.eq(numbering("⓵", 1), "⓵")
#assert.eq(numbering("⓵", 10), "⓾") #assert.eq(numbering("⓵", 10), "⓾")