cbeta 0.5.0 → 0.5.1
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/p5a_to_epub.rb +94 -129
- data/lib/data/epub-donate.xhtml +0 -6
- data/lib/data/epub-readme.xhtml +8 -10
- data/lib/data/epub.css +8 -0
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 17bb523411446bf9b5c62e2f8d8f7fee94b4ece5
         | 
| 4 | 
            +
              data.tar.gz: 5c61e23af96517ac7ebee712aa436b0a0cc7b4a8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ed3587f8f479046027ba4eb0af8c9ad9c41e9a2e07ebc586046dfa08d8172039a636cc8d7d11edf69356c73d6c37009584f96805caf748c6c60521841e69eb32
         | 
| 7 | 
            +
              data.tar.gz: 7cd3eb6d05c5a2acce351ebd4c8326ba1e9830413a9270d88579ca0b00819f8007235d297e099808323f0108bd901a007c88d96ba9a1555141d82c9fc2985a65
         | 
    
        data/lib/cbeta/p5a_to_epub.rb
    CHANGED
    
    | @@ -17,16 +17,31 @@ class CBETA::P5aToEPUB | |
| 17 17 | 
             
              # 某版用字缺的符號
         | 
| 18 18 | 
             
              MISSING = '-'
         | 
| 19 19 |  | 
| 20 | 
            -
               | 
| 20 | 
            +
              SCRIPT_FOLDER = File.dirname(__FILE__)
         | 
| 21 | 
            +
              NAV_TEMPLATE = File.read(File.join(SCRIPT_FOLDER, '../data/epub-nav.xhtml'))
         | 
| 21 22 | 
             
              MAIN = 'main.xhtml'  
         | 
| 23 | 
            +
              DATA = File.join(SCRIPT_FOLDER, '../data')
         | 
| 22 24 |  | 
| 23 25 | 
             
              # @param temp_folder [String] 供 EPUB 暫存工作檔案的路徑
         | 
| 24 | 
            -
              # @param  | 
| 25 | 
            -
               | 
| 26 | 
            +
              # @param options [Hash]
         | 
| 27 | 
            +
              #   :epub_version [Integer] EPUB 版本,預設為 3
         | 
| 28 | 
            +
              #   :graphic_base [String] 圖檔路徑
         | 
| 29 | 
            +
              #   :readme [String] 說明檔,如果沒指定的話,就使用預設說明檔
         | 
| 30 | 
            +
              def initialize(temp_folder, options={})
         | 
| 26 31 | 
             
                @temp_folder = temp_folder
         | 
| 27 | 
            -
                @ | 
| 32 | 
            +
                @settings = {
         | 
| 33 | 
            +
                  epub_version: 3,
         | 
| 34 | 
            +
                  readme: File.join(DATA, 'epub-readme.xhtml')
         | 
| 35 | 
            +
                }
         | 
| 36 | 
            +
                @settings.merge!(options)
         | 
| 37 | 
            +
                puts @settings
         | 
| 28 38 | 
             
                @cbeta = CBETA.new
         | 
| 29 39 | 
             
                @gaijis = CBETA::Gaiji.new
         | 
| 40 | 
            +
                
         | 
| 41 | 
            +
                # 載入 unicode 1.1 字集列表
         | 
| 42 | 
            +
                fn = File.join(DATA, 'unicode-1.1.json')
         | 
| 43 | 
            +
                json = File.read(fn)
         | 
| 44 | 
            +
                @unicode1 = JSON.parse(json)
         | 
| 30 45 | 
             
              end
         | 
| 31 46 |  | 
| 32 47 | 
             
              # 將某個 xml 轉為一個 EPUB
         | 
| @@ -111,15 +126,20 @@ class CBETA::P5aToEPUB | |
| 111 126 | 
             
              private
         | 
| 112 127 |  | 
| 113 128 | 
             
              def copy_static_files(src, dest)
         | 
| 114 | 
            -
                 | 
| 115 | 
            -
                 | 
| 116 | 
            -
                FileUtils.copy(p1, p2)
         | 
| 129 | 
            +
                dest = File.join(@temp_folder, dest)
         | 
| 130 | 
            +
                FileUtils.copy(src, dest)
         | 
| 117 131 | 
             
              end
         | 
