jekyll-spaceship 0.5.3 → 0.5.4
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/.travis.yml +1 -0
 - data/jekyll-spaceship.gemspec +1 -0
 - data/lib/jekyll-spaceship/cores/manager.rb +3 -2
 - data/lib/jekyll-spaceship/cores/processor.rb +13 -0
 - data/lib/jekyll-spaceship/processors/emoji-processor.rb +15 -42
 - data/lib/jekyll-spaceship/processors/plantuml-processor.rb +2 -1
 - data/lib/jekyll-spaceship/processors/video-processor.rb +1 -0
 - data/lib/jekyll-spaceship/version.rb +1 -1
 - metadata +16 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5675e03fa858e4cb310188943772e5a092108befff1b03d9f005d1a5d9a68916
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 935a27cc3cd908ca00c7b6ab45a8c0a5dead24e38d7803ae8b1bc101aff85c9d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ce8465323d153c3d10839462cea3199f1c4a578084a507d3c14e4bf7fb0afd1d5e9945d647fe988e0f53d57bac31637a0c6787db6fe2e0ea88e97e1b1d71bed2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c1ae5912126110e26ca0545945ce9a5cd530fb386caba11a1135b1c991236c300326829df9895e882475dea073a95440969e7233b90388fb024966066e0bb341
         
     | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/jekyll-spaceship.gemspec
    CHANGED
    
    | 
         @@ -20,6 +20,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
              spec.add_dependency "jekyll", ">= 3.6", "< 5.0"
         
     | 
| 
       22 
22 
     | 
    
         
             
              spec.add_dependency "nokogiri", "~> 1.6"
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_dependency "gemoji", "~> 3.0"
         
     | 
| 
       23 
24 
     | 
    
         
             
              spec.add_dependency "rainbow", "~> 3.0"
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
26 
     | 
    
         
             
              spec.add_development_dependency "bundler"
         
     | 
| 
         @@ -69,7 +69,8 @@ module Jekyll::Spaceship 
     | 
|
| 
       69 
69 
     | 
    
         
             
                end
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
                def self.ext(page)
         
     | 
| 
       72 
     | 
    
         
            -
                  page. 
     | 
| 
      
 72 
     | 
    
         
            +
                  ext = page.path.match(/\.\S+$/)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  ext.to_s.rstrip
         
     | 
| 
       73 
74 
     | 
    
         
             
                end
         
     | 
| 
       74 
75 
     | 
    
         | 
| 
       75 
76 
     | 
    
         
             
                def self.output_ext(page)
         
     | 
| 
         @@ -112,7 +113,7 @@ module Jekyll::Spaceship 
     | 
|
| 
       112 
113 
     | 
    
         
             
                    end
         
     | 
| 
       113 
114 
     | 
    
         
             
                    node.replace Nokogiri::HTML.fragment content
         
     | 
| 
       114 
115 
     | 
    
         
             
                  end
         
     | 
| 
       115 
     | 
    
         
            -
                  page.output = doc.to_html
         
     | 
| 
      
 116 
     | 
    
         
            +
                  page.output = Processor.escape_html doc.to_html
         
     | 
| 
       116 
117 
     | 
    
         
             
                end
         
     | 
| 
       117 
118 
     | 
    
         
             
              end
         
     | 
| 
       118 
119 
     | 
    
         
             
            end
         
     | 
| 
         @@ -112,6 +112,9 @@ module Jekyll::Spaceship 
     | 
|
| 
       112 
112 
     | 
    
         
             
                    end
         
     | 
| 
       113 
113 
     | 
    
         
             
                    if self.respond_to? method
         
     | 
| 
       114 
114 
     | 
    
         
             
                      @page.output = self.send method, @page.output
         
     | 
| 
      
 115 
     | 
    
         
            +
                      if Type.html? output_ext
         
     | 
| 
      
 116 
     | 
    
         
            +
                        @page.output = self.class.escape_html(@page.output)
         
     | 
| 
      
 117 
     | 
    
         
            +
                      end
         
     | 
| 
       115 
118 
     | 
    
         
             
                    end
         
     | 
| 
       116 
119 
     | 
    
         
             
                  end
         
     | 
| 
       117 
120 
     | 
    
         
             
                end
         
     | 
| 
         @@ -158,5 +161,15 @@ module Jekyll::Spaceship 
     | 
