cbeta 1.1.1 → 1.1.2
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 +8 -4
 - data/lib/cbeta/p5a_to_text.rb +28 -17
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bb15f5b135465307d5d432fd1760a26f2e5ce2b2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: afba7a55bc4cfcae52a9238c55664163361aa1df
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 567a960b85aa16bd7ca3f60084d82c2953ceaaf63260c7640ee53172e1af118742f5b3e24d2f9767cc504e54cd20f1fd6ad0892bf2c9af01cf023612fb3965b0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e27de657de8b2bbeb09ab052d1786188ff510ff35b75197b00c050b371f1fcff4fbd33045d17c2043866f6302ebe6f1f5c27a8dde61cc400cc0a726acbff855e
         
     | 
    
        data/lib/cbeta/p5a_to_epub.rb
    CHANGED
    
    | 
         @@ -67,10 +67,7 @@ class CBETA::P5aToEPUB 
     | 
|
| 
       67 
67 
     | 
    
         
             
              # @param output_paath [String] 輸出 EPUB 檔路徑
         
     | 
| 
       68 
68 
     | 
    
         
             
              def convert_file(input_path, output_path)
         
     | 
| 
       69 
69 
     | 
    
         
             
                return false unless input_path.end_with? '.xml'
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                FileUtils.remove_dir(@temp_folder, force=true)
         
     | 
| 
       72 
     | 
    
         
            -
                FileUtils::mkdir_p @temp_folder
         
     | 
| 
       73 
     | 
    
         
            -
                
         
     | 
| 
      
 70 
     | 
    
         
            +
                  
         
     | 
| 
       74 
71 
     | 
    
         
             
                @book_id = File.basename(input_path, ".xml")
         
     | 
| 
       75 
72 
     | 
    
         | 
| 
       76 
73 
     | 
    
         
             
                sutra_init
         
     | 
| 
         @@ -142,6 +139,11 @@ class CBETA::P5aToEPUB 
     | 
|
| 
       142 
139 
     | 
    
         | 
| 
       143 
140 
     | 
    
         
             
              private
         
     | 
| 
       144 
141 
     | 
    
         | 
| 
      
 142 
     | 
    
         
            +
              def clear_temp_folder
         
     | 
| 
      
 143 
     | 
    
         
            +
                FileUtils.remove_dir(@temp_folder, force=true)
         
     | 
| 
      
 144 
     | 
    
         
            +
                FileUtils::mkdir_p @temp_folder
         
     | 
| 
      
 145 
     | 
    
         
            +
              end
         
     | 
| 
      
 146 
     | 
    
         
            +
              
         
     | 
| 
       145 
147 
     | 
    
         
             
              def copy_static_files(src, dest)
         
     | 
| 
       146 
148 
     | 
    
         
             
                dest = File.join(@temp_folder, dest)
         
     | 
| 
       147 
149 
     | 
    
         
             
                FileUtils.copy(src, dest)
         
     | 
| 
         @@ -731,6 +733,8 @@ eos 
     | 
|
| 
       731 
733 
     | 
    
         
             
              end
         
     | 
| 
       732 
734 
     | 
    
         | 
| 
       733 
735 
     | 
    
         
             
              def sutra_init
         
     | 
| 
      
 736 
     | 
    
         
            +
                clear_temp_folder
         
     | 
| 
      
 737 
     | 
    
         
            +
                
         
     | 
| 
       734 
738 
     | 
    
         
             
                s = NAV_TEMPLATE % '<ol></ol>'
         
     | 
| 
       735 
739 
     | 
    
         
             
                @nav_doc = Nokogiri::XML(s)
         
     | 
| 
       736 
740 
     | 
    
         | 
    
        data/lib/cbeta/p5a_to_text.rb
    CHANGED
    
    | 
         @@ -23,10 +23,18 @@ class CBETA::P5aToText 
     | 
|
| 
       23 
23 
     | 
    
         
             
              # @param xml_root [String] 來源 CBETA XML P5a 路徑
         
     | 
| 
       24 
24 
     | 
    
         
             
              # @param output_root [String] 輸出 Text 路徑
         
     | 
| 
       25 
25 
     | 
    
         
             
              # @param format [String] 輸出格式,例:'app'
         
     | 
| 
       26 
     | 
    
         
            -
               
     | 
| 
      
 26 
     | 
    
         
            +
              # @option opts [String] :format 輸出格式,例:'app',預設是 normal
         
     | 
| 
      
 27 
     | 
    
         
            +
              # @option opts [String] :encoding 輸出編碼,預設 'UTF-8'
         
     | 
| 
      
 28 
     | 
    
         
            +
              def initialize(xml_root, output_root, opts={})
         
     | 