| 118 132 |  | 
| 119 133 | 
             
              def create_epub(output_path)
         | 
| 120 | 
            -
                copy_static_files( | 
| 121 | 
            -
                 | 
| 122 | 
            -
                 | 
| 134 | 
            +
                copy_static_files(@settings[:readme], 'readme.xhtml')
         | 
| 135 | 
            +
                
         | 
| 136 | 
            +
                src = File.join(DATA, 'epub-donate.xhtml')
         | 
| 137 | 
            +
                copy_static_files(src, 'donate.xhtml')
         | 
| 138 | 
            +
                
         | 
| 139 | 
            +
                src = File.join(DATA, 'epub.css')
         | 
| 140 | 
            +
                copy_static_files(src, 'cbeta.css')
         | 
| 141 | 
            +
                
         | 
| 142 | 
            +
                create_html_by_juan
         | 
| 123 143 | 
             
                create_nav_html
         | 
| 124 144 |  | 
| 125 145 | 
             
                title = @title
         | 
| @@ -136,10 +156,12 @@ class CBETA::P5aToEPUB | |
| 136 156 | 
             
                  date Date.today.to_s
         | 
| 137 157 | 
             
                }
         | 
| 138 158 |  | 
| 159 | 
            +
                juan_dir = File.join(@temp_folder, 'juans')
         | 
| 139 160 | 
             
                # in resources block, you can define resources by its relative path and datasource.
         | 
| 140 161 | 
             
                # item creator methods are: files, file.
         | 
| 141 162 | 
             
                builder.resources(:workdir => @temp_folder) {
         | 
| 142 163 | 
             
                  glob 'img/*'
         | 
| 164 | 
            +
                  file 'cbeta.css'
         | 
| 143 165 |  | 
| 144 166 | 
             
                  # this is navigation document.
         | 
| 145 167 | 
             
                  nav 'nav.xhtml'
         | 
| @@ -147,28 +169,54 @@ class CBETA::P5aToEPUB | |
| 147 169 | 
             
                  # ordered item. will be added to spine.
         | 
| 148 170 | 
             
                  ordered {
         | 
| 149 171 | 
             
                    file 'readme.xhtml'
         | 
| 150 | 
            -
                     | 
| 172 | 
            +
                    Dir.entries(juan_dir).sort.each do |f|
         | 
| 173 | 
            +
                      next if f.start_with? '.'
         | 
| 174 | 
            +
                      file "juans/#{f}"
         | 
| 175 | 
            +
                    end
         | 
| 151 176 | 
             
                    file 'donate.xhtml'
         | 
| 152 177 | 
             
                  }
         | 
| 153 178 | 
             
                }
         | 
| 179 | 
            +
                builder.book.version = @settings[:epub_version]
         | 
| 154 180 | 
             
                builder.generate_epub(output_path)
         | 
| 155 181 | 
             
                puts "output: #{output_path}"
         | 
| 156 182 | 
             
              end
         | 
| 157 183 |  | 
| 158 | 
            -
              def  | 
| 159 | 
            -
                 | 
| 160 | 
            -
                 | 
| 184 | 
            +
              def create_html_by_juan
         | 
| 185 | 
            +
                juans = @main_text.split(/(<juan \d+>)/)
         | 
| 186 | 
            +
                open = false
         | 
| 187 | 
            +
                fo = nil
         | 
| 188 | 
            +
                juan_no = nil
         | 
| 189 | 
            +
                fn = ''
         | 
| 190 | 
            +
                buf = ''
         | 
| 191 | 
            +
                # 一卷一檔
         | 
| 192 | 
            +
                juans.each do |j|
         | 
| 193 | 
            +
                  if j =~ /<juan (\d+)>$/
         | 
| 194 | 
            +
                    juan_no = $1.to_i
         | 
| 195 | 
            +
                    fn = "%03d.xhtml" % juan_no
         | 
| 196 | 
            +
                    output_path = File.join(@temp_folder, 'juans', fn)
         | 
| 197 | 
            +
                    fo = File.open(output_path, 'w')
         | 
| 198 | 
            +
                    open = true
         | 
| 199 | 
            +
                    s = <<eos
         | 
| 161 200 | 
             
            <html xmlns="http://www.w3.org/1999/xhtml">
         | 
