cbeta 0.4.1 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6a64090261cde9c8c6439a1db03c400b6d4c686
4
- data.tar.gz: cb476a970501ea55eb5cc533f2fc8415a79fda18
3
+ metadata.gz: 1c29d0e70255be20d828cecb8f3feff8f0d4b448
4
+ data.tar.gz: f90911d3955acb1f491e1e7c61fd1797617aa8f2
5
5
  SHA512:
6
- metadata.gz: f07988a13bd0e60023634a26c7fab92d9da0a0b3ed7ed1872b1057a8f075b2077f2064f4b87dae542f89cc860a5b4664274202c7bbe3dba5671346ddc1d169b4
7
- data.tar.gz: 998be24e731ace0358da228612ec72b5fa435cc1beb0f5f91da174329627d2ac868c06fd1f6f4cd9e1391b3f996c19207f4ce1f764a95f1665d946a9803416d5
6
+ metadata.gz: 2a545c0cb3fdc26d8b79a79172112b967f225aadaf03afe41b4117acfc44a67f7626cb1f07cb3262d0b6b4041978af9f87f15f9b6d4b574472f5da6c81153d21
7
+ data.tar.gz: fcad67ccefa4b4250a6d236671373cc4586f48d4da49b60bfddb659ae1fc0246e613f31e580ad6958b0cd0a1a358b68f9b37f34764a95efbe43f94e8711e8b7e
@@ -20,6 +20,18 @@ class CBETA
20
20
  }
21
21
  nil
22
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
23
35
 
24
36
  # 載入藏經資料
25
37
  def initialize()
@@ -27,9 +27,9 @@ class CBETA::P5aToHTML
27
27
  @gaijis = CBETA::Gaiji.new
28
28
 
29
29
  # 載入 unicode 1.1 字集列表
30
- fn = File.join(File.dirname(__FILE__), 'unicode-1.1.json')
31
- json = File.read(fn)
32
- @unicode1 = JSON.parse(json)
30
+ #fn = File.join(File.dirname(__FILE__), 'unicode-1.1.json')
31
+ #json = File.read(fn)
32
+ #@unicode1 = JSON.parse(json)
33
33
  end
34
34
 
35
35
  # 將 CBETA XML P5a 轉為 HTML
@@ -175,7 +175,7 @@ class CBETA::P5aToHTML
175
175
 
176
176
  def handle_g(e, mode)
177
177
  # if 有 <mapping type="unicode">
178
- # if unicode 1.1 範圍裡
178
+ # if 不在 Unicode Extension C, D, E 範圍裡
179
179
  # 直接採用
180
180
  # else
181
181
  # 預設呈現 unicode, 但仍包缺字資訊,供點選開 popup
@@ -218,10 +218,12 @@ class CBETA::P5aToHTML
218
218
 
219
219
  default = ''
220
220
  if g.has_key?('unicode')
221
- if @unicode1.include?(g['unicode'])
222
- return g['unicode-char'] # unicode 1.1 直接用
223
- else
221
+ #if @unicode1.include?(g['unicode'])
222
+ # 如果在 unicode ext-C, ext-D, ext-E 範圍內
223
+ if (0x2A700..0x2CEAF).include? g['unicode'].hex
224
224
  default = g['unicode-char']
225
+ else
226
+ return g['unicode-char'] # 直接採用 unicode
225
227
  end
226
228
  end
227
229
 
@@ -98,7 +98,9 @@ class CBETA::P5aToSimpleHTML
98
98
  end
99
99
 
100
100
  def handle_g(e)
101
- # if 有 <mapping type="unicode">
101
+ # if 悉曇字、蘭札體
102
+ # 使用 Unicode PUA
103
+ # else if 有 <mapping type="unicode">
102
104
  # 直接採用
103
105
  # else if 有 <mapping type="normal_unicode">
104
106
  # 採用 normal_unicode
@@ -111,18 +113,21 @@ class CBETA::P5aToSimpleHTML
111
113
  abort "Line:#{__LINE__} 無缺字資料:#{gid}" if g.nil?
112
114
  zzs = g['zzs']
113
115
 
114
- if gid.start_with?('SD')
116
+ if gid.start_with?('SD') # 悉曇字
115
117
  case gid
116
118
  when 'SD-E35A'
117
119
  return '('
118
120
  when 'SD-E35B'
119
121
  return ')'
120
122
  else
121
- return g['roman']
123
+ return CBETA.siddham_pua(gid)
122
124
  end
123
125
  end
124
126
 
125
- return g['roman'] if gid.start_with?('RJ')
127
+ if gid.start_with? 'RJ' # 蘭札體
128
+ return CBETA.ranjana_pua(gid)
129
+ end
130
+
126
131
  return g['unicode-char'] if g.has_key?('unicode')
127
132
  return g['normal_unicode'] if g.has_key?('normal_unicode')
128
133
  return g['normal'] if g.has_key?('normal')
@@ -191,14 +191,12 @@ class CBETA::P5aToText
191
191
  when 'SD-E35B'
192
192
  return ')'
193
193
  else
194
- i = 0xFA000 + gid[-4..-1].to_i(16)
195
- return [i].pack("U")
194
+ return CBETA.siddham_pua(gid)
196
195
  end
197
196
  end
198
197
 
199
- if gid.start_with?('RJ') # 蘭札體
200
- i = 0x10000 + gid[-4..-1].to_i(16)
201
- return [i].pack("U")
198
+ if gid.start_with?('RJ') # 蘭札體
199
+ return CBETA.ranjana_pua(gid)
202
200
  end
203
201
 
204
202
  return g['unicode-char'] if g.has_key?('unicode')
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: 0.4.1
4
+ version: 0.4.3
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-08-18 00:00:00.000000000 Z
11
+ date: 2015-08-20 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