jekyll-spaceship 0.9.7 → 0.9.8
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/.github/FUNDING.yml +1 -1
- data/lib/jekyll-spaceship/processors/emoji-processor.rb +51 -15
- data/lib/jekyll-spaceship/processors/mathjax-processor.rb +1 -1
- data/lib/jekyll-spaceship/processors/mermaid-processor.rb +3 -0
- data/lib/jekyll-spaceship/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: feae82926b331a1fc32b0ed226447d3d58b6721c7187035ae3d82f297970e979
|
4
|
+
data.tar.gz: c34eef77784ba8087689780e75548318a91e188073995bbe0922d27abee1d0bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5e6ed122db069ffdc833eec1a360ee90257b356632ba4732a0b47a49a2ef9a41934d7e7de7eb23a03f61cf49d9347183d9d3cad88f1d9b6b79735cf100651a2
|
7
|
+
data.tar.gz: 8fca41fbf22600014b6c5b87f31b31b744447854effdf0099d446293e78d032bbdcc102a222c58a9fd05c7dd7f6088cea28575181e2e337488bd993c23504f93
|
data/.github/FUNDING.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# These are supported funding model platforms
|
2
2
|
|
3
|
-
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
3
|
+
github: jeffreytse # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
4
4
|
patreon: jeffreytse
|
5
5
|
open_collective: # Replace with a single Open Collective username
|
6
6
|
ko_fi: jeffreytse
|
@@ -16,31 +16,67 @@ module Jekyll::Spaceship
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def on_handle_html(content)
|
19
|
-
|
20
|
-
|
19
|
+
emoji_filter(content, 'pre code') do |emoji|
|
20
|
+
# mark current file has been handled
|
21
|
+
self.handled = true
|
22
|
+
|
23
|
+
# here is the replacement content
|
24
|
+
"<img class=\"#{config['css']['class']}\""\
|
25
|
+
" title=\":#{emoji.name}:\""\
|
26
|
+
" alt=\":#{emoji.name}:\""\
|
27
|
+
" raw=\"#{emoji.raw}\""\
|
28
|
+
" src=\"#{config['src']}#{emoji.image_filename}\""\
|
29
|
+
" style=\"vertical-align: middle; display: inline;"\
|
30
|
+
" max-width: 1em; visibility: hidden;\""\
|
31
|
+
" onload=\"this.style.visibility='visible'\""\
|
32
|
+
" onerror=\"this.replaceWith(this.getAttribute('raw'))\">"\
|
33
|
+
"</img>"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def emoji_filter(content, selector)
|
38
|
+
# use nokogiri to parse html
|
39
|
+
doc = Nokogiri::HTML(content)
|
40
|
+
body = doc.at('body')
|
41
|
+
|
42
|
+
# filter nodes (pre, code)
|
43
|
+
nodes = body.css(selector)
|
44
|
+
nodes.each do |node|
|
45
|
+
# handle emoji markup
|
46
|
+
node.inner_html = node.inner_html.gsub(
|
47
|
+
/:([\w\d+-]+?):/, '\:\1\:'
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# parse the emoji
|
52
|
+
content = body.inner_html
|
53
|
+
content.scan(/(?<!\\):([\w\d+-]+?)(?<!\\):/) do |match|
|
54
|
+
# Skip invalid emoji name
|
21
55
|
emoji = Emoji.find_by_alias match[0]
|
22
56
|
next if emoji.nil?
|
23
|
-
self.handled = true
|
24
57
|
|
25
58
|
# escape plus sign
|
26
59
|
emoji_name = emoji.name.gsub('+', '\\\+')
|
27
|
-
|
60
|
+
|
61
|
+
result = yield emoji
|
62
|
+
next if result.nil?
|
28
63
|
|
29
64
|
content = content.gsub(
|
30
65
|
/(?<!\=")\s*:#{emoji_name}:\s*(?!"\s)/,
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
66
|
+
result)
|
67
|
+
end
|
68
|
+
|
69
|
+
body.inner_html = content
|
70
|
+
|
71
|
+
# restore nodes (pre, code)
|
72
|
+
nodes.each do |node|
|
73
|
+
# handle emoji markup
|
74
|
+
node.inner_html = node.inner_html.gsub(
|
75
|
+
/\\:([\w\d+-]+?)\\:/, ':\1:'
|
41
76
|
)
|
42
77
|
end
|
43
|
-
|
78
|
+
|
79
|
+
doc.to_html
|
44
80
|
end
|
45
81
|
end
|
46
82
|
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.9.
|
4
|
+
version: 0.9.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jeffreytse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|