| 162 201 | 
             
            <head>
         | 
| 163 202 | 
             
              <meta charset="utf-8" />
         | 
| 164 203 | 
             
              <title>#{@title}</title>
         | 
| 204 | 
            +
              <link rel="stylesheet" type="text/css" href="../cbeta.css" />
         | 
| 165 205 | 
             
            </head>
         | 
| 166 206 | 
             
            <body>
         | 
| 167 207 | 
             
            <div id='body'>
         | 
| 168 208 | 
             
            eos
         | 
| 169 | 
            -
             | 
| 170 | 
            -
             | 
| 171 | 
            -
             | 
| 209 | 
            +
                    fo.write(s)
         | 
| 210 | 
            +
                    fo.write(buf)
         | 
| 211 | 
            +
                    buf = ''
         | 
| 212 | 
            +
                  elsif open
         | 
| 213 | 
            +
                    fo.write(j + "\n</div><!-- end of div[@id='body'] -->\n")
         | 
| 214 | 
            +
                    fo.write('</body></html>')
         | 
| 215 | 
            +
                    fo.close
         | 
| 216 | 
            +
                  else
         | 
| 217 | 
            +
                    buf = j
         | 
| 218 | 
            +
                  end
         | 
| 219 | 
            +
                end
         | 
| 172 220 | 
             
              end
         | 
| 173 221 |  | 
| 174 222 | 
             
              def create_nav_html
         | 
| @@ -180,19 +228,6 @@ eos | |
| 180 228 | 
             
              end
         | 
| 181 229 |  | 
| 182 230 | 
             
              def handle_anchor(e)
         | 
| 183 | 
            -
                id = e['id']
         | 
| 184 | 
            -
                if e.has_attribute?('id')
         | 
| 185 | 
            -
                  if id.start_with?('nkr_note_orig')
         | 
| 186 | 
            -
                    note = @notes[id]
         | 
| 187 | 
            -
                    note_text = traverse(note)
         | 
| 188 | 
            -
                    n = id[/^nkr_note_orig_(.*)$/, 1]
         | 
| 189 | 
            -
                    @back += "<span class='footnote' id='n#{n}'>#{note_text}</span>\n"
         | 
| 190 | 
            -
                    return "<a class='noteAnchor' href='#n#{n}'></a>"
         | 
| 191 | 
            -
                  elsif id.start_with? 'fx'
         | 
| 192 | 
            -
                    return "<span class='star'>[*]</span>"
         | 
| 193 | 
            -
                  end
         | 
| 194 | 
            -
                end
         | 
| 195 | 
            -
             | 
| 196 231 | 
             
                if e.has_attribute?('type')
         | 
| 197 232 | 
             
                  if e['type'] == 'circle'
         | 
| 198 233 | 
             
                    return '◎'
         | 
| @@ -203,12 +238,7 @@ eos | |
| 203 238 | 
             
              end
         | 
| 204 239 |  | 
| 205 240 | 
             
              def handle_app(e)
         | 
| 206 | 
            -
                 | 
| 207 | 
            -
                if e['type'] == 'star'
         | 
| 208 | 
            -
                  c = e['corresp'][1..-1]
         | 
| 209 | 
            -
                  r = "<a class='noteAnchor star' href='#n#{c}'></a>"
         | 
| 210 | 
            -
                end
         | 
| 211 | 
            -
                r + traverse(e)
         | 
| 241 | 
            +
                traverse(e)
         | 
| 212 242 | 
             
              end
         | 
| 213 243 |  | 
| 214 244 | 
             
              def handle_byline(e)
         | 
| @@ -228,24 +258,7 @@ eos | |
| 228 258 | 
             
              end
         | 
| 229 259 |  | 
| 230 260 | 
             
              def handle_corr(e)
         | 
| 231 | 
            -
                 | 
| 232 | 
            -
                if e.parent.name == 'choice'
         | 
| 233 | 
            -
                  sic = e.parent.at_xpath('sic')
         | 
| 234 | 
            -
                  unless sic.nil?
         | 
| 235 | 
            -
                    @dila_note += 1
         | 
| 236 | 
            -
                    r = "<a class='noteAnchor dila' href='#dila_note#{@dila_note}'></a>"
         | 
