cbeta 2.1.3 → 2.1.4
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.rb +0 -1
- data/lib/cbeta/p5a_to_simple_html.rb +4 -0
- metadata +2 -3
- data/lib/cbeta/p5a_parser.rb +0 -91
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c06aef5934c9e95c726d91bff646fa7716b27b4f
|
4
|
+
data.tar.gz: 4478e65a67161fed6c6289c27071f3aa19ab2430
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7754738c2f6f798cf2048952a3bc51d0caa5852f6f078584d098b36c61b1abf0bf9efa7d3c435487ac0b1049a6e4779c0b992772f0a3aa033b1cdda2548d4e0c
|
7
|
+
data.tar.gz: 4fd93f3203d0b49bc7f18efbb48227bc724b8e3f0c670ee804eb4caf6e3192b0edb6061ebe444f2a56f8dd2da06f51afa35cc1bff72285bfbce1f5cea3c8c1b6
|
data/lib/cbeta.rb
CHANGED
@@ -121,7 +121,6 @@ require 'cbeta/bm_to_text'
|
|
121
121
|
require 'cbeta/char_count'
|
122
122
|
require 'cbeta/char_freq'
|
123
123
|
require 'cbeta/html_to_pdf'
|
124
|
-
require 'cbeta/p5a_parser'
|
125
124
|
require 'cbeta/p5a_to_html'
|
126
125
|
require 'cbeta/p5a_to_html_for_every_edition'
|
127
126
|
require 'cbeta/p5a_to_html_for_pdf'
|
@@ -308,6 +308,7 @@ class CBETA::P5aToSimpleHTML
|
|
308
308
|
|
309
309
|
@orig = @cbeta.get_canon_abbr(vol[0])
|
310
310
|
abort "未處理底本" if @orig.nil?
|
311
|
+
@orig_short = @orig.sub(/^【(.*)】$/, '\1')
|
311
312
|
|
312
313
|
@vol = vol
|
313
314
|
@series = vol[0]
|
@@ -378,6 +379,9 @@ class CBETA::P5aToSimpleHTML
|
|
378
379
|
text += "<body>" + to_html(frag) + "</body></html>"
|
379
380
|
|
380
381
|
fn = ed.sub(/^【(.*?)】$/, '\1')
|
382
|
+
if fn != 'CBETA' and fn != @orig_short
|
383
|
+
fn = @orig_short + '→' + fn
|
384
|
+
end
|
381
385
|
fn = "#{fn}.html"
|
382
386
|
output_path = File.join(folder, fn)
|
383
387
|
File.write(output_path, text)
|
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.
|
4
|
+
version: 2.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ray Chou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-14 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
|
@@ -23,7 +23,6 @@ files:
|
|
23
23
|
- lib/cbeta/gaiji.rb
|
24
24
|
- lib/cbeta/html_to_pdf.rb
|
25
25
|
- lib/cbeta/html_to_text.rb
|
26
|
-
- lib/cbeta/p5a_parser.rb
|
27
26
|
- lib/cbeta/p5a_to_html.rb
|
28
27
|
- lib/cbeta/p5a_to_html_for_every_edition.rb
|
29
28
|
- lib/cbeta/p5a_to_html_for_pdf.rb
|
data/lib/cbeta/p5a_parser.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
class CBETA::P5aParser
|
2
|
-
|
3
|
-
# @example
|
4
|
-
#
|
5
|
-
# def handle_notes(e)
|
6
|
-
# ...
|
7
|
-
# end
|
8
|
-
#
|
9
|
-
# def traverse(e)
|
10
|
-
# e.children.each { |c| handle_nodes(c) }
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# xml_string = File.read(xml_file_name)
|
14
|
-
# parser = CBETA::P5aParser.new(xml_string, :traverse)
|
15
|
-
#
|
16
|
-
def initialize(xml_string, children_handler)
|
17
|
-
@doc = Nokogiri::XML(s)
|
18
|
-
@doc.remove_namespaces!()
|
19
|
-
@children_handler = children_handler
|
20
|
-
end
|
21
|
-
|
22
|
-
# @param e [Nokogiri::XML::Element]
|
23
|
-
# @param mode [String] 'html' or 'text', default value: 'html'
|
24
|
-
# @return [Hash]
|
25
|
-
# 回傳
|
26
|
-
# * :content [String] 要放在本文中的文字, 如果 mode=='html', 那麼本文文字會包含 footnote anchor
|
27
|
-
# * :footnote_text [String] 要放在 footnote 的文字
|
28
|
-
# * :footnote_resp [String]
|
29
|
-
# * 'orig': 表示這個註解是底本的註
|
30
|
-
# * 'CBETA': 表示這個註解是 CBETA 修訂過的註
|
31
|
-
def handle_note(e, mode='html')
|
32
|
-
r = {
|
33
|
-
content: '',
|
34
|
-
footnote_resp: nil,
|
35
|
-
footnote_text: nil
|
36
|
-
}
|
37
|
-
n = e['n']
|
38
|
-
if e.has_attribute?('type')
|
39
|
-
t = e['type']
|
40
|
-
case t
|
41
|
-
when 'equivalent' then return r
|
42
|
-
when 'orig' then return handle_note_orig(e, mode)
|
43
|
-
when 'orig_biao' then return handle_note_orig(e, mode, 'biao')
|
44
|
-
when 'orig_ke' then return handle_note_orig(e, mode, 'ke')
|
45
|
-
when 'mod'
|
46
|
-
r[:footnote_resp] = 'CBETA'
|
47
|
-
r[:footnote_content] = @children_handler.call(e)
|
48
|
-
if mode == 'html'
|
49
|
-
r[:content] = "<a class='noteAnchor' href='#n#{n}'></a>"
|
50
|
-
end
|
51
|
-
return r
|
52
|
-
when 'rest' then return r
|
53
|
-
else
|
54
|
-
return r if t.start_with?('cf')
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
if e.has_attribute?('resp')
|
59
|
-
return r if e['resp'].start_with? 'CBETA'
|
60
|
-
end
|
61
|
-
|
62
|
-
s = @children_handler.call(e)
|
63
|
-
r[:content] = s
|
64
|
-
if e.has_attribute?('place') && e['place']=='inline'
|
65
|
-
if mode == 'html'
|
66
|
-
r[:content] = "<span class='doube-line-note'>#{s}</span>"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
r
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
73
|
-
|
74
|
-
def handle_note_orig(e, mode, anchor_type=nil)
|
75
|
-
r = { footnote_resp: 'orig' }
|
76
|
-
n = e['n']
|
77
|
-
r[:footnote_content] = @children_handler.call(e)
|
78
|
-
|
79
|
-
if mode == 'html'
|
80
|
-
label = case anchor_type
|
81
|
-
when 'biao' then " data-label='標#{n[-2..-1]}'"
|
82
|
-
when 'ke' then " data-label='科#{n[-2..-1]}'"
|
83
|
-
else ''
|
84
|
-
end
|
85
|
-
r[:content] = "<a class='noteAnchor' href='#n#{n}'#{label}></a>"
|
86
|
-
end
|
87
|
-
|
88
|
-
r
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|