|
| 
       158 
161 
     | 
    
         
             
                  @exclusion_store = []
         
     | 
| 
       159 
162 
     | 
    
         
             
                  content
         
     | 
| 
       160 
163 
     | 
    
         
             
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                def self.escape_html(content)
         
     | 
| 
      
 166 
     | 
    
         
            +
                  # escape link
         
     | 
| 
      
 167 
     | 
    
         
            +
                  content.scan(/((https?:)?\/\/\S+\?[a-zA-Z0-9%\-_=\.&;]+)/) do |result|
         
     | 
| 
      
 168 
     | 
    
         
            +
                    result = result[0]
         
     | 
| 
      
 169 
     | 
    
         
            +
                    link = result.gsub('&', '&')
         
     | 
| 
      
 170 
     | 
    
         
            +
                    content = content.gsub(result, link)
         
     | 
| 
      
 171 
     | 
    
         
            +
                  end
         
     | 
| 
      
 172 
     | 
    
         
            +
                  content
         
     | 
| 
      
 173 
     | 
    
         
            +
                end
         
     | 
| 
       161 
174 
     | 
    
         
             
              end
         
     | 
| 
       162 
175 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,65 +1,38 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require 'net/http'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'uri'
         
     | 
| 
       5 
4 
     | 
    
         
             
            require 'json'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'gemoji'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            module Jekyll::Spaceship
         
     | 
| 
       8 
8 
     | 
    
         
             
              class EmojiProcessor < Processor
         
     | 
| 
       9 
     | 
    
         
            -
                EMOJI_MARKUP_HOST = 'https:// 
     | 
| 
       10 
     | 
    
         
            -
                EMOJI_MARKUP_DATA = {}
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                def initialize
         
     | 
| 
       13 
     | 
    
         
            -
                  super()
         
     | 
| 
       14 
     | 
    
         
            -
                  self.initialize_emoji_data
         
     | 
| 
       15 
     | 
    
         
            -
                end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                def initialize_emoji_data
         
     | 
| 
       18 
     | 
    
         
            -
                  EMOJI_MARKUP_DATA.update get_emoji_markup_data
         
     | 
| 
       19 
     | 
    
         
            -
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
                EMOJI_MARKUP_HOST = 'https://github.githubassets.com/images/icons/emoji/'
         
     | 
| 
       20 
10 
     | 
    
         | 
| 
       21 
11 
     | 
    
         
             
                def on_handle_html(content)
         
     | 
| 
       22 
     | 
    
         
            -
                  return content if EMOJI_MARKUP_DATA.size.zero?
         
     | 
| 
       23 
12 
     | 
    
         
             
                  # handle emoji markup
         
     | 
| 
       24 
     | 
    
         
            -
                  content.scan(/:([\w+-]+):/) do | 
     | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
       26 
     | 
    
         
            -
                     
     | 
| 
       27 
     | 
    
         
            -
                    next if emoji_image.nil?
         
     | 
| 
      
 13 
     | 
    
         
            +
                  content.scan(/:([\w\d+-]+):/) do |match|
         
     | 
| 
      
 14 
     | 
    
         
            +
                    emoji = Emoji.find_by_alias match[0]
         
     | 
| 
      
 15 
     | 
    
         
            +
                    next if emoji.nil?
         
     | 
| 
       28 
16 
     | 
    
         
             
                    self.handled = true
         
     | 
| 
       29 
17 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                    #  
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
       32 
     | 
    
         
            -
                    if unicode[1]
         
     | 
| 
       33 
     | 
    
         
            -
                      unicode = "0x#{unicode[1]}".to_i(16)
         
     | 
| 
       34 
     | 
    
         
            -
                      alt = [unicode].pack('U*')
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
                    alt = emoji_markup if alt.nil?
         
     | 
| 
      
 18 
     | 
    
         
            +
                    # escape plus sign
         
     | 
| 
      
 19 
     | 
    
         
            +
                    emoji_name = emoji.name.gsub('+', '\\\+')
         
     | 
| 
       37 
20 
     | 
    
         | 
| 
       38 
