cbeta 1.1.15 → 1.1.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cbeta.rb +111 -0
  3. data/lib/cbeta/p5a_to_epub.rb +6 -2
  4. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84a0dbdb1f5f2be42922c7b7141d33549583599b
4
- data.tar.gz: 55fbf7454a4da8b90e4f8776033e37101c938c64
3
+ metadata.gz: 96caf201945a8e525a455312cea612b569d13481
4
+ data.tar.gz: d5136a4f769b9ed10f23e78d65e96ba8ba781651
5
5
  SHA512:
6
- metadata.gz: 59057ac310723e0217751c0c57a010c269ec09b7c1c1be02ea478ab2f2b890db6455e1a84c49bfbf9517d51a160618aae60b4b54f1570b6f76052ed9eb3a114f
7
- data.tar.gz: a4aecb1d46a3068f689500b293b5ca7e0014c0ee281d98dc6d4f6552344dc5a11fc9684043d78e81921c601ab7075828ba31a102335a83b09afe3a40dad7356b
6
+ metadata.gz: b6bca7ac8a6f10024275360d7e15cc7b7bc16f81ff0c304cf3e24edff67e177c43990fea1b363f0976f9faa1aeb14c500c7582be9a596af7ef98a7792430d4d4
7
+ data.tar.gz: e2361d5614e1e6861aa27d9f38eb86543ef21accc59f777fefb0faad3a921aa6afe04e25c44cb5bf513e94b7960393f940334f7e3626d45e095bd818fe269511
data/lib/cbeta.rb ADDED
@@ -0,0 +1,111 @@
1
+ # Ruby bools for access resources produced by CBETA
2
+ # (Chinese Buddhist Electronic Text Association, http://www.cbeta.org)
3
+ #
4
+ # 存取 CBETA 資源的 Ruby 工具
5
+
6
+ require 'csv'
7
+
8
+ class CBETA
9
+ # 將行首資訊轉為引用格式
10
+ #
11
+ # @param linehead [String] 行首資訊, 例如:T85n2838_p1291a03
12
+ # @return [String] 引用格式的出處資訊,例如:T85, no. 2838, p. 1291, a03
13
+ #
14
+ # @example
15
+ # CBETA.linehead_to_s('T85n2838_p1291a03')
16
+ # # return "T85, no. 2838, p. 1291, a03"
17
+ def self.linehead_to_s(linehead)
18
+ linehead.match(/^([A-Z]\d+)n(.*)_p(\d+)([a-z]\d+)$/) {
19
+ return "#{$1}, no. #{$2}, p. #{$3}, #{$4}"
20
+ }
21
+ nil
22
+ end
23
+
24
+ # 傳入 蘭札體 缺字碼,傳回 Unicode PUA 字元
25
+ def self.ranjana_pua(gid)
26
+ i = 0x10000 + gid[-4..-1].hex
27
+ [i].pack("U")
28
+ end
29
+
30
+ # 傳入 悉曇字 缺字碼,傳回 Unicode PUA 字元
31
+ def self.siddham_pua(gid)
32
+ i = 0xFA000 + gid[-4..-1].hex
33
+ [i].pack("U")
34
+ end
35
+
36
+ # 載入藏經資料
37
+ def initialize()
38
+ fn = File.join(File.dirname(__FILE__), 'data/canons.csv')
39
+ text = File.read(fn)
40
+ @canon_abbr = {}
41
+ @canon_nickname = {}
42
+ CSV.parse(text, :headers => true) do |row|
43
+ id = row['id']
44
+ unless row['nickname'].nil?
45
+ @canon_nickname[id] = row['nickname']
46
+ end
47
+ next if row['abbreviation'].nil?
48
+ next if row['abbreviation'].empty?
49
+ @canon_abbr[id] = row['abbreviation']
50
+ end
51
+
52
+ fn = File.join(File.dirname(__FILE__), 'data/categories.json')
53
+ s = File.read(fn)
54
+ @categories = JSON.parse(s)
55
+ end
56
+
57
+ # @param id [String] 藏經 ID, 例如大正藏的 ID 是 "T"
58
+ # @return [String] 藏經短名,例如 "大正藏"
59
+ def get_canon_nickname(id)
60
+ return nil unless @canon_nickname.key? id
61
+ @canon_nickname[id]
62
+ end
63
+
64
+ # 取得藏經略符
65
+ #
66
+ # @param id [String] 藏經 ID, 例如大正藏的 ID 是 "T"
67
+ # @return [String] 藏經略符,例如 "【大】"
68
+ #
69
+ # @example
70
+ # cbeta = CBETA.new
71
+ # cbeta.get_canon_symbol('T') # return "【大】"
72
+ def get_canon_symbol(id)
73
+ return nil unless @canon_abbr.key? id
74
+ @canon_abbr[id]
75
+ end
76
+
77
+ # 取得藏經略名
78
+ #
79
+ # @param id [String] 藏經 ID, 例如大正藏的 ID 是 "T"
80
+ # @return [String] 藏經短名,例如 "大"
81
+ #
82
+ # @example
83
+ # cbeta = CBETA.new
84
+ # cbeta.get_canon_abbr('T') # return "大"
85
+ def get_canon_abbr(id)
86
+ r = get_canon_symbol(id)
87
+ return nil if r.nil?
88
+ r.sub(/^【(.*?)】$/, '\1')
89
+ end
90
+
91
+ # 傳入經號,取得部類
92
+ # @param book_id [String] Book ID (經號), ex. "T0220"
93
+ # @return [String] 部類名稱,例如 "阿含部類"
94
+ #
95
+ # @example
96
+ # cbeta = CBETA.new
97
+ # cbeta.get_category('T0220') # return '般若部類'
98
+ def get_category(book_id)
99
+ @categories[book_id]
100
+ end
101
+ end
102
+
103
+ require 'cbeta/gaiji'
104
+ require 'cbeta/bm_to_text'
105
+ require 'cbeta/p5a_to_epub'
106
+ require 'cbeta/p5a_to_html'
107
+ require 'cbeta/p5a_to_html_for_every_edition'
108
+ require 'cbeta/p5a_to_simple_html'
109
+ require 'cbeta/p5a_to_text'
110
+ require 'cbeta/p5a_validator'
111
+ require 'cbeta/html_to_text'
@@ -90,6 +90,7 @@ class CBETA::P5aToEPUB
90
90
  # c = CBETA::P5aToEPUB.new(TEMP, IMG)
