Numbering pattern "가" sequence needs change
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- rust
調査の方向性
まず、"가"形式の番号付け実装を見つけ、現在のシーケンスをissueで説明されている韓国政府の標準と比較します。提供されているHangulの組み合わせロジックと期待される出力を参照し、その後、29で"가가"を生成せず、列挙された母音グループを通じて番号付けが継続することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Description
Currently, the "가" numbering pattern has the following sequence
가나다라마바사아자차카타파하
and after that, it ends, and displaying the 29th numbering will result to "가가". But, in fact it should be "거". According to Korean government standards, the order should be the combination of plain consonants ㄱㄴㄷㄹㅁㅅㅇㅈㅊㅋㅌㅍㅎ and short vowels(monopthongs)ㅏㅓㅗㅜㅡㅣ. So it would be
가나다라마바사아자차카타파하 -> 거너더...허 -> 고노도...호 -> 구누두...후 -> ...
The current situation can be described as similar to a scenario where 'ああ いい ...' follows 'あ い う え お' in the Japanese "あ" numbering pattern. (This is just a metaphor? and currently typst works as it should where it displays "か" after "お")
Here is my implementation of the numbering system(plus a hard coded solution to typst/typst#6484[https://github.com/typst/typst/issues/6484])
#let traditional-numbering(format, ..args) = {
let result = numbering(format, ..args)
let n = args.pos().first()
if format == "가" {
// Hangul combination formula: 0xAC00 + (consonant index * 21 * 28) + (vowel index * 28)
// 1. plain consonants (ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ)
let c_map = (0, 2, 3, 5, 6, 7, 9, 11, 12, 14, 15, 16, 17, 18)
// 2. short vowels (ㅏ, ㅓ, ㅗ, ㅜ, ㅡ, ㅣ)
let v_map = (0, 4, 6, 12, 13, 18, 20)
let c_idx = calc.rem(n - 1, 14)
let v_idx = calc.floor((n - 1) / 14)
if v_idx < v_map.len() {
let char_code = 0xAC00 + (c_map.at(c_idx) * 21 * 28) + (v_map.at(v_idx) * 28)
result = str.from-unicode(char_code)
} else {
result = numbering(format, ..args)
}
} else {
result = numbering(format, ..args)
}
result
.replace("贰", "貳") // 2
.replace("叁", "參") // 3
.replace("陆", "陸") // 6
// .replace("万", "萬")
.replace("亿", "億") // 100 million
}
Below is the result of this code
#for i in range(1, 85) [
#traditional-numbering("가", i)
]
가 나 다 라 마 바 사 아 자 차 카 타 파 하 거 너 더 러 머 버 서 어 저 처 커 터 퍼 허 고 노 도 로 모 보 소 오 조 초 코 토 포 호 구 누 두 루 무 부 수 우 주 추 쿠 투 푸 후 그 느 드 르 므 브 스 으 즈 츠 크 트 프 흐 기 니 디 리 미 비 시 이 지 치 키 티 피 히
Thank you for looking in!
Use Case
This would make typst numbering match the Korean standards (from the government or the HWP word processor)
- 主要言語
- Rust
- スター
- 53
- フォーク
- 22
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
typst/codex のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
-
proposal
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
Lack of ⊻ U+22BBオープンproposal
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
software-challenge/player_rust#22 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
foundry-rs/foundry#17175 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
state:triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
github/copilot-sdk#2793 ·
メンテナーはふだん 1 日以内に返信