jekyll-inline-svg 1.0.1 → 1.1.0
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/.ruby-version +1 -1
- data/Gemfile.lock +34 -22
- data/jekyll-inline-svg.gemspec +1 -1
- data/lib/jekyll-inline-svg.rb +26 -8
- data/spec/jekyll-inline-svg_spec.rb +4 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eb1e13bf0039d420fd5c05e6624cbf3182280be
|
4
|
+
data.tar.gz: e81cdccb89d2a003a980ec5ac29edde53bea63d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e49ad0f22e7fba4f23d79912138923d176da6f0d7cfad4996afe5c18922cd3f958168dbb25bee2bd1b7febab4a8505a20882f165812f9ba3aac079463623572a
|
7
|
+
data.tar.gz: f41352fb1f2b80955bf271b6ba989c27b5961f804591163b091151402a5251ef580d84e5211226ad2af47b18a424bacc450968a11a3eaed084fce0afcf70487f
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.4
|
data/Gemfile.lock
CHANGED
@@ -1,51 +1,62 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
jekyll-inline-svg (1.0.
|
4
|
+
jekyll-inline-svg (1.0.1)
|
5
5
|
jekyll (~> 3.3)
|
6
6
|
svg_optimizer (= 0.1.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
addressable (2.5.
|
12
|
-
public_suffix (
|
11
|
+
addressable (2.5.2)
|
12
|
+
public_suffix (>= 2.0.2, < 4.0)
|
13
13
|
colorator (1.1.0)
|
14
|
+
concurrent-ruby (1.0.5)
|
14
15
|
diff-lcs (1.3)
|
15
|
-
|
16
|
+
em-websocket (0.5.1)
|
17
|
+
eventmachine (>= 0.12.9)
|
18
|
+
http_parser.rb (~> 0.6.0)
|
19
|
+
eventmachine (1.2.7)
|
20
|
+
ffi (1.9.25)
|
16
21
|
forwardable-extended (2.6.0)
|
17
|
-
|
22
|
+
http_parser.rb (0.6.0)
|
23
|
+
i18n (0.9.5)
|
24
|
+
concurrent-ruby (~> 1.0)
|
25
|
+
jekyll (3.8.3)
|
18
26
|
addressable (~> 2.4)
|
19
27
|
colorator (~> 1.0)
|
28
|
+
em-websocket (~> 0.5)
|
29
|
+
i18n (~> 0.7)
|
20
30
|
jekyll-sass-converter (~> 1.0)
|
21
|
-
jekyll-watch (~>
|
22
|
-
kramdown (~> 1.
|
31
|
+
jekyll-watch (~> 2.0)
|
32
|
+
kramdown (~> 1.14)
|
23
33
|
liquid (~> 4.0)
|
24
34
|
mercenary (~> 0.3.3)
|
25
35
|
pathutil (~> 0.9)
|
26
|
-
rouge (
|
36
|
+
rouge (>= 1.7, < 4)
|
27
37
|
safe_yaml (~> 1.0)
|
28
|
-
jekyll-sass-converter (1.5.
|
38
|
+
jekyll-sass-converter (1.5.2)
|
29
39
|
sass (~> 3.4)
|
30
|
-
jekyll-watch (
|
31
|
-
listen (~> 3.0
|
32
|
-
kramdown (1.
|
40
|
+
jekyll-watch (2.0.0)
|
41
|
+
listen (~> 3.0)
|
42
|
+
kramdown (1.17.0)
|
33
43
|
liquid (4.0.0)
|
34
|
-
listen (3.
|
44
|
+
listen (3.1.5)
|
35
45
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
36
46
|
rb-inotify (~> 0.9, >= 0.9.7)
|
47
|
+
ruby_dep (~> 1.2)
|
37
48
|
mercenary (0.3.6)
|
38
|
-
mini_portile2 (2.
|
39
|
-
nokogiri (1.8.
|
40
|
-
mini_portile2 (~> 2.
|
41
|
-
pathutil (0.
|
49
|
+
mini_portile2 (2.3.0)
|
50
|
+
nokogiri (1.8.4)
|
51
|
+
mini_portile2 (~> 2.3.0)
|
52
|
+
pathutil (0.16.1)
|
42
53
|
forwardable-extended (~> 2.6)
|
43
|
-
public_suffix (
|
54
|
+
public_suffix (3.0.2)
|
44
55
|
rake (12.0.0)
|
45
|
-
rb-fsevent (0.10.
|
56
|
+
rb-fsevent (0.10.3)
|
46
57
|
rb-inotify (0.9.10)
|
47
58
|
ffi (>= 0.5.0, < 2)
|
48
|
-
rouge (1.
|
59
|
+
rouge (3.1.1)
|
49
60
|
rspec (3.6.0)
|
50
61
|
rspec-core (~> 3.6.0)
|
51
62
|
rspec-expectations (~> 3.6.0)
|
@@ -59,8 +70,9 @@ GEM
|
|
59
70
|
diff-lcs (>= 1.2.0, < 2.0)
|
60
71
|
rspec-support (~> 3.6.0)
|
61
72
|
rspec-support (3.6.0)
|
73
|
+
ruby_dep (1.5.0)
|
62
74
|
safe_yaml (1.0.4)
|
63
|
-
sass (3.5.
|
75
|
+
sass (3.5.6)
|
64
76
|
sass-listen (~> 4.0.0)
|
65
77
|
sass-listen (4.0.0)
|
66
78
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
@@ -78,4 +90,4 @@ DEPENDENCIES
|
|
78
90
|
rspec (~> 3.6)
|
79
91
|
|
80
92
|
BUNDLED WITH
|
81
|
-
1.
|
93
|
+
1.16.2
|
data/jekyll-inline-svg.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
A Liquid tag to inline and optimize SVG images in your HTML
|
8
8
|
Supports custom DOM Attributes parameters and variables interpretation.
|
9
9
|
EOF
|
10
|
-
spec.version = "1.0
|
10
|
+
spec.version = "1.1.0"
|
11
11
|
spec.authors = ["Sebastien DUMETZ"]
|
12
12
|
spec.email = "s.dumetz@holusion.com"
|
13
13
|
spec.homepage = "https://github.com/sdumetz/jekyll-inline-svg"
|
data/lib/jekyll-inline-svg.rb
CHANGED
@@ -23,7 +23,7 @@ module Jekyll
|
|
23
23
|
|
24
24
|
#Separate file path from other attributes
|
25
25
|
PATH_SYNTAX = %r!
|
26
|
-
^(?<path>[^\s"']+|"[^"]
|
26
|
+
^(?<path>[^\s"']+|"[^"]+"|'[^']+')
|
27
27
|
(?<params>.*)
|
28
28
|
!x
|
29
29
|
|
@@ -41,9 +41,9 @@ module Jekyll
|
|
41
41
|
(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.\-#]+))
|
42
42
|
!x
|
43
43
|
|
44
|
-
def initialize(tag_name,
|
44
|
+
def initialize(tag_name, markup, tokens)
|
45
45
|
super
|
46
|
-
@svg, @params = JekyllInlineSvg.parse_params(
|
46
|
+
@svg, @params = JekyllInlineSvg.parse_params(markup)
|
47
47
|
end
|
48
48
|
|
49
49
|
#lookup Liquid variables from markup in context
|
@@ -70,11 +70,18 @@ module Jekyll
|
|
70
70
|
end
|
71
71
|
#Parse parameters. Returns : [svg_path, parameters]
|
72
72
|
# Does not interpret variables as it's done at render time
|
73
|
-
def self.parse_params(
|
74
|
-
matched =
|
75
|
-
|
76
|
-
|
77
|
-
|
73
|
+
def self.parse_params(markup)
|
74
|
+
matched = markup.strip.match(PATH_SYNTAX)
|
75
|
+
if !matched
|
76
|
+
raise SyntaxError, <<~END
|
77
|
+
Syntax Error in tag 'highlight' while parsing the following markup:
|
78
|
+
#{markup}
|
79
|
+
Valid syntax: svg <path> [property=value]
|
80
|
+
END
|
81
|
+
end
|
82
|
+
path = matched["path"].sub(%r!^["']!,"").sub(%r!["']$!,"").strip
|
83
|
+
params = matched["params"].strip
|
84
|
+
return path, params
|
78
85
|
end
|
79
86
|
def fmt(params)
|
80
87
|
r = params.to_a.select{|v| v[1] != ""}.map {|v| %!#{v[0]}="#{v[1]}"!}
|
@@ -93,11 +100,22 @@ module Jekyll
|
|
93
100
|
mod.set(params)
|
94
101
|
return mod
|
95
102
|
end
|
103
|
+
def add_file_to_dependency(site, path, context)
|
104
|
+
if context.registers[:page] && context.registers[:page].key("path")
|
105
|
+
site.regenerator.add_dependency(
|
106
|
+
site.in_source_dir(context.registers[:page]["path"]),
|
107
|
+
path
|
108
|
+
)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
96
112
|
def render(context)
|
97
113
|
#global site variable
|
98
114
|
site = context.registers[:site]
|
99
115
|
#check if given name is a variable. Otherwise use it as a file name
|
100
116
|
svg_file = Jekyll.sanitized_path(site.source, interpolate(@svg,context))
|
117
|
+
return unless svg_file
|
118
|
+
add_file_to_dependency(site,svg_file, context)
|
101
119
|
#replace variables with their current value
|
102
120
|
params = split_params(@params,context)
|
103
121
|
#because ie11 require to have a height AND a width
|
@@ -13,7 +13,7 @@ describe(Jekyll::Tags::JekyllInlineSvg) do
|
|
13
13
|
Nokogiri::HTML(read(f))
|
14
14
|
end
|
15
15
|
|
16
|
-
describe "
|
16
|
+
describe "#parse_params" do
|
17
17
|
it "parse XML root parameters" do
|
18
18
|
svg, params = Jekyll::Tags::JekyllInlineSvg.parse_params("/path/to/foo size=40 style=\"hello\"")
|
19
19
|
expect(svg).to eq("/path/to/foo")
|
@@ -44,6 +44,9 @@ describe(Jekyll::Tags::JekyllInlineSvg) do
|
|
44
44
|
svg, params = Jekyll::Tags::JekyllInlineSvg.parse_params("'/path/to/foo space' id='bar' style=\"hello\"")
|
45
45
|
expect(params).to eq("id='bar' style=\"hello\"")
|
46
46
|
end
|
47
|
+
it "raise error on invalid syntax" do
|
48
|
+
expect {Jekyll::Tags::JekyllInlineSvg.parse_params("")}.to raise_error (SyntaxError)
|
49
|
+
end
|
47
50
|
end
|
48
51
|
[
|
49
52
|
Jekyll.configuration({
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-inline-svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastien DUMETZ
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
126
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.6.14
|
128
128
|
signing_key:
|
129
129
|
specification_version: 4
|
130
130
|
summary: A SVG Inliner for Jekyll
|