Skip to content

Commit 965d863

Browse files
committed
Add 直音 in 廣韻.csv
For 小韻 #1919 (拯) and #3177 (𪒠).
1 parent 25e2f31 commit 965d863

File tree

5 files changed

+29241
-29233
lines changed

5 files changed

+29241
-29233
lines changed

build.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
class 小韻Row:
1010
小韻號: str
1111
首字: str
12-
反切: str
1312
音韻地位: str
13+
反切: str
14+
直音: str
1415

1516

1617
def load_小韻表() -> tuple[
@@ -19,18 +20,20 @@ def load_小韻表() -> tuple[
1920
小韻_data = dict[str, 小韻Row]()
2021
細分號_by_原書小韻 = dict[str, list[str]]()
2122
細分轄字_by_小韻 = dict[str, list[str]]()
22-
with open('src/小韻表.tsv') as fin:
23-
header = next(fin)
24-
assert header.rstrip('\n').split('\t') == [
23+
with open('src/小韻表.csv') as fin:
24+
rows = csv.reader(fin)
25+
header = next(rows)
26+
assert header == [
2527
'小韻號',
2628
'首字',
27-
'反切',
2829
'音韻地位',
30+
'反切',
31+
'直音',
2932
'細分轄字',
3033
], repr(header)
31-
for line in fin:
32-
小韻號, 首字, 反切, 音韻地位, 細分轄字 = line.rstrip('\n').split('\t')
33-
小韻_data[小韻號] = 小韻Row(小韻號, 首字, 反切, 音韻地位)
34+
for row in rows:
35+
小韻號, 首字, 音韻地位, 反切, 直音, 細分轄字 = row
36+
小韻_data[小韻號] = 小韻Row(小韻號, 首字, 音韻地位, 反切, 直音)
3437
if 小韻號[-1].isalpha():
3538
原書小韻號 = 小韻號[:-1]
3639
細分號_by_原書小韻.setdefault(原書小韻號, []).append(小韻號[-1])
@@ -171,6 +174,7 @@ class 廣韻Row:
171174
韻目原貌: str
172175
音韻地位: str
173176
反切: str
177+
直音: str
174178
字頭: str
175179
字頭說明: str
176180
釋義: str
@@ -312,8 +316,6 @@ def main():
312316

313317
# 反切
314318
反切 = 小韻_data[小韻號].反切
315-
if 反切 == '-':
316-
反切 = ''
317319

318320
# 釋義中反切
319321
if 小韻字號 == '1' and 反切:
@@ -324,12 +326,15 @@ def main():
324326
)
325327
釋義 = 釋義.replace(poem_反切 + '切', 反切原貌 + '切')
326328

329+
直音 = 小韻_data[小韻號].直音
330+
327331
廣韻_data[字序_key] = 廣韻Row(
328332
小韻號,
329333
小韻字號,
330334
韻目原貌,
331335
音韻地位,
332336
反切,
337+
直音,
333338
字頭,
334339
字頭說明,
335340
釋義,

check.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def contains_ascii(s: str):
2929
with open('韻書/廣韻.csv') as f:
3030
assert (
3131
next(f).rstrip('\n')
32-
== '小韻號,小韻字號,韻目原貌,音韻地位,反切,字頭,字頭說明,釋義,釋義參照'
32+
== '小韻號,小韻字號,韻目原貌,音韻地位,反切,直音,字頭,字頭說明,釋義,釋義參照'
3333
)
3434
for line in f:
3535
(
@@ -38,6 +38,7 @@ def contains_ascii(s: str):
3838
韻目原貌,
3939
音韻地位描述,
4040
反切,
41+
直音,
4142
字頭,
4243
字頭說明,
4344
釋義,
@@ -54,6 +55,8 @@ def contains_ascii(s: str):
5455
f'invalid 音韻地位: {音韻地位描述}'
5556
)
5657

58+
assert 反切 or 直音, 'missing both 反切 and 直音'
59+
5760
if 反切:
5861
assert PATTERN_反切.fullmatch(反切) is not None, f'invalid 反切: {反切}'
5962

0 commit comments

Comments
 (0)