| 
       27 
29 
     | 
    
         
             
                @xml_root = xml_root
         
     | 
| 
       28 
30 
     | 
    
         
             
                @output_root = output_root
         
     | 
| 
       29 
     | 
    
         
            -
                 
     | 
| 
      
 31 
     | 
    
         
            +
                
         
     | 
| 
      
 32 
     | 
    
         
            +
                @settings = {
         
     | 
| 
      
 33 
     | 
    
         
            +
                  format: nil,
         
     | 
| 
      
 34 
     | 
    
         
            +
                  encoding: 'UTF-8'
         
     | 
| 
      
 35 
     | 
    
         
            +
                }
         
     | 
| 
      
 36 
     | 
    
         
            +
                @settings.merge!(opts)
         
     | 
| 
      
 37 
     | 
    
         
            +
                
         
     | 
| 
       30 
38 
     | 
    
         
             
                @cbeta = CBETA.new
         
     | 
| 
       31 
39 
     | 
    
         
             
                @gaijis = CBETA::Gaiji.new
         
     | 
| 
       32 
40 
     | 
    
         
             
              end
         
     | 
| 
         @@ -127,13 +135,13 @@ class CBETA::P5aToText 
     | 
|
| 
       127 
135 
     | 
    
         | 
| 
       128 
136 
     | 
    
         
             
              def handle_byline(e)
         
     | 
| 
       129 
137 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       130 
     | 
    
         
            -
                r += @format=='app' ? "\t" : "\n"
         
     | 
| 
      
 138 
     | 
    
         
            +
                r += @settings[:format]=='app' ? "\t" : "\n"
         
     | 
| 
       131 
139 
     | 
    
         
             
                r
         
     | 
| 
       132 
140 
     | 
    
         
             
              end
         
     | 
| 
       133 
141 
     | 
    
         | 
| 
       134 
142 
     | 
    
         
             
              def handle_cell(e)
         
     | 
| 
       135 
143 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       136 
     | 
    
         
            -
                r += @format=='app' ? "\t" : "\n"
         
     | 
| 
      
 144 
     | 
    
         
            +
                r += @settings[:format]=='app' ? "\t" : "\n"
         
     | 
| 
       137 
145 
     | 
    
         
             
                r
         
     | 
| 
       138 
146 
     | 
    
         
             
              end
         
     | 
| 
       139 
147 
     | 
    
         | 
| 
         @@ -157,13 +165,13 @@ class CBETA::P5aToText 
     | 
|
| 
       157 
165 
     | 
    
         | 
| 
       158 
166 
     | 
    
         
             
              def handle_docNumber(e)
         
     | 
| 
       159 
167 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       160 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 168 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       161 
169 
     | 
    
         
             
                r
         
     | 
| 
       162 
170 
     | 
    
         
             
              end
         
     | 
| 
       163 
171 
     | 
    
         | 
| 
       164 
172 
     | 
    
         
             
              def handle_figure(e)
         
     | 
| 
       165 
173 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       166 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 174 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       167 
175 
     | 
    
         
             
                r
         
     | 
| 
       168 
176 
     | 
    
         
             
              end
         
     | 
| 
       169 
177 
     | 
    
         | 
| 
         @@ -212,24 +220,24 @@ class CBETA::P5aToText 
     | 
|
| 
       212 
220 
     | 
    
         | 
| 
       213 
221 
     | 
    
         
             
              def handle_head(e)
         
     | 
| 
       214 
222 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       215 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 223 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       216 
224 
     | 
    
         
             
                r
         
     | 
| 
       217 
225 
     | 
    
         
             
              end
         
     | 
| 
       218 
226 
     | 
    
         | 
| 
       219 
227 
     | 
    
         
             
              def handle_item(e)
         
     | 
| 
       220 
228 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       221 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 229 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       222 
230 
     | 
    
         
             
              end
         
     | 
| 
       223 
231 
     | 
    
         | 
| 
       224 
232 
     | 
    
         
             
              def handle_juan(e)
         
     | 
| 
       225 
233 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       226 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 234 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       227 
235 
     | 
    
         
             
                r
         
     | 
| 
       228 
236 
     | 
    
         
             
              end
         
     | 
| 
       229 
237 
     | 
    
         | 
| 
       230 
238 
     | 
    
         
             
              def handle_l(e)
         
     | 
| 
       231 
239 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       232 
     | 
    
         
            -
                if @format == 'app'
         
     | 
| 
      
 240 
     | 
    
         
            +
                if @settings[:format] == 'app'
         
     | 
| 
       233 
241 
     | 
    
         
             
                  r += "\t"
         
     | 
| 
       234 
