cbeta 3.6.9 → 3.6.11

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cbeta/p5a_checker.rb +22 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f7153409459c473777e4cce5f712a3b3ec82ae4316919044e27109cd49bbdf6
4
- data.tar.gz: 2d2834a6388469f6dc68260147ff85b6f457c8633ca8d43f42c1ef44fad712b9
3
+ metadata.gz: f950383cda8efb7eba99fde80bdfe9e0a8172597af040817d201879c730c8407
4
+ data.tar.gz: 51a2eb7c7f1b1ff01f08d0c198954f943e48fe2a1b32fcfb71d8cea82adf6508
5
5
  SHA512:
6
- metadata.gz: ba7037f30127d79f8e4ab68f90231783081ef3558e2f9bef2fc2763595fa3574b8c56fe1c2cd1b0c393631e13cda6e44d76e8de0c488cea31e121d514d3217ca
7
- data.tar.gz: 4e0552b69ff40a8ff702b549de930b8af531c028a58ded68b7c1fe6959d37167e2fe09a4f4d10a822df14d58a459a1e19558ced24e5d5883f3ba92f42de994f0
6
+ metadata.gz: ef7a9a6e3800c6fa9a71f334a7079eb8ef15a13ec30a9422881e6e332435e044f1c6f3efb1ccce4fb2d490ccef42faa58214ad039888786cc322def4a77b81f0
7
+ data.tar.gz: a0e37490672b664698becfcfbaae23bcd11f9c5579ecb2dbac7dff1d81a5db2eafc9f1fca021415e9ff9903690c5716aa5fa599bd6c1a266910854db1e7d0b3d
@@ -12,12 +12,15 @@ require_relative 'cbeta_share'
12
12
  # * [E07] lem 缺少 wit 屬性
13
13
  # * [E08] item 下有多個 list
14
14
  # * [E09] table cols 屬性值錯誤
15
- # * [E10] 不應直接出現在 list 下
15
+ # * [E10] p 不應直接出現在 list 下
16
+ # * [E11] note 直接出現在 div 下
16
17
  #
17
18
  # * 警告類型
18
19
  # * [W01] 夾注包夾注
19
20
  # * [W02] 出現罕用字元
21
+ # * [W03] 不應出現 TAB 字元
20
22
  class CBETA::P5aChecker
23
+ ALLOW_TAB = %w[change]
21
24
 
22
25
  # @param xml_root [String] 來源 CBETA XML P5a 路徑
23
26
  # @param figures [String] 插圖 路徑 (可由 https://github.com/cbeta-git/CBR2X-figures 取得)
@@ -85,9 +88,11 @@ class CBETA::P5aChecker
85
88
 
86
89
  def chk_text(node)
87
90
  return if node.text.strip.empty?
91
+
88
92
  if node.parent.name == 'div'
89
93
  error "[E02] 文字直接出現在 div 下, text: #{node.text.inspect}"
90
94
  end
95
+
91
96
  if node.text =~ /(\$|\{|\})/
92
97
  char = $1
93
98
 
@@ -99,6 +104,12 @@ class CBETA::P5aChecker
99
104
 
100
105
  error "[W02] 出現罕用字元: char: #{char}"
101
106
  end
107
+
108
+ if node.text.include?("\t")
109
+ unless ALLOW_TAB.include?(node.parent.name)
110
+ error "[W03] <#{node.parent.name}> 下不應出現 TAB 字元"
111
+ end
112
+ end
102
113
  end
103
114
 
104
115
  def display_errors
@@ -177,7 +188,16 @@ class CBETA::P5aChecker
177
188
  end
178
189
 
179
190
  def e_note(e)
180
- return unless e['place'] == 'inline'
191
+ if e.parent.name == 'div'
192
+ error "[E11] note 直接出現在 div 下"
193
+ end
194
+
195
+ # * [E11] note 直接出現在 div 下
196
+ unless e['place'] == 'inline'
197
+ traverse(e)
198
+ return
199
+ end
200
+
181
201
  if @element_stack.include?('inline_note')
182
202
  error "[W01] 夾注包夾注"
183
203
  end
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.9
4
+ version: 3.6.11
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-05-26 00:00:00.000000000 Z
11
+ date: 2025-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unihan2