cbeta 3.6.2 → 3.6.3

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 +18 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2007fa55a92c4a68dc438764c107ffbc212bb3b6010a142cd461f6dd4b94836
4
- data.tar.gz: 57268cdd51b3390c5e0d636d26d31a1f9893d7cdae9b4e5e8b42f95db0f544af
3
+ metadata.gz: 644f49e37566f3f90599849baa5b31c2df1a0ca28c76c530ec42ec8e839c5da5
4
+ data.tar.gz: 2293f8fcf48f5aceecf09e2731ef4c3825f6bc80ac97249105a8e435f1ad9100
5
5
  SHA512:
6
- metadata.gz: 46e9830b7171683c4e43642c8eef1851e059cde4cb1696df85bb7fea7d48e4d28a1728975a9a8c36cdd3b6591f8b0d0290f74123bb29c44dee2d4a41425453a9
7
- data.tar.gz: 36db93a0d3bc3794b248aa249bea059f53c4c176de4263b19f8abcf30799dd9a17b1323c28e9697645f511452e6b118d09a67279f8f1349a1b5e59dae98a76fe
6
+ metadata.gz: cfdc23cf230a4e60a00085dade6a73f09352bc4ec0b24c29aaadb94c95e11fa692a3c4f1b7fb82c398b59238e36be365f65e0f0c8d67dcd52f24246318104d84
7
+ data.tar.gz: 272b18af22f0a121ba9d94311588602b1e4435782227759e6ca49d09c39cd42eb7cac56895a92671d598b218949810a832e60b201fa86e54706311f3bbef8eea
@@ -1,6 +1,12 @@
1
1
  require_relative 'cbeta_share'
2
2
 
3
3
  # 檢查 CBETA XML P5a
4
+ # 錯誤類型
5
+ # [E01] 行號重複
6
+ # [E02] 文字直接出現在 div 下
7
+ # [E03] 星號校勘 app 沒有對應的 note
8
+ # 警告類型
9
+ # [W01] 夾注包夾注
4
10
  class CBETA::P5aChecker
5
11
  # @param xml_root [String] 來源 CBETA XML P5a 路徑
6
12
  # @param figures [String] 插圖 路徑 (可由 https://github.com/cbeta-git/CBR2X-figures 取得)
@@ -108,6 +114,16 @@ class CBETA::P5aChecker
108
114
  traverse(e)
109
115
  end
110
116
 
117
+ def e_note(e)
118
+ return unless e['place'] == 'inline'
119
+ if @element_stack.include?('inline_note')
120
+ @errors << "[W01] 夾注包夾注: #{@basename}, lb: #{@lb}\n"
121
+ end
122
+ @element_stack << 'inline_note'
123
+ traverse(e)
124
+ @element_stack.pop
125
+ end
126
+
111
127
  def e_rdg(e)
112
128
  return if e['type'] == 'cbetaRemark'
113
129
  unless e.key?('wit')
@@ -147,6 +163,7 @@ class CBETA::P5aChecker
147
163
  doc.remove_namespaces!
148
164
  @lbs = Set.new
149
165
  read_notes(doc)
166
+ @element_stack = []
150
167
  traverse(doc.root)
151
168
  else
152
169
  @errors << "錯誤: #{@basename} not well-formed\n"
@@ -160,6 +177,7 @@ class CBETA::P5aChecker
160
177
  when 'graphic' then e_graphic(e)
161
178
  when 'lb' then e_lb(e)
162
179
  when 'lem' then e_lem(e)
180
+ when 'note' then e_note(e)
163
181
  when 'rdg' then e_rdg(e)
164
182
  else traverse(e)
165
183
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbeta
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.2
4
+ version: 3.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou