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
|