jekyll-spaceship 0.6.2 → 0.7.3
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/README.md +124 -2
- data/lib/jekyll-spaceship.rb +1 -1
- data/lib/jekyll-spaceship/cores/config.rb +12 -7
- data/lib/jekyll-spaceship/cores/processor.rb +3 -3
- data/lib/jekyll-spaceship/processors/element-processor.rb +152 -0
- data/lib/jekyll-spaceship/processors/plantuml-processor.rb +15 -8
- data/lib/jekyll-spaceship/processors/video-processor.rb +1 -1
- data/lib/jekyll-spaceship/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5aea23b39241812e97de9e3f6dc6f47db7a4fa743d6510de8cbc6fc8e1c90fb
|
4
|
+
data.tar.gz: 324717f9b72366dd9f2d7e51c378937222c5884380c903897781b4875d33e067
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0bcaeb2c487b51961678cd2ea6e665466d75dc2c6c8b51b2e723121a7c2f0889a536836f11c48dc33b8784f871976fb43607824dfede322fb3e3f859007226d
|
7
|
+
data.tar.gz: a222d1377e23672f35815a8f8d870f247688663897d728e2b5d108b57573dc0a0f24735608a189c31ea20957d26c0cd3af3f1f8e30bbc3d80ebf70d47cb09531
|
data/README.md
CHANGED
@@ -80,10 +80,10 @@
|
|
80
80
|
<br>
|
81
81
|
|
82
82
|
|
83
|
-
|
83
|
+
Spaceship is a minimalistic, powerful and extremely customizable [Jekyll](https://jekyllrb.com/) plugin. It combines everything you may need for convenient work, without unnecessary complications, like a real spaceship.
|
84
84
|
|
85
85
|
<p align="center">
|
86
|
-
<img alt="Jekyll Spaceship Demo" src="https://user-images.githubusercontent.com/9413601/82250463-15451780-997e-11ea-8809-f411586d9508.gif"
|
86
|
+
<img alt="Jekyll Spaceship Demo" src="https://user-images.githubusercontent.com/9413601/82250463-15451780-997e-11ea-8809-f411586d9508.gif" />
|
87
87
|
</p>
|
88
88
|
|
89
89
|
**💡 Tip:** I hope you enjoy using this plugin. If you like this project, **a little star** for it is your way make a clear statement: **My work is valued**. I would appreciate your support! _Thank you!_
|
@@ -109,10 +109,13 @@ A Jekyll plugin to provide powerful supports for table, mathjax, plantuml, emoji
|
|
109
109
|
- [4.1 Youtube Usage](#youtube-usage)
|
110
110
|
- [4.2 Vimeo Usage](#vimeo-usage)
|
111
111
|
- [4.3 DailyMotion Usage](#dailymotion-usage)
|
112
|
+
- [4.4 General Video Usage](#general-video-usage)
|
112
113
|
- [5. Hybrid HTML with Markdown](#5-hybrid-html-with-markdown)
|
113
114
|
- [6. Markdown Polyfill](#6-markdown-polyfill)
|
114
115
|
- [6.1 Escape Ordered List](#escape-ordered-list)
|
115
116
|
- [7. Emoji Usage](#7-emoji-usage)
|
117
|
+
- [7.1 Emoji Customizing](#71-emoji-customizing)
|
118
|
+
- [8. Modifying Element Usage](#8-modifying-element-usage)
|
116
119
|
- [Credits](#credits)
|
117
120
|
- [Contributing](#contributing)
|
118
121
|
- [License](#license)
|
@@ -152,6 +155,7 @@ jekyll-spaceship:
|
|
152
155
|
- polyfill-processor
|
153
156
|
- video-processor
|
154
157
|
- emoji-processor
|
158
|
+
- element-processor
|
155
159
|
mathjax-processor:
|
156
160
|
src: //cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML
|
157
161
|
config:
|
@@ -576,6 +580,7 @@ While its not possible to embed a video in markdown, the best and easiest way is
|
|
576
580
|
- Youtube
|
577
581
|
- Vimeo
|
578
582
|
- DailyMotion
|
583
|
+
- General Video ( mp4 | avi | webm | ogg | ogv | 3gp | flv | mov ... )
|
579
584
|
|
580
585
|
There are two ways to embed a video in your Jekyll blog page:
|
581
586
|
|
@@ -634,6 +639,21 @@ the link as below:
|
|
634
639
|

|
635
640
|
```
|
636
641
|
|
642
|
+
#### General Video Usage
|
643
|
+
|
644
|
+
```markdown
|
645
|
+

|
646
|
+
```
|
647
|
+
|
648
|
+
```markdown
|
649
|
+

|
650
|
+
```
|
651
|
+
|
652
|
+
```markdown
|
653
|
+

|
654
|
+
```
|
655
|
+
|
656
|
+
|
637
657
|
### 5. Hybrid HTML with Markdown
|
638
658
|
|
639
659
|
As markdown is not only a lightweight markup language with plain-text-formatting syntax, but also an easy-to-read and easy-to-write plain text format, so writing a hybrid HTML with markdown is an awesome choice.
|
@@ -725,12 +745,114 @@ I give this plugin two :+1:!
|
|
725
745
|
|
726
746
|
I give this plugin two :+1:!
|
727
747
|
|
748
|
+
#### 7.1 Emoji Customizing
|
749
|
+
|
750
|
+
If you'd like to serve emoji images locally, or use a custom emoji source, you can specify so in your `_config.yml` file:
|
751
|
+
|
752
|
+
```yml
|
753
|
+
jekyll-spaceship:
|
754
|
+
emoji-processor:
|
755
|
+
src: "/assets/images/emoji"
|
756
|
+
```
|
757
|
+
|
758
|
+
See the [Gemoji](https://github.com/github/gemoji) documentation for generating image files.
|
759
|
+
|
760
|
+
### 8. Modifying Element Usage
|
761
|
+
|
762
|
+
It allows us to modify elements via `CSS3 selectors`. Through it you can easily
|
763
|
+
modify the attributes of an element tag, replace the children nodes and so on,
|
764
|
+
it's very flexible, but here is example usage for modifying a document:
|
765
|
+
|
766
|
+
```yml
|
767
|
+
# Here is a comprehensive example
|
768
|
+
jekyll-spaceship:
|
769
|
+
element-processor:
|
770
|
+
css:
|
771
|
+
- a: '<h1>Test</h1>' # Replace all `a` tags (String Style)
|
772
|
+
- ['a.link1', 'a.link2']: # Replace all `a.link1`, `a.link2` tags (Hash Style)
|
773
|
+
name: img # Replace element tag name
|
774
|
+
props: # Replace element properties
|
775
|
+
title: Good image # Add a title attribute
|
776
|
+
src: ['(^.*$)', '\0?a=123'] # Add query string to src attribute by regex pattern
|
777
|
+
style: # Add style attribute (Hash Style)
|
778
|
+
color: red
|
779
|
+
font-size: '1.2em'
|
780
|
+
children: # Add children to the element
|
781
|
+
- # First empty for adding after the last child node
|
782
|
+
- "<span>Google</span>" # First child node (String Style)
|
783
|
+
- # Middle empty for wrapping the children nodes
|
784
|
+
- name: span # Second child node (Hash Style)
|
785
|
+
props:
|
786
|
+
prop1: "1" # Custom property1
|
787
|
+
prop2: "2" # Custom property2
|
788
|
+
prop3: "3" # Custom property3
|
789
|
+
children: # Add nested chidren nodes
|
790
|
+
- "<span>Jekyll</span>" # First child node (String Style)
|
791
|
+
- name: span # Second child node (Hash Style)
|
792
|
+
props: # Add attributes to child node (Hash Style)
|
793
|
+
prop1: "a"
|
794
|
+
prop2: "b"
|
795
|
+
prop3: "c"
|
796
|
+
children: "<b>Yap!</b>" # Add children nodes (String Style)
|
797
|
+
- # Last empty for adding before the first child node
|
798
|
+
- a.link: '<a href="//t.com">Link</a>' # Replace all `a.link` tags (String Style)
|
799
|
+
- 'h1#title': # Replace `h1#title` tags (Hash Style)
|
800
|
+
children: I'm a title! # Replace inner html to new text
|
801
|
+
```
|
802
|
+
|
803
|
+
#### Example 1
|
804
|
+
|
805
|
+
Automatically adds a `target="_blank" rel="noopener noreferrer"` attribute to all external links in Jekyll's content.
|
806
|
+
|
807
|
+
```yml
|
808
|
+
jekyll-spaceship:
|
809
|
+
element-processor:
|
810
|
+
css:
|
811
|
+
- a: # Replce all `a` tags
|
812
|
+
props:
|
813
|
+
class: ['(^.*$)', '\0 ext-link'] # Add `ext-link` to class by regex pattern
|
814
|
+
target: _blank # Replace `target` value to `_blank`
|
815
|
+
rel: noopener noreferrer # Replace `rel` value to `noopener noreferrer`
|
816
|
+
```
|
817
|
+
|
818
|
+
#### Example 2
|
819
|
+
|
820
|
+
Automatically adds `loading="lazy"` to `img` and `iframe` tags to natively load lazily.
|
821
|
+
[Browser support](https://caniuse.com/#feat=loading-lazy-attr) is growing. If a browser does not support the `loading` attribute, it will load the resource just like it would normally.
|
822
|
+
|
823
|
+
```yml
|
824
|
+
jekyll-spaceship:
|
825
|
+
element-processor:
|
826
|
+
css:
|
827
|
+
- a: # Replce all `a` tags
|
828
|
+
props: #
|
829
|
+
loading: lazy # Replace `lading` value to `lazy`
|
830
|
+
```
|
831
|
+
|
832
|
+
In case you want to prevent loading some images/iframes lazily, add
|
833
|
+
`loading="eager"` to their tags. This might be useful to prevent flickering of
|
834
|
+
images during navigation (e.g. the site's logo).
|
835
|
+
|
836
|
+
See the following examples to prevent lazy loading.
|
837
|
+
|
838
|
+
```yml
|
839
|
+
jekyll-spaceship:
|
840
|
+
element-processor:
|
841
|
+
css:
|
842
|
+
- a: # Replce all `a` tags
|
843
|
+
props: #
|
844
|
+
loading: eager # Replace `loading` value to `eager`
|
845
|
+
```
|
846
|
+
|
847
|
+
|
728
848
|
## Credits
|
729
849
|
|
730
850
|
- [Jekyll](https://github.com/jekyll/jekyll) - A blog-aware static site generator in Ruby.
|
731
851
|
- [MultiMarkdown](https://fletcher.github.io/MultiMarkdown-6) - Lightweight markup processor to produce HTML, LaTeX, and more.
|
732
852
|
- [markdown-it-multimd-table](https://github.com/RedBug312/markdown-it-multimd-table) - Multimarkdown table syntax plugin for markdown-it markdown parser.
|
733
853
|
- [jmoji](https://github.com/jekyll/jemoji) - GitHub-flavored emoji plugin for Jekyll.
|
854
|
+
- [jekyll-target-blank](https://github.com/keithmifsud/jekyll-target-blank) - Automatically opens external links in a new browser for Jekyll Pages, Posts and Docs.
|
855
|
+
- [jekyll-loading-lazy](https://github.com/gildesmarais/jekyll-loading-lazy) - Automatically adds loading="lazy" to img and iframe tags to natively load lazily.
|
734
856
|
|
735
857
|
## Contributing
|
736
858
|
|
data/lib/jekyll-spaceship.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'yaml'
|
4
|
-
|
5
3
|
module Jekyll::Spaceship
|
6
4
|
class Config
|
7
5
|
CONFIG_NAME = 'jekyll-spaceship'
|
@@ -12,7 +10,8 @@ module Jekyll::Spaceship
|
|
12
10
|
'plantuml-processor',
|
13
11
|
'polyfill-processor',
|
14
12
|
'video-processor',
|
15
|
-
'emoji-processor'
|
13
|
+
'emoji-processor',
|
14
|
+
'element-processor'
|
16
15
|
]
|
17
16
|
}
|
18
17
|
|
@@ -32,15 +31,14 @@ module Jekyll::Spaceship
|
|
32
31
|
end
|
33
32
|
|
34
33
|
def self.store(section, default)
|
35
|
-
return if @@store[section].nil?
|
36
34
|
return @@store[section] if default.nil?
|
37
|
-
@@store[section] = deep_merge(@@store[section]
|
35
|
+
@@store[section] = deep_merge(default, @@store[section])
|
38
36
|
end
|
39
37
|
|
40
|
-
def self.load(
|
38
|
+
def self.load(config = {})
|
41
39
|
config = deep_merge(
|
42
40
|
{ CONFIG_NAME => DEFAULT_CONFIG },
|
43
|
-
|
41
|
+
config
|
44
42
|
)[CONFIG_NAME]
|
45
43
|
@@store = config
|
46
44
|
self.use_processors(config)
|
@@ -51,5 +49,12 @@ module Jekyll::Spaceship
|
|
51
49
|
Register.use processor
|
52
50
|
end
|
53
51
|
end
|
52
|
+
|
53
|
+
def self.load_config
|
54
|
+
# post load site config for `group :jekyll_plugin`
|
55
|
+
Jekyll::Hooks.register :site, :after_init do |site|
|
56
|
+
self.load(site.config)
|
57
|
+
end
|
58
|
+
end
|
54
59
|
end
|
55
60
|
end
|
@@ -156,13 +156,13 @@ module Jekyll::Spaceship
|
|
156
156
|
@exclusions.each do |type|
|
157
157
|
regex = nil
|
158
158
|
if type == :code
|
159
|
-
regex = /(
|
159
|
+
regex = /((`+)\s*(\w*)((?:.|\n)*?)\2)/
|
160
160
|
end
|
161
161
|
next if regex.nil?
|
162
162
|
content.scan(regex) do |match_data|
|
163
163
|
match = match_data[0]
|
164
164
|
id = @exclusion_store.size
|
165
|
-
content = content.
|
165
|
+
content = content.sub(match, "[JEKYLL@#{object_id}@#{id}]")
|
166
166
|
@exclusion_store.push match
|
167
167
|
end
|
168
168
|
end
|
@@ -173,7 +173,7 @@ module Jekyll::Spaceship
|
|
173
173
|
while @exclusion_store.size > 0
|
174
174
|
match = @exclusion_store.pop
|
175
175
|
id = @exclusion_store.size
|
176
|
-
content = content.
|
176
|
+
content = content.sub("[JEKYLL@#{object_id}@#{id}]", match)
|
177
177
|
end
|
178
178
|
@exclusion_store = []
|
179
179
|
content
|
@@ -0,0 +1,152 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'nokogiri'
|
4
|
+
|
5
|
+
module Jekyll::Spaceship
|
6
|
+
class ElementProcessor < Processor
|
7
|
+
priority :lowest
|
8
|
+
|
9
|
+
def self.config
|
10
|
+
{ 'css' => [] }
|
11
|
+
end
|
12
|
+
|
13
|
+
def on_handle_html(content)
|
14
|
+
return content if config['css'].size.zero?
|
15
|
+
|
16
|
+
# use nokogiri to parse html content
|
17
|
+
doc = Nokogiri::HTML(content)
|
18
|
+
|
19
|
+
# handle each css pattern
|
20
|
+
config['css'].each do |data|
|
21
|
+
data.each do |key, val|
|
22
|
+
key = [key] if key.kind_of? String
|
23
|
+
key.each do |pattern|
|
24
|
+
nodes = doc.css(pattern)
|
25
|
+
nodes.each do |element|
|
26
|
+
handle_css_pattern({
|
27
|
+
:doc => doc,
|
28
|
+
:element => element,
|
29
|
+
:data => val
|
30
|
+
})
|
31
|
+
end
|
32
|
+
self.handled = true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
doc.to_html
|
38
|
+
end
|
39
|
+
|
40
|
+
def handle_css_pattern(data)
|
41
|
+
doc = data[:doc]
|
42
|
+
element = data[:element]
|
43
|
+
data = data[:data]
|
44
|
+
|
45
|
+
if data.kind_of? String
|
46
|
+
element.replace Nokogiri::HTML.fragment(data)
|
47
|
+
elsif data.kind_of? Hash
|
48
|
+
# set name
|
49
|
+
element.name = data['name'] unless data['name'].nil?
|
50
|
+
|
51
|
+
# set props
|
52
|
+
data['props']&.each do |prop, val|
|
53
|
+
next element.remove_attribute if val.nil?
|
54
|
+
if val.kind_of? Array
|
55
|
+
next if val.size != 2
|
56
|
+
v = element[prop]
|
57
|
+
v = '' if v.nil?
|
58
|
+
val = v.sub(/#{val[0]}/, val[1])
|
59
|
+
elsif val.kind_of? Hash
|
60
|
+
result = []
|
61
|
+
val.each { |k, v| result.push "#{k}: #{v}" }
|
62
|
+
val = result.join(";")
|
63
|
+
end
|
64
|
+
element.set_attribute(prop, val)
|
65
|
+
end
|
66
|
+
|
67
|
+
# processing children
|
68
|
+
return unless data.has_key?('children')
|
69
|
+
return element.inner_html = "" if data['children'].nil?
|
70
|
+
children = self.create_children({
|
71
|
+
:doc => doc,
|
72
|
+
:data => data['children']
|
73
|
+
})
|
74
|
+
|
75
|
+
# replace whole inner html
|
76
|
+
unless data['children'].kind_of? Array
|
77
|
+
return element.inner_html = children
|
78
|
+
end
|
79
|
+
|
80
|
+
if element.children.size.zero?
|
81
|
+
return element.inner_html = children
|
82
|
+
end
|
83
|
+
|
84
|
+
index = data['children'].index(nil)
|
85
|
+
if index.nil?
|
86
|
+
return element.inner_html = children
|
87
|
+
end
|
88
|
+
|
89
|
+
# insert to the end of children
|
90
|
+
if index == 0
|
91
|
+
return element.children.last.after(children)
|
92
|
+
end
|
93
|
+
|
94
|
+
# insert to the begin of children
|
95
|
+
rindex = data['children'].rindex { |item| !item.nil? }
|
96
|
+
if index == rindex + 1
|
97
|
+
return element.children.first.before children
|
98
|
+
end
|
99
|
+
|
100
|
+
# wrap the children
|
101
|
+
element.children.first.before children[0..index]
|
102
|
+
element.children.last.after children[index..children.size]
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def create_children(data)
|
107
|
+
doc = data[:doc]
|
108
|
+
data = data[:data]
|
109
|
+
root = Nokogiri::HTML.fragment("")
|
110
|
+
|
111
|
+
data = [data] unless data.kind_of? Array
|
112
|
+
data.each do |child_data|
|
113
|
+
node = self.create_element({
|
114
|
+
:doc => doc,
|
115
|
+
:data => child_data
|
116
|
+
})
|
117
|
+
next if node.nil?
|
118
|
+
unless child_data['children'].nil?
|
119
|
+
node.children = self.create_children({
|
120
|
+
:doc => doc,
|
121
|
+
:data => child_data['children']
|
122
|
+
})
|
123
|
+
end
|
124
|
+
root.add_child node
|
125
|
+
end
|
126
|
+
root.children
|
127
|
+
end
|
128
|
+
|
129
|
+
def create_element(data)
|
130
|
+
doc = data[:doc]
|
131
|
+
data = data[:data]
|
132
|
+
|
133
|
+
return if data.nil?
|
134
|
+
return Nokogiri::HTML.fragment(data) if data.kind_of? String
|
135
|
+
return if data['name'].nil?
|
136
|
+
|
137
|
+
# create node
|
138
|
+
node = doc.create_element(data['name'])
|
139
|
+
|
140
|
+
# set props
|
141
|
+
data['props']&.each do |prop, val|
|
142
|
+
if val.kind_of? Hash
|
143
|
+
result = []
|
144
|
+
val.each { |k, v| result.push "#{k}: #{v}" }
|
145
|
+
val = result.join(";")
|
146
|
+
end
|
147
|
+
node.set_attribute(prop, val)
|
148
|
+
end
|
149
|
+
node
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -7,21 +7,30 @@ module Jekyll::Spaceship
|
|
7
7
|
class PlantumlProcessor < Processor
|
8
8
|
exclude :none
|
9
9
|
|
10
|
+
PLANTUML_PATTERNS = [
|
11
|
+
/(\\?(@startuml)((?:.|\n)*?)@enduml)/,
|
12
|
+
/((`{3,})\s*plantuml((?:.|\n)*?)\2)/
|
13
|
+
]
|
14
|
+
|
10
15
|
def self.config
|
11
16
|
{ 'src' => 'http://www.plantuml.com/plantuml/png/' }
|
12
17
|
end
|
13
18
|
|
14
19
|
def on_handle_markdown(content)
|
15
20
|
# match default plantuml block and code block
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
)
|
21
|
+
PLANTUML_PATTERNS.each do |pattern|
|
22
|
+
content = handle_plantuml_block(pattern, content)
|
23
|
+
end
|
20
24
|
|
25
|
+
# handle escape default plantuml block
|
26
|
+
content.gsub(/\\(@startuml|@enduml)/, '\1')
|
27
|
+
end
|
28
|
+
|
29
|
+
def handle_plantuml_block(pattern, content)
|
21
30
|
content.scan pattern do |match|
|
22
31
|
match = match.select { |m| not m.nil? }
|
23
32
|
block = match[0]
|
24
|
-
code = match[
|
33
|
+
code = match[2]
|
25
34
|
|
26
35
|
# skip escape default plantuml block
|
27
36
|
if block.match(/(^\\@startuml|\\@enduml$)/)
|
@@ -35,9 +44,7 @@ module Jekyll::Spaceship
|
|
35
44
|
handle_plantuml(code)
|
36
45
|
)
|
37
46
|
end
|
38
|
-
|
39
|
-
# handle escape default plantuml block
|
40
|
-
content.gsub(/\\(@startuml|@enduml)/, '\1')
|
47
|
+
content
|
41
48
|
end
|
42
49
|
|
43
50
|
def handle_plantuml(code)
|
@@ -92,7 +92,7 @@ module Jekyll::Spaceship
|
|
92
92
|
width = qs['width'] || data[:width] || "100%"
|
93
93
|
height = qs['height'] || data[:height] || 350
|
94
94
|
frameborder = qs['frameborder'] || 0
|
95
|
-
style = qs['style'] || ''
|
95
|
+
style = qs['style'] || 'max-width: 600px'
|
96
96
|
allow = qs['allow'] || "encrypted-media; picture-in-picture"
|
97
97
|
|
98
98
|
url = URI(iframe_url ? "#{iframe_url}#{id}" : url).tap do |v|
|
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.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jeffreytse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- lib/jekyll-spaceship/cores/processor.rb
|
138
138
|
- lib/jekyll-spaceship/cores/register.rb
|
139
139
|
- lib/jekyll-spaceship/cores/type.rb
|
140
|
+
- lib/jekyll-spaceship/processors/element-processor.rb
|
140
141
|
- lib/jekyll-spaceship/processors/emoji-processor.rb
|
141
142
|
- lib/jekyll-spaceship/processors/mathjax-processor.rb
|
142
143
|
- lib/jekyll-spaceship/processors/plantuml-processor.rb
|