cbeta 3.6.8 → 3.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cbeta/p5a_checker.rb +24 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebf58473ff4b9b6f641d65bad3140a19c47f3d43b03815d7b2d42f4310317bba
|
4
|
+
data.tar.gz: 7f73dcd9bacbfa3e2dd5b0213fd71cfdbc571a103aa5e5fd266828c5051a633f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7591d299c5be9d0d15918d48d80e7c10414d3a74b38140202bda3e8040e3864a11e621884844f604b278f8564a00f94a0bdf50cabed12e9b96672f64462b4465
|
7
|
+
data.tar.gz: ffce9b2206ebe86b8dc60f25cb02730e6e905c4408025883601aeb8c56733076277dc553509a9af3b3510de26255cacf990c022cf39508a5e5dee28aeb9b0f6c
|
data/lib/cbeta/p5a_checker.rb
CHANGED
@@ -12,11 +12,14 @@ require_relative 'cbeta_share'
|
|
12
12
|
# * [E07] lem 缺少 wit 屬性
|
13
13
|
# * [E08] item 下有多個 list
|
14
14
|
# * [E09] table cols 屬性值錯誤
|
15
|
+
# * [E10] p 不應直接出現在 list 下
|
15
16
|
#
|
16
17
|
# * 警告類型
|
17
18
|
# * [W01] 夾注包夾注
|
18
19
|
# * [W02] 出現罕用字元
|
20
|
+
# * [W03] 不應出現 TAB 字元
|
19
21
|
class CBETA::P5aChecker
|
22
|
+
ALLOW_TAB = %w[change]
|
20
23
|
|
21
24
|
# @param xml_root [String] 來源 CBETA XML P5a 路徑
|
22
25
|
# @param figures [String] 插圖 路徑 (可由 https://github.com/cbeta-git/CBR2X-figures 取得)
|
@@ -84,9 +87,11 @@ class CBETA::P5aChecker
|
|
84
87
|
|
85
88
|
def chk_text(node)
|
86
89
|
return if node.text.strip.empty?
|
90
|
+
|
87
91
|
if node.parent.name == 'div'
|
88
92
|
error "[E02] 文字直接出現在 div 下, text: #{node.text.inspect}"
|
89
93
|
end
|
94
|
+
|
90
95
|
if node.text =~ /(\$|\{|\})/
|
91
96
|
char = $1
|
92
97
|
|
@@ -98,6 +103,12 @@ class CBETA::P5aChecker
|
|
98
103
|
|
99
104
|
error "[W02] 出現罕用字元: char: #{char}"
|
100
105
|
end
|
106
|
+
|
107
|
+
if node.text.include?("\t")
|
108
|
+
unless ALLOW_TAB.include?(node.parent.name)
|
109
|
+
error "[W03] <#{node.parent.name}> 下不應出現 TAB 字元"
|
110
|
+
end
|
111
|
+
end
|
101
112
|
end
|
102
113
|
|
103
114
|
def display_errors
|
@@ -176,7 +187,11 @@ class CBETA::P5aChecker
|
|
176
187
|
end
|
177
188
|
|
178
189
|
def e_note(e)
|
179
|
-
|
190
|
+
unless e['place'] == 'inline'
|
191
|
+
traverse(e)
|
192
|
+
return
|
193
|
+
end
|
194
|
+
|
180
195
|
if @element_stack.include?('inline_note')
|
181
196
|
error "[W01] 夾注包夾注"
|
182
197
|
end
|
@@ -185,6 +200,13 @@ class CBETA::P5aChecker
|
|
185
200
|
@element_stack.pop
|
186
201
|
end
|
187
202
|
|
203
|
+
def e_p(e)
|
204
|
+
if e.parent.name == 'list'
|
205
|
+
error "[E10] p 不應直接出現在 list 下"
|
206
|
+
end
|
207
|
+
traverse(e)
|
208
|
+
end
|
209
|
+
|
188
210
|
def e_rdg(e)
|
189
211
|
return if e['type'] == 'cbetaRemark'
|
190
212
|
unless e.key?('wit')
|
@@ -258,6 +280,7 @@ class CBETA::P5aChecker
|
|
258
280
|
when 'lb' then e_lb(e)
|
259
281
|
when 'lem' then e_lem(e)
|
260
282
|
when 'note' then e_note(e)
|
283
|
+
when 'p' then e_p(e)
|
261
284
|
when 'rdg' then e_rdg(e)
|
262
285
|
when 'table' then e_table(e)
|
263
286
|
else traverse(e)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cbeta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.6.
|
4
|
+
version: 3.6.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ray Chou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unihan2
|