cbeta 2.1.3 → 2.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|