cbeta 2.1.6 → 2.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ec72fbd4c93e57fc423a28a190984256ab7e2dc
4
- data.tar.gz: 68977b6a4c131378cc98f7252bab67b7a511bb57
3
+ metadata.gz: 9eb8fa0e6bc0a0b9a049fc6a9c24ce1b57594575
4
+ data.tar.gz: 3dd5c4dfb50fb78d0290d8dd558710ede86df997
5
5
  SHA512:
6
- metadata.gz: 982ff7caa25181074d1d59d6f49e42b43699cc20208c2661a443d0004845a8358a995c02a9f2135f6fd0725792a2bc29fff34dc2aaac666177d77fade2c88112
7
- data.tar.gz: c5020c2d999986051a2c8a38f72a6ea03f62ad105019eb018096ffe4f7a746afef3eebf186e29323f7d8cf1dc0f003807b109288ce676e344d0f549d530b9a4b
6
+ metadata.gz: 4eab2c2ddea6eaad8ef585ca61e53b96d47ef39f46ae074d2b0a4a6aeb8e4d8958c4a6f11a5a6e443a9f82507a09e0583f6e597c67969bb18262fb2674e5a7ad
7
+ data.tar.gz: d4379cf58742674b48d866ef0907c32c773c0fab09606cbd3e88f68aaab5622e69e40fab3d7f7e4d8a0489c0a13d36ebb1982920b8c9998b25b191fd6a28b94b
@@ -179,7 +179,7 @@ class CBETA::P5aToHTMLForEveryEdition
179
179
  @notes_dila[@juan] << "<span class='footnote dila' id='dila_note#{n}'>#{note}</span>"
180
180
  end
181
181
  end
182
- r + "<r w='【CBETA】' l='#{@lb}' w='#{@char_count}'>%s</r>" % traverse(e)
182
+ r + "<r w='【CBETA】' l='#{@lb}' w='#{@char_count}'><span class='cbeta'>%s</span></r>" % traverse(e)
183
183
  end
184
184
 
185
185
  def handle_div(e)
@@ -500,7 +500,7 @@ class CBETA::P5aToHTMLForEveryEdition
500
500
  @pass.pop
501
501
  #@back[@juan] = "<span class='footnote_cb' id='n#{n}'>#{s}</span>\n"
502
502
  @notes_mod[@juan][n] = s
503
- return "<r w='【CBETA】'><a class='noteAnchor' href='#n#{n}'></a></r>"
503
+ return "<r w='【CBETA】'><a class='noteAnchor cb' href='#n#{n}'></a></r>"
504
504
  when 'rest'
505
505
  return ''
506
506
  else
@@ -527,13 +527,18 @@ class CBETA::P5aToHTMLForEveryEdition
527
527
  @pass.pop
528
528
  @notes_orig[@juan][n] = s
529
529
  @notes_mod[@juan][n] = s
530
+
531
+ c = @series
532
+
533
+ # 如果 CBETA 沒有修訂,就跟底本的註一樣
534
+ c += " cb" unless @mod_notes.include? n
530
535
 
531
536
  label = case anchor_type
532
537
  when 'biao' then " data-label='標#{n[-2..-1]}'"
533
538
  when 'ke' then " data-label='科#{n[-2..-1]}'"
534
539
  else ''
535
540
  end
536
- s = "<a class='noteAnchor' href='#n#{n}'#{label}></a>"
541
+ s = "<a class='noteAnchor #{c}' href='#n#{n}'#{label}></a>"
537
542
  r = "<r w='#{@orig}'>#{s}</r>"
538
543
 
539
544
  unless @mod_notes.include? n
@@ -879,6 +884,7 @@ class CBETA::P5aToHTMLForEveryEdition
879
884
  #{copyright}
880
885
  </body></html>
881
886
  eos
887
+ puts "write #{output_path}"
882
888
  File.write(output_path, text)
883
889
  end
884
890
  end
@@ -128,6 +128,16 @@ class CBETA::P5aToText
128
128
  end
129
129
  end
130
130
 
131
+ # 取得所有對校版本
132
+ def get_editions(doc)
133
+ r = Set.new [@orig, "【CBETA】"] # 至少有底本及 CBETA 兩個版本
134
+ doc.xpath('//lem|//rdg').each do |e|
135
+ w = e['wit'].scan(/【.*?】/)
136
+ r.merge w
137
+ end
138
+ r
139
+ end
140
+
131
141
  def handle_anchor(e)
132
142
  if e.has_attribute?('type')
133
143
  if e['type'] == 'circle'
@@ -274,12 +284,16 @@ class CBETA::P5aToText
274
284
  end
275
285
 
276
286
  def handle_lem(e)
277
- r = ''
278
- r = traverse(e)
279
- w = e['wit'].scan(/【.*?】/)
280
- @editions.merge w
281
- w = w.join(' ')
282
- "<r w='#{w}'>#{r}</r>"
287
+ # 沒有 rdg 的版本,用字同 lem
288
+ editions = Set.new @editions
289
+ e.xpath('./following-sibling::rdg').each do |rdg|
290
+ rdg['wit'].scan(/【.*?】/).each do |w|
291
+ editions.delete w
292
+ end
293
+ end
294
+
295
+ w = editions.to_a.join(' ')
296
+ "<r w='#{w}'>%s</r>" % traverse(e)
283
297
  end
284
298
 
285
299
  def handle_lg(e)
@@ -363,10 +377,7 @@ class CBETA::P5aToText
363
377
  end
364
378
 
365
379
  def handle_rdg(e)
366
- r = traverse(e)
367
- w = e['wit'].scan(/【.*?】/)
368
- @editions.merge w
369
- "<r w='#{e['wit']}'>#{r}</r>"
380
+ "<r w='#{e['wit']}'>%s</r>" % traverse(e)
370
381
  end
371
382
 
372
383
  def handle_row(e)
@@ -385,7 +396,7 @@ class CBETA::P5aToText
385
396
  puts "convert sutra #{xml_fn}"
386
397
  @dila_note = 0
387
398
  @div_count = 0
388
- @editions = Set.new [@orig, "【CBETA】"] # 至少有底本跟CBETA兩種版本
399
+ #@editions = Set.new [@orig, "【CBETA】"] # 至少有底本跟CBETA兩種版本
389
400
  @in_l = false
390
401
  @juan = 0
391
402
  @lg_row_open = false
@@ -510,6 +521,8 @@ class CBETA::P5aToText
510
521
  def parse_xml(xml_fn)
511
522
  doc = open_xml(xml_fn)
512
523
  root = doc.root()
524
+
525
+ @editions = get_editions(doc)
513
526
 
514
527
  body = root.xpath("text/body")[0]
515
528
  traverse(body)
@@ -531,9 +544,10 @@ class CBETA::P5aToText
531
544
  @editions.each do |ed|
532
545
  frag = Nokogiri::XML.fragment(txt)
533
546
  frag.search("r").each do |node|
534
- if node['w'] != ed
535
- node.remove
547
+ if node['w'].include? ed
548
+ node.add_previous_sibling node.inner_html
536
549
  end
550
+ node.remove
537
551
  end
538
552
  text = frag.content
539
553
  text = appify(text) if @settings[:format] == 'app'
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: 2.1.6
4
+ version: 2.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2016-01-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby gem for use Chinese Buddhist Text resources made by CBETA (http://www.cbeta.org).
14
14
  email: zhoubx@gmail.com