1
1
<script lang =" ts" >
2
2
export let results: string [][];
3
+ const headers: { [key : string ]: string [] } = {
4
+ ' 廣韻' : [
5
+ ' 切拼i' , ' 白一平i' , ' 古韻i' , ' 有女i' ,
6
+ ' 髙本漢' , ' 王力{1957}' , ' 王力{1985}' , ' 李榮' , ' 邵榮芬' , ' 蒲立本' , ' 鄭張尙芳' , ' 潘悟雲{2000}' , ' 潘悟雲{2013}' , ' 潘悟雲{2023}' , ' unt{2020}' , ' unt{2022}' , ' unt{通俗}' , ' msoeg' ,
7
+ ' 切韻音系描述' , ' null' , ' 方音字彙描述' ,
8
+ ' 廣韻韻目原貌' , ' 折合平水韻目' ,
9
+ ' 反切' ,
10
+ ],
11
+ ' 中原音韻' : [' 楊耐思' , ' 寧繼福' , ' 薛鳳生{音位形式}' , ' unt{音位形式}' , ' unt' ],
12
+ ' 普通話' : [' i' ],
13
+ ' 東干語' : [' 西里爾字母i' , ' 音標' ],
14
+ ' 香港' : [' i' ],
15
+ ' 臺灣' : [' i' ],
16
+ ' 越南' : [' i' ],
17
+ ' 朝鮮' : [' i' ],
18
+ ' 日語吳音' : [' i' ],
19
+ ' 日語漢音' : [' i' ],
20
+ };
3
21
</script >
4
22
5
23
<style >
6
24
table {
7
25
border-collapse : collapse ;
8
26
margin : 0 auto ;
9
27
overflow-x : auto ;
28
+ line-height : 1.5 ;
10
29
}
11
30
12
31
th , td {
13
- border : 1px solid ;
14
- padding : 4px 6px ;
32
+ padding : 0.25em ;
33
+ width : 12em ;
34
+ text-align : start ;
35
+ vertical-align : top ;
15
36
}
16
37
17
- td :first-child {
18
- white-space : nowrap ;
19
- }
20
-
21
- td :not (:first-child ) {
22
- width : 6em ;
23
- word-break : break-all ;
38
+ th :first-child , td :first-child {
39
+ width : auto ;
40
+ text-align : end ;
24
41
}
25
42
26
43
.name-tag {
27
- border-radius : 10 px ;
44
+ border-radius : 0.5 em ;
28
45
color : white ;
29
- font-size : 0.8 em ;
30
- padding : 3 px 5 px ;
46
+ padding : 0.15 em 0.2 em ;
47
+ white-space : nowrap ;
31
48
}
32
49
33
- .text {
34
- font-size : 90 % ;
50
+ .desc {
51
+ font-size : 0.75 em ;
35
52
}
36
53
</style >
37
54
@@ -49,7 +66,30 @@ td:not(:first-child) {
49
66
<tr >
50
67
<td ><span class ="name-tag" style ="background-color: {顏色};" title =" {分區}" >{簡稱}</span ></td >
51
68
{#each 字音們 as 字音}
52
- <td lang ="zh-x-fonipa" class ="text" >{字音}</td >
69
+ {(字音 = 字音.replace (/ \{ . *? \} / g , s => s .replace (/ / g , ' ' )))}
70
+ {#if headers [簡稱]}
71
+ {(字音 = 字音
72
+ .split (' ' )
73
+ .map (s => s
74
+ .split (' /' )
75
+ .map ((s , i ) => {
76
+ let header = headers [簡稱][i ];
77
+ if (header === ' null' ) return ' ' ;
78
+ if (header && header .endsWith (' i' )) {
79
+ header = header .slice (0 , - 1 );
80
+ s = ` <em>${s }</em> ` ;
81
+ }
82
+ return header ? header + ' :' + s : s ;
83
+ })
84
+ .join (' <br>' )
85
+ .replace (/ (<br>)+ / g , ' <br>' ))
86
+ .join (headers [簡稱].length > 1 ? ' <br><br>' : ' ' ))}
87
+ {/if }
88
+ {(字音 = 字音
89
+ .replace (/ \* (. *? )\* / g , ' <strong>$1</strong>' )
90
+ .replace (/ \| (. *? )\| / g , ' <span style="opacity: 0.5;">$1</span>' )
91
+ .replace (/ \{ (. *? )\} / g , ' <span class="desc">$1</span>' ))}
92
+ <td lang ="zh-x-fonipa" class ="text" >{@html 字音}</td >
53
93
{/each }
54
94
</tr >
55
95
{/each }
0 commit comments