242 
     | 
    
         
             
                else
         
     | 
| 
       235 
243 
     | 
    
         
             
                  r += "\n" unless @lg_type == 'abnormal'
         
     | 
| 
         @@ -239,7 +247,7 @@ class CBETA::P5aToText 
     | 
|
| 
       239 
247 
     | 
    
         | 
| 
       240 
248 
     | 
    
         
             
              def handle_lb(e)
         
     | 
| 
       241 
249 
     | 
    
         
             
                r = ''
         
     | 
| 
       242 
     | 
    
         
            -
                if @format == 'app'
         
     | 
| 
      
 250 
     | 
    
         
            +
                if @settings[:format] == 'app'
         
     | 
| 
       243 
251 
     | 
    
         
             
                  r += "\n#{e['n']}║"
         
     | 
| 
       244 
252 
     | 
    
         
             
                end
         
     | 
| 
       245 
253 
     | 
    
         
             
                unless @next_line_buf.empty?
         
     | 
| 
         @@ -264,7 +272,7 @@ class CBETA::P5aToText 
     | 
|
| 
       264 
272 
     | 
    
         | 
| 
       265 
273 
     | 
    
         
             
              def handle_list(e)
         
     | 
| 
       266 
274 
     | 
    
         
             
                r = ''
         
     | 
| 
       267 
     | 
    
         
            -
                r += "\n" unless @format == 'app'
         
     | 
| 
      
 275 
     | 
    
         
            +
                r += "\n" unless @settings[:format] == 'app'
         
     | 
| 
       268 
276 
     | 
    
         
             
                r + traverse(e)
         
     | 
| 
       269 
277 
     | 
    
         
             
              end
         
     | 
| 
       270 
278 
     | 
    
         | 
| 
         @@ -334,7 +342,7 @@ class CBETA::P5aToText 
     | 
|
| 
       334 
342 
     | 
    
         | 
| 
       335 
343 
     | 
    
         
             
              def handle_p(e)
         
     | 
| 
       336 
344 
     | 
    
         
             
                r = traverse(e)
         
     | 
| 
       337 
     | 
    
         
            -
                r += @format == 'app' ? "\t" : "\n"
         
     | 
| 
      
 345 
     | 
    
         
            +
                r += @settings[:format] == 'app' ? "\t" : "\n"
         
     | 
| 
       338 
346 
     | 
    
         
             
                r
         
     | 
| 
       339 
347 
     | 
    
         
             
              end
         
     | 
| 
       340 
348 
     | 
    
         | 
| 
         @@ -510,15 +518,18 @@ class CBETA::P5aToText 
     | 
|
| 
       510 
518 
     | 
    
         
             
                    end
         
     | 
| 
       511 
519 
     | 
    
         
             
                  end
         
     | 
| 
       512 
520 
     | 
    
         
             
                  text = frag.content
         
     | 
| 
       513 
     | 
    
         
            -
                  text = appify(text) if @format == 'app'
         
     | 
| 
      
 521 
     | 
    
         
            +
                  text = appify(text) if @settings[:format] == 'app'
         
     | 
| 
       514 
522 
     | 
    
         | 
| 
      
 523 
     | 
    
         
            +
                  ed2 = ed.sub(/^【(.*?)】$/, '\1')
         
     | 
| 
       515 
524 
     | 
    
         
             
                  if ed == @orig
         
     | 
| 
       516 
     | 
    
         
            -
                    fn = "#{ 
     | 
| 
      
 525 
     | 
    
         
            +
                    fn = "#{ed2}-orig.txt"
         
     | 
| 
       517 
526 
     | 
    
         
             
                  else
         
     | 
| 
       518 
     | 
    
         
            -
                    fn = "#{ 
     | 
| 
      
 527 
     | 
    
         
            +
                    fn = "#{ed2}.txt"
         
     | 
| 
       519 
528 
     | 
    
         
             
                  end
         
     | 
| 
       520 
529 
     | 
    
         
             
                  output_path = File.join(folder, fn)
         
     | 
| 
       521 
     | 
    
         
            -
                  File. 
     | 
| 
      
 530 
     | 
    
         
            +
                  fo = File.open(output_path, 'w', encoding: @settings[:encoding])
         
     | 
| 
      
 531 
     | 
    
         
            +
                  fo.write(text)
         
     | 
| 
      
 532 
     | 
    
         
            +
                  fo.close
         
     | 
| 
       522 
533 
     | 
    
         
             
                end
         
     | 
| 
       523 
534 
     | 
    
         
             
              end
         
     | 
| 
       524 
535 
     | 
    
         
             
            end
         
     | 
    
        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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.2
         
     | 
| 
       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- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-10-05 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
         
     |