cbeta 3.6.9 → 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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cbeta/p5a_checker.rb +16 -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: ebf58473ff4b9b6f641d65bad3140a19c47f3d43b03815d7b2d42f4310317bba
4
+ data.tar.gz: 7f73dcd9bacbfa3e2dd5b0213fd71cfdbc571a103aa5e5fd266828c5051a633f
5
5
  SHA512:
6
- metadata.gz: ba7037f30127d79f8e4ab68f90231783081ef3558e2f9bef2fc2763595fa3574b8c56fe1c2cd1b0c393631e13cda6e44d76e8de0c488cea31e121d514d3217ca
7
- data.tar.gz: 4e0552b69ff40a8ff702b549de930b8af531c028a58ded68b7c1fe6959d37167e2fe09a4f4d10a822df14d58a459a1e19558ced24e5d5883f3ba92f42de994f0
6
+ metadata.gz: 7591d299c5be9d0d15918d48d80e7c10414d3a74b38140202bda3e8040e3864a11e621884844f604b278f8564a00f94a0bdf50cabed12e9b96672f64462b4465
7
+ data.tar.gz: ffce9b2206ebe86b8dc60f25cb02730e6e905c4408025883601aeb8c56733076277dc553509a9af3b3510de26255cacf990c022cf39508a5e5dee28aeb9b0f6c
@@ -12,12 +12,14 @@ 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
16
  #
17
17
  # * 警告類型
18
18
  # * [W01] 夾注包夾注
19
19
  # * [W02] 出現罕用字元
20
+ # * [W03] 不應出現 TAB 字元
20
21
  class CBETA::P5aChecker
22
+ ALLOW_TAB = %w[change]
21
23
 
22
24
  # @param xml_root [String] 來源 CBETA XML P5a 路徑
23
25
  # @param figures [String] 插圖 路徑 (可由 https://github.com/cbeta-git/CBR2X-figures 取得)
@@ -85,9 +87,11 @@ class CBETA::P5aChecker
85
87
 
86
88
  def chk_text(node)
87
89
  return if node.text.strip.empty?
90
+
88
91
  if node.parent.name == 'div'
89
92
  error "[E02] 文字直接出現在 div 下, text: #{node.text.inspect}"
90
93
  end
94
+
91
95
  if node.text =~ /(\$|\{|\})/
92
96
  char = $1
93
97
 
@@ -99,6 +103,12 @@ class CBETA::P5aChecker
99
103
 
100
104
  error "[W02] 出現罕用字元: char: #{char}"
101
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
102
112
  end
103
113
 
104
114
  def display_errors
@@ -177,7 +187,11 @@ class CBETA::P5aChecker
177
187
  end
178
188
 
179
189
  def e_note(e)
180
- return unless e['place'] == 'inline'
190
+ unless e['place'] == 'inline'
191
+ traverse(e)
192
+ return
193
+ end
194
+
181
195
  if @element_stack.include?('inline_note')
182
196
  error "[W01] 夾注包夾注"
183
197
  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.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-05-26 00:00:00.000000000 Z
11
+ date: 2025-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unihan2