| 237 | 
            -
             | 
| 238 | 
            -
                    note = @orig
         | 
| 239 | 
            -
                    sic_text = traverse(sic, 'back')
         | 
| 240 | 
            -
                    if sic_text.empty?
         | 
| 241 | 
            -
                      note += MISSING
         | 
| 242 | 
            -
                    else
         | 
| 243 | 
            -
                      note += sic_text
         | 
| 244 | 
            -
                    end
         | 
| 245 | 
            -
                    @back += "<span class='footnote_dila' id='dila_note#{@dila_note}'>#{note}</span>\n"
         | 
| 246 | 
            -
                  end
         | 
| 247 | 
            -
                end
         | 
| 248 | 
            -
                r + "<span class='cbeta'>%s</span>" % traverse(e)
         | 
| 261 | 
            +
                traverse(e)
         | 
| 249 262 | 
             
              end
         | 
| 250 263 |  | 
| 251 264 | 
             
              def handle_div(e)
         | 
| @@ -296,56 +309,34 @@ eos | |
| 296 309 | 
             
                  when 'SD-E35B'
         | 
| 297 310 | 
             
                    return ')'
         | 
| 298 311 | 
             
                  else
         | 
| 299 | 
            -
                    return  | 
| 312 | 
            +
                    return g['roman']
         | 
| 300 313 | 
             
                  end
         | 
| 301 314 | 
             
                end
         | 
| 302 315 |  | 
| 303 316 | 
             
                if gid.start_with?('RJ')
         | 
| 304 | 
            -
                  return  | 
| 317 | 
            +
                  return g['roman']
         | 
| 305 318 | 
             
                end
         | 
| 306 319 |  | 
| 307 320 | 
             
                default = ''
         | 
| 308 321 | 
             
                if g.has_key?('unicode')
         | 
| 309 | 
            -
                   | 
| 310 | 
            -
             | 
| 311 | 
            -
                  if (0x2A700..0x2CEAF).include? g['unicode'].hex
         | 
| 312 | 
            -
                    default = g['unicode-char']
         | 
| 313 | 
            -
                  else
         | 
| 314 | 
            -
                    return g['unicode-char'] # 直接採用 unicode
         | 
| 322 | 
            +
                  if @unicode1.include?(g['unicode'])
         | 
| 323 | 
            +
                    return g['unicode-char'] # unicode 1.1 直接用
         | 
| 315 324 | 
             
                  end
         | 
| 316 325 | 
             
                end
         | 
| 317 | 
            -
             | 
| 318 | 
            -
                nor = ''
         | 
| 319 | 
            -
                if g.has_key?('normal_unicode')
         | 
| 320 | 
            -
                  nor = g['normal_unicode']
         | 
| 321 | 
            -
                  default = nor if default.empty?
         | 
| 322 | 
            -
                end
         | 
| 323 | 
            -
             | 
| 324 | 
            -
                if g.has_key?('normal')
         | 
| 325 | 
            -
                  nor += ', ' unless nor==''
         | 
| 326 | 
            -
                  nor += g['normal']
         | 
| 327 | 
            -
                  default = g['normal'] if default.empty?
         | 
| 328 | 
            -
                end
         | 
| 329 | 
            -
             | 
| 330 | 
            -
                default = zzs if default.empty?
         | 
| 331 326 |  | 
| 332 | 
            -
                 | 
| 333 | 
            -
                unless @back.include?(href)
         | 
| 334 | 
            -
                  @back += "<span id='#{gid}' class='gaijiInfo' figure_url='#{href}' zzs='#{zzs}' nor='#{nor}'>#{default}</span>\n"
         | 
| 335 | 
            -
                end
         | 
| 336 | 
            -
                "<a class='gaijiAnchor' href='##{gid}'>#{default}</a>"
         | 
| 327 | 
            +
                zzs
         | 
| 337 328 | 
             
              end
         | 
| 338 329 |  | 
| 339 330 | 
             
              def handle_graphic(e)
         | 
| 340 331 | 
             
                url = e['url']
         | 
| 341 332 | 
             
                url.sub!(/^.*figures\/(.*)$/, '\1')
         | 
| 342 333 |  | 
| 343 | 
            -
                src = File.join(@graphic_base, url)
         | 
