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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 732fde7e5574c855d85c10741f24c63a1ba695c707772f35fe7d4fba5c4f8826
4
- data.tar.gz: 72ec0732f4e9cf9ca469a71585ce54c6aca4d10b5964184277ca14d1abcc97ad
3
+ metadata.gz: 5675e03fa858e4cb310188943772e5a092108befff1b03d9f005d1a5d9a68916
4
+ data.tar.gz: 935a27cc3cd908ca00c7b6ab45a8c0a5dead24e38d7803ae8b1bc101aff85c9d
5
5
  SHA512:
6
- metadata.gz: 4cfc08bf4dd2eb0ead97a61b2a6396b8ce79f2c56ac390c2a9cedbd28648d4b51193eaf36a3a005722bb0362245468c66f64b4f5d75f649b0c4bc0d640d5432b
7
- data.tar.gz: 8dfcae47fdc9250c4ea68acfe13adecfd348b4e00a24855a6989a6922db959679948ac26d621820d033de2306d2cf8e2973e17eea5aa09f91f77174a7b070f65
6
+ metadata.gz: ce8465323d153c3d10839462cea3199f1c4a578084a507d3c14e4bf7fb0afd1d5e9945d647fe988e0f53d57bac31637a0c6787db6fe2e0ea88e97e1b1d71bed2
7
+ data.tar.gz: c1ae5912126110e26ca0545945ce9a5cd530fb386caba11a1135b1c991236c300326829df9895e882475dea073a95440969e7233b90388fb024966066e0bb341
@@ -30,4 +30,5 @@ deploy:
30
30
  rvm: 2.3
31
31
  tags: true
32
32
  repo: jeffreytse/jekyll-spaceship
33
+ edge: true
33
34
  cleanup: false
@@ -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.data['ext']
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('&amp;', '&')
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://api.github.com/emojis'
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 |match_data|
25
- emoji_markup = match_data[0]
26
- emoji_image = EMOJI_MARKUP_DATA[emoji_markup]
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
- # convert hex string to unicode
31
- unicode = emoji_image.match(/unicode\/([\d\w]+)/)
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
- ":#{emoji_markup}:",
40
- "<image class=\"emoji\" \
41
- title=\"#{emoji_markup}\" \
42
- alt=\"#{alt}\" \
43
- src=\"#{emoji_image}\" \
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.alt)\"> \
48
- </image>"
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)
@@ -86,6 +86,7 @@ module Jekyll::Spaceship
86
86
  end
87
87
 
88
88
  html = "<iframe \
89
+ class=\"video\" \
89
90
  src=\"#{url}\" \
90
91
  title=\"#{title}\" \
91
92
  width=\"#{width}\" \
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Spaceship
5
- VERSION = "0.5.3"
5
+ VERSION = "0.5.4"
6
6
  end
7
7
  end
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.3
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-19 00:00:00.000000000 Z
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