91
91
  # c.convert_folder('/Users/ray/Documents/Projects/D道安/xml-p5a/DA', '/temp/cbeta-epub/DA')
92
92
  def convert_folder(input_folder, output_folder)
93
+ puts "convert folder: #{input_folder} to #{output_folder}"
93
94
  @todo = {}
94
95
 
95
96
  # 先檢視整個資料夾,哪些是要多檔合一
@@ -168,12 +169,13 @@ class CBETA::P5aToEPUB
168
169
 
169
170
  title = @title
170
171
  book_id = @book_id
172
+ creator = @author
171
173
  builder = GEPUB::Builder.new {
172
174
  language 'zh-TW'
173
175
  unique_identifier "http://www.cbeta.org/#{book_id}", 'BookID', 'URL'
174
176
  title title
175
177
 
176
- creator 'CBETA'
178
+ creator creator
177
179
 
178
180
  contributors 'DILA'
179
181
 
@@ -752,7 +754,7 @@ eos
752
754
  @current_nav = [@nav_root_ol]
753
755
 
754
756
  if @settings[:front_page_title]
755
- @nav_root_ol.add_child("<li><a href='readme.xhtml'>編輯說明</a></li>")
757
+ @nav_root_ol.add_child("<li><a href='front.xhtml'>編輯說明</a></li>")
756
758
  end
757
759
 
758
760
  li = @nav_root_ol.add_child("<li><a href='#'>章節目次</a></li>").first
@@ -807,6 +809,8 @@ eos
807
809
  @title = traverse(e, 'txt')
808
810
  @title = @title.split()[-1]
809
811
 
812
+ @author = doc.at_xpath("//titleStmt/author").text
813
+
810
814
  read_mod_notes(doc)
811
815
 
812
816
  root = doc.root()
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: 1.1.15
4
+ version: 1.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Chou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2015-11-03 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
@@ -16,6 +16,7 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/cbeta.rb
19
20
  - lib/cbeta/bm_to_text.rb
20
21
  - lib/cbeta/gaiji.rb
21
22
  - lib/cbeta/html_to_text.rb