| 334 | 
            +
                src = File.join(@settings[:graphic_base], url)
         | 
| 344 335 | 
             
                basename = File.basename(src)
         | 
| 345 336 | 
             
                dest = File.join(@temp_folder, 'img', basename)
         | 
| 346 337 | 
             
                FileUtils.copy(src, dest)
         | 
| 347 338 |  | 
| 348 | 
            -
                "<img src='img/#{basename}' />"
         | 
| 339 | 
            +
                "<img src='../img/#{basename}' />"
         | 
| 349 340 | 
             
              end
         | 
| 350 341 |  | 
| 351 342 | 
             
              def handle_head(e)
         | 
| @@ -419,20 +410,7 @@ eos | |
| 419 410 | 
             
              end
         | 
| 420 411 |  | 
| 421 412 | 
             
              def handle_lem(e)
         | 
| 422 | 
            -
                r =  | 
| 423 | 
            -
                w = e['wit']
         | 
| 424 | 
            -
                if w.include? 'CBETA' and not w.include? @orig
         | 
| 425 | 
            -
                  @dila_note += 1
         | 
| 426 | 
            -
                  r = "<a class='noteAnchor dila' href='#dila_note#{@dila_note}'></a>"
         | 
| 427 | 
            -
                  r += "<span class='cbeta'>%s</span>" % traverse(e)
         | 
| 428 | 
            -
             | 
| 429 | 
            -
                  note = lem_note_cf(e)
         | 
| 430 | 
            -
                  note += lem_note_rdg(e)
         | 
| 431 | 
            -
                  @back += "<span class='footnote_dila' id='dila_note#{@dila_note}'>#{note}</span>\n"
         | 
| 432 | 
            -
                else
         | 
| 433 | 
            -
                  r = traverse(e)
         | 
| 434 | 
            -
                end
         | 
| 435 | 
            -
                r
         | 
| 413 | 
            +
                r = traverse(e)
         | 
| 436 414 | 
             
              end
         | 
| 437 415 |  | 
| 438 416 | 
             
              def handle_lg(e)
         | 
| @@ -465,7 +443,16 @@ eos | |
| 465 443 | 
             
              end
         | 
| 466 444 |  | 
| 467 445 | 
             
              def handle_milestone(e)
         | 
| 468 | 
            -
                ''
         | 
| 446 | 
            +
                r = ''
         | 
| 447 | 
            +
                if e['unit'] == 'juan'
         | 
| 448 | 
            +
                  r += "</div>" * @open_divs.size  # 如果有 div 跨卷,要先結束, ex: T55n2154, p. 680a29, 跨 19, 20 兩卷
         | 
| 449 | 
            +
                  @juan = e['n'].to_i
         | 
| 450 | 
            +
                  r += "<juan #{@juan}>"
         | 
| 451 | 
            +
                  @open_divs.each { |d|
         | 
| 452 | 
            +
                    r += "<div class='#{d['type']}'>"
         | 
| 453 | 
            +
                  }
         | 
| 454 | 
            +
                end
         | 
| 455 | 
            +
                r
         | 
| 469 456 | 
             
              end
         | 
| 470 457 |  | 
| 471 458 | 
             
              def handle_mulu(e)
         | 
| @@ -478,7 +465,8 @@ eos | |
| 478 465 |  | 
| 479 466 | 
             
                label = traverse(e, 'txt')
         | 
| 480 467 | 
             
                @mulu_count += 1
         | 
| 481 | 
            -
                 | 
| 468 | 
            +
                fn = "juans/%03d.xhtml" % @juan
         | 
| 469 | 
            +
                li = @current_nav.last.add_child("<li><a href='#{fn}#mulu#{@mulu_count}'>#{label}</a></li>").first
         | 
| 482 470 | 
             
                ol = li.add_child('<ol></ol>').first
         | 
| 483 471 | 
             
                @current_nav << ol
         | 
| 484 472 | 
             
                "<a id='mulu#{@mulu_count}' />"
         | 
| @@ -532,17 +520,13 @@ eos | |
| 532 520 | 
             
                  when 'equivalent'
         | 
| 533 521 | 
             
                    return ''
         | 
| 534 522 | 
             
                  when 'orig'
         | 
| 535 | 
            -
                    return  | 