21 
     | 
    
         
             
                    content = content.gsub(
         
     | 
| 
       39 
     | 
    
         
            -
                      " 
     | 
| 
       40 
     | 
    
         
            -
                      "< 
     | 
| 
       41 
     | 
    
         
            -
                        title=\" 
     | 
| 
       42 
     | 
    
         
            -
                        alt=\" 
     | 
| 
       43 
     | 
    
         
            -
                         
     | 
| 
      
 22 
     | 
    
         
            +
                      /(?<!\=")\s*:#{emoji_name}:\s*(?!"\s)/,
         
     | 
| 
      
 23 
     | 
    
         
            +
                      "<img class=\"emoji\" \
         
     | 
| 
      
 24 
     | 
    
         
            +
                        title=\":#{emoji.name}:\" \
         
     | 
| 
      
 25 
     | 
    
         
            +
                        alt=\":#{emoji.name}:\" \
         
     | 
| 
      
 26 
     | 
    
         
            +
                        raw=\"#{emoji.raw}\" \
         
     | 
| 
      
 27 
     | 
    
         
            +
                        src=\"#{EMOJI_MARKUP_HOST}#{emoji.image_filename}\" \
         
     | 
| 
       44 
28 
     | 
    
         
             
                        style=\"vertical-align: middle; \
         
     | 
| 
       45 
29 
     | 
    
         
             
                        max-width: 1em; visibility: hidden;\" \
         
     | 
| 
       46 
30 
     | 
    
         
             
                        onload=\"this.style.visibility='visible'\" \
         
     | 
| 
       47 
     | 
    
         
            -
                        onerror=\"this.replaceWith(this. 
     | 
| 
       48 
     | 
    
         
            -
                      </ 
     | 
| 
      
 31 
     | 
    
         
            +
                        onerror=\"this.replaceWith(this.getAttribute('raw'))\"> \
         
     | 
| 
      
 32 
     | 
    
         
            +
                      </img>"
         
     | 
| 
       49 
33 
     | 
    
         
             
                    )
         
     | 
| 
       50 
34 
     | 
    
         
             
                  end
         
     | 
| 
       51 
35 
     | 
    
         
             
                  content
         
     | 
| 
       52 
36 
     | 
    
         
             
                end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                def get_emoji_markup_data
         
     | 
| 
       55 
     | 
    
         
            -
                  data = {}
         
     | 
| 
       56 
     | 
    
         
            -
                  begin
         
     | 
| 
       57 
     | 
    
         
            -
                    source = Net::HTTP.get URI(EMOJI_MARKUP_HOST)
         
     | 
| 
       58 
     | 
    
         
            -
                    data = JSON.parse(source)
         
     | 
| 
       59 
     | 
    
         
            -
                  rescue StandardError => msg
         
     | 
| 
       60 
     | 
    
         
            -
                    logger.log msg
         
     | 
| 
       61 
     | 
    
         
            -
                  end
         
     | 
| 
       62 
     | 
    
         
            -
                  data
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
37 
     | 
    
         
             
              end
         
     | 
| 
       65 
38 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require "net/http"
         
     | 
| 
       3 
4 
     | 
    
         
             
            require "base64"
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
            module Jekyll::Spaceship
         
     | 
| 
         @@ -46,7 +47,7 @@ module Jekyll::Spaceship 
     | 
|
| 
       46 
47 
     | 
    
         
             
                  data = self.get_plantuml_img_data(code)
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
       48 
49 
     | 
    
         
             
                  # return img tag
         
     | 
| 
       49 
     | 
    
         
            -
                  "<img src=\"#{data}\">"
         
     | 
| 
      
 50 
     | 
    
         
            +
                  "<img class=\"plantuml\" src=\"#{data}\">"
         
     | 
| 
       50 
51 
     | 
    
         
             
                end
         
     | 
| 
       51 
52 
     | 
    
         | 
| 
       52 
53 
     | 
    
         
             
                def get_plantuml_img_data(code)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: jekyll-spaceship
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - jeffreytse
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020-05- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-05-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: jekyll
         
     | 
| 
         @@ -44,6 +44,20 @@ dependencies: 
     | 
|
| 
       44 
44 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       45 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       46 
46 
     | 
    
         
             
                    version: '1.6'
         
     | 
| 
      
 47 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 48 
     | 
    
         
            +
              name: gemoji
         
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 50 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 51 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
      
 54 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 55 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 56 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       47 
61 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
62 
     | 
    
         
             
              name: rainbow
         
     | 
| 
       49 
63 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |