jekyll-spaceship 0.5.3 → 0.5.4

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
  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