| 523 | 
            +
                    return ''
         | 
| 536 524 | 
             
                  when 'orig_biao'
         | 
| 537 | 
            -
                    return  | 
| 525 | 
            +
                    return ''
         | 
| 538 526 | 
             
                  when 'orig_ke'
         | 
| 539 | 
            -
                    return  | 
| 527 | 
            +
                    return ''
         | 
| 540 528 | 
             
                  when 'mod'
         | 
| 541 | 
            -
                     | 
| 542 | 
            -
                    s = traverse(e)
         | 
| 543 | 
            -
                    @pass.pop
         | 
| 544 | 
            -
                    @back += "<span class='footnote_cb' id='n#{n}'>#{s}</span>\n"
         | 
| 545 | 
            -
                    return "<a class='noteAnchor' href='#n#{n}'></a>"
         | 
| 529 | 
            +
                    return ""
         | 
| 546 530 | 
             
                  when 'rest'
         | 
| 547 531 | 
             
                    return ''
         | 
| 548 532 | 
             
                  else
         | 
| @@ -556,31 +540,12 @@ eos | |
| 556 540 |  | 
| 557 541 | 
             
                if e.has_attribute?('place') && e['place']=='inline'
         | 
| 558 542 | 
             
                  r = traverse(e)
         | 
| 559 | 
            -
                  return " | 
| 543 | 
            +
                  return "(#{r})"
         | 
| 560 544 | 
             
                else
         | 
| 561 545 | 
             
                  return traverse(e)
         | 
| 562 546 | 
             
                end
         | 
| 563 547 | 
             
              end
         | 
| 564 548 |  | 
| 565 | 
            -
              def handle_note_orig(e, anchor_type=nil)
         | 
| 566 | 
            -
                n = e['n']
         | 
| 567 | 
            -
                @pass << false
         | 
| 568 | 
            -
                s = traverse(e)
         | 
| 569 | 
            -
                @pass.pop
         | 
| 570 | 
            -
                @back += "<span class='footnote_orig' id='n#{n}'>#{s}</span>\n"
         | 
| 571 | 
            -
             | 
| 572 | 
            -
                if @mod_notes.include? n
         | 
| 573 | 
            -
                  return ''
         | 
| 574 | 
            -
                else
         | 
| 575 | 
            -
                  label = case anchor_type
         | 
| 576 | 
            -
                  when 'biao' then " data-label='標#{n[-2..-1]}'"
         | 
| 577 | 
            -
                  when 'ke'   then " data-label='科#{n[-2..-1]}'"
         | 
| 578 | 
            -
                  else ''
         | 
| 579 | 
            -
                  end
         | 
| 580 | 
            -
                  return "<a class='noteAnchor' href='#n#{n}'#{label}></a>"
         | 
| 581 | 
            -
                end
         | 
| 582 | 
            -
              end
         | 
| 583 | 
            -
             | 
| 584 549 | 
             
              def handle_p(e)
         | 
| 585 550 | 
             
                r = "<div class='p'>\n"
         | 
| 586 551 | 
             
                r += traverse(e)
         | 
| @@ -705,10 +670,10 @@ eos | |
| 705 670 |  | 
| 706 671 | 
             
                @mulu_count = 0
         | 
| 707 672 | 
             
                @main_text = ''
         | 
| 708 | 
            -
                @back = ''
         | 
| 709 673 | 
             
                @dila_note = 0
         | 
| 710 674 |  | 
| 711 675 | 
             
                FileUtils::mkdir_p File.join(@temp_folder, 'img')
         | 
| 676 | 
            +
                FileUtils::mkdir_p File.join(@temp_folder, 'juans')
         | 
| 712 677 | 
             
              end
         | 
| 713 678 |  | 
| 714 679 | 
             
              def open_xml(fn)
         | 
| @@ -763,7 +728,7 @@ eos | |
| 763 728 | 
             
                  end
         | 
| 764 729 | 
             
                end
         | 
| 765 730 | 
             
              end
         | 
| 766 | 
            -
             | 
| 731 | 
            +
                
         | 
| 767 732 | 
             
              def to_html(e)
         | 
| 768 733 | 
             
                e.to_xml(encoding: 'UTF-8', pertty: true, :save_with => Nokogiri::XML::Node::SaveOptions::AS_XML)
         | 
