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.
- checksums.yaml +4 -4
- data/lib/cbeta/p5a_checker.rb +18 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 644f49e37566f3f90599849baa5b31c2df1a0ca28c76c530ec42ec8e839c5da5
|
4
|
+
data.tar.gz: 2293f8fcf48f5aceecf09e2731ef4c3825f6bc80ac97249105a8e435f1ad9100
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfdc23cf230a4e60a00085dade6a73f09352bc4ec0b24c29aaadb94c95e11fa692a3c4f1b7fb82c398b59238e36be365f65e0f0c8d67dcd52f24246318104d84
|
7
|
+
data.tar.gz: 272b18af22f0a121ba9d94311588602b1e4435782227759e6ca49d09c39cd42eb7cac56895a92671d598b218949810a832e60b201fa86e54706311f3bbef8eea
|
data/lib/cbeta/p5a_checker.rb
CHANGED
@@ -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
|