| 769 734 | 
             
              end
         | 
    
        data/lib/data/epub-donate.xhtml
    CHANGED
    
    | @@ -1,11 +1,5 @@ | |
| 1 | 
            -
            <?xml version="1.0" encoding="utf-8" standalone="no"?>
         | 
| 2 | 
            -
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
         | 
| 3 | 
            -
              "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
         | 
| 4 | 
            -
             | 
| 5 1 | 
             
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW" xmlns:xml="http://www.w3.org/XML/1998/namespace">
         | 
| 6 2 | 
             
            <head>
         | 
| 7 | 
            -
              <link href="../Styles/stylesheet.css" rel="stylesheet" type="text/css" />
         | 
| 8 | 
            -
             | 
| 9 3 | 
             
              <title>贊助</title>
         | 
| 10 4 | 
             
            </head>
         | 
| 11 5 |  | 
    
        data/lib/data/epub-readme.xhtml
    CHANGED
    
    | @@ -1,11 +1,5 @@ | |
| 1 | 
            -
            <?xml version="1.0" encoding="utf-8" standalone="no"?>
         | 
| 2 | 
            -
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
         | 
| 3 | 
            -
              "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
         | 
| 4 | 
            -
             | 
| 5 1 | 
             
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW" xmlns:xml="http://www.w3.org/XML/1998/namespace">
         | 
| 6 2 | 
             
            <head>
         | 
| 7 | 
            -
              <link href="../Styles/stylesheet.css" rel="stylesheet" type="text/css" />
         | 
| 8 | 
            -
             | 
| 9 3 | 
             
              <title>說明</title>
         | 
| 10 4 | 
             
            </head>
         | 
| 11 5 |  | 
| @@ -14,13 +8,17 @@ | |
| 14 8 | 
             
                <h2>編輯說明</h2>
         | 
| 15 9 |  | 
| 16 10 | 
             
                <ul>
         | 
| 17 | 
            -
                  <li | 
| 11 | 
            +
                  <li>本電子書以「CBETA 電子佛典集成 Version 2014」為資料來源。</li>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  <li>漢字呈現以 Unicode 1.1 為基礎,不在此範圍的字則採用<a href="http://www.cbeta.org/format/rare-rule.php">組字式</a>表達。</li>
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  <li>梵文悉曇字及蘭札字均採用羅馬轉寫字,如無轉寫字則提供字型圖檔。</li>
         | 
| 18 16 |  | 
| 19 | 
            -
                  <li | 
| 17 | 
            +
                  <li>CBETA 對底本所做的修訂用字以紅色字元表示。(部份 ePub 閱讀器可能無法呈現指定的顏色)</li>
         | 
| 20 18 |  | 
| 21 | 
            -
                  <li | 
| 19 | 
            +
                  <li>若有發現任何問題,歡迎來函 <a href="mailto:service@cbeta.org">service@cbeta.org</a> 回報。</li>
         | 
| 22 20 |  | 
| 23 | 
            -
                  <li | 
| 21 | 
            +
                  <li><a href="http://www.cbeta.org/copyright.php">版權所有</a>,歡迎自由流通,但禁止營利使用。</li>
         | 
| 24 22 | 
             
                </ul><br />
         | 
| 25 23 | 
             
              </div>
         | 
| 26 24 | 
             
            </body>
         | 
    
        data/lib/data/epub.css
    ADDED
    
    
    
        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.5. | 
| 4 | 
            +
              version: 0.5.1
         | 
| 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- | 
| 11 | 
            +
            date: 2015-08-24 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
         | 
| @@ -28,6 +28,7 @@ files: | |
| 28 28 | 
             
            - lib/data/epub-donate.xhtml
         | 
| 29 29 | 
             
            - lib/data/epub-nav.xhtml
         | 
| 30 30 | 
             
            - lib/data/epub-readme.xhtml
         | 
| 31 | 
            +
            - lib/data/epub.css
         | 
| 31 32 | 
             
            - lib/data/gaiji.json
         | 
| 32 33 | 
             
            - lib/data/unicode-1.1.json
         | 
| 33 34 | 
             
            homepage: https://github.com/RayCHOU/ruby-cbeta
         |