middleman-headless 0.4.1 → 0.5.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 -0
- data/Gemfile +2 -0
- data/README.md +1 -1
- data/example/Gemfile.lock +52 -48
- data/example/config.rb +4 -5
- data/example/source/index.html.erb +3 -3
- data/lib/middleman-headless/interface.rb +54 -25
- data/middleman-headless.gemspec +5 -5
- metadata +25 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4a313f95df220ded23eaf7b53d45fe4f7b9a5db3
|
|
4
|
+
data.tar.gz: 113bb0e0c349221122bed050bb67a4061a91988b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0fd6bb4f7d1c5eecd69cab8bddb918b8529042d8c451e88c15fd218b49b68321795dbe7a646e2d8d295a3fd2d5e6d41a65d9698f7c2137845a72c4340d00d2d
|
|
7
|
+
data.tar.gz: e4aed804224f0e4510811606e2f53df6b29fe346d82a0085ce7af00810ba15edaaa7d244fd07ceff4b2fdca560b9e344f22445c8578cfcef067495c4ee730024
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.4.2
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/example/Gemfile.lock
CHANGED
|
@@ -1,71 +1,69 @@
|
|
|
1
1
|
PATH
|
|
2
|
-
remote:
|
|
2
|
+
remote: ..
|
|
3
3
|
specs:
|
|
4
4
|
middleman-headless (0.4.1)
|
|
5
5
|
middleman-core (~> 4.1)
|
|
6
6
|
mime-types (~> 3.1)
|
|
7
|
+
nokogiri (~> 1.10)
|
|
7
8
|
oauth2 (~> 1.4)
|
|
8
9
|
|
|
9
10
|
GEM
|
|
10
11
|
remote: https://rubygems.org/
|
|
11
12
|
specs:
|
|
12
|
-
activesupport (5.0.
|
|
13
|
+
activesupport (5.0.7.1)
|
|
13
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
|
-
i18n (
|
|
15
|
+
i18n (>= 0.7, < 2)
|
|
15
16
|
minitest (~> 5.1)
|
|
16
17
|
tzinfo (~> 1.1)
|
|
17
|
-
addressable (2.
|
|
18
|
+
addressable (2.6.0)
|
|
18
19
|
public_suffix (>= 2.0.2, < 4.0)
|
|
19
|
-
backports (3.
|
|
20
|
+
backports (3.12.0)
|
|
20
21
|
coffee-script (2.4.1)
|
|
21
22
|
coffee-script-source
|
|
22
23
|
execjs
|
|
23
24
|
coffee-script-source (1.12.2)
|
|
24
|
-
|
|
25
|
-
sass (>= 3.2, < 3.5)
|
|
26
|
-
concurrent-ruby (1.0.5)
|
|
25
|
+
concurrent-ruby (1.1.4)
|
|
27
26
|
contracts (0.13.0)
|
|
28
|
-
dotenv (2.
|
|
27
|
+
dotenv (2.7.1)
|
|
29
28
|
em-websocket (0.5.1)
|
|
30
29
|
eventmachine (>= 0.12.9)
|
|
31
30
|
http_parser.rb (~> 0.6.0)
|
|
32
31
|
erubis (2.7.0)
|
|
33
|
-
eventmachine (1.2.
|
|
32
|
+
eventmachine (1.2.7)
|
|
34
33
|
execjs (2.7.0)
|
|
35
|
-
faraday (0.
|
|
34
|
+
faraday (0.15.4)
|
|
36
35
|
multipart-post (>= 1.2, < 3)
|
|
37
36
|
fast_blank (1.0.0)
|
|
38
|
-
fastimage (2.1.
|
|
39
|
-
ffi (1.
|
|
37
|
+
fastimage (2.1.5)
|
|
38
|
+
ffi (1.10.0)
|
|
40
39
|
haml (5.0.4)
|
|
41
40
|
temple (>= 0.8.0)
|
|
42
41
|
tilt
|
|
43
42
|
hamster (3.0.0)
|
|
44
43
|
concurrent-ruby (~> 1.0)
|
|
45
|
-
hashie (3.
|
|
44
|
+
hashie (3.6.0)
|
|
46
45
|
http_parser.rb (0.6.0)
|
|
47
|
-
i18n (0.
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
i18n (0.9.5)
|
|
47
|
+
concurrent-ruby (~> 1.0)
|
|
48
|
+
jwt (2.1.0)
|
|
49
|
+
kramdown (1.17.0)
|
|
50
50
|
listen (3.0.8)
|
|
51
51
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
52
52
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
53
53
|
memoist (0.16.0)
|
|
54
|
-
middleman (4.
|
|
54
|
+
middleman (4.3.3)
|
|
55
55
|
coffee-script (~> 2.2)
|
|
56
|
-
compass-import-once (= 1.0.5)
|
|
57
56
|
haml (>= 4.0.5)
|
|
58
57
|
kramdown (~> 1.2)
|
|
59
|
-
middleman-cli (= 4.
|
|
60
|
-
middleman-core (= 4.
|
|
61
|
-
|
|
62
|
-
middleman-cli (4.2.1)
|
|
58
|
+
middleman-cli (= 4.3.3)
|
|
59
|
+
middleman-core (= 4.3.3)
|
|
60
|
+
middleman-cli (4.3.3)
|
|
63
61
|
thor (>= 0.17.0, < 2.0)
|
|
64
|
-
middleman-core (4.
|
|
62
|
+
middleman-core (4.3.3)
|
|
65
63
|
activesupport (>= 4.2, < 5.1)
|
|
66
64
|
addressable (~> 2.3)
|
|
67
65
|
backports (~> 3.6)
|
|
68
|
-
bundler
|
|
66
|
+
bundler
|
|
69
67
|
contracts (~> 0.13.0)
|
|
70
68
|
dotenv
|
|
71
69
|
erubis
|
|
@@ -74,30 +72,33 @@ GEM
|
|
|
74
72
|
fastimage (~> 2.0)
|
|
75
73
|
hamster (~> 3.0)
|
|
76
74
|
hashie (~> 3.4)
|
|
77
|
-
i18n (~> 0.
|
|
75
|
+
i18n (~> 0.9.0)
|
|
78
76
|
listen (~> 3.0.0)
|
|
79
77
|
memoist (~> 0.14)
|
|
80
78
|
padrino-helpers (~> 0.13.0)
|
|
81
79
|
parallel
|
|
82
80
|
rack (>= 1.4.5, < 3)
|
|
83
|
-
|
|
81
|
+
sassc (~> 2.0)
|
|
84
82
|
servolux
|
|
85
|
-
tilt (~> 2.0)
|
|
83
|
+
tilt (~> 2.0.9)
|
|
86
84
|
uglifier (~> 3.0)
|
|
87
85
|
middleman-livereload (3.4.6)
|
|
88
86
|
em-websocket (~> 0.5.1)
|
|
89
87
|
middleman-core (>= 3.3)
|
|
90
88
|
rack-livereload (~> 0.3.15)
|
|
91
|
-
mime-types (3.
|
|
89
|
+
mime-types (3.2.2)
|
|
92
90
|
mime-types-data (~> 3.2015)
|
|
93
|
-
mime-types-data (3.
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
mime-types-data (3.2018.0812)
|
|
92
|
+
mini_portile2 (2.4.0)
|
|
93
|
+
minitest (5.11.3)
|
|
94
|
+
multi_json (1.13.1)
|
|
96
95
|
multi_xml (0.6.0)
|
|
97
96
|
multipart-post (2.0.0)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
nokogiri (1.10.1)
|
|
98
|
+
mini_portile2 (~> 2.4.0)
|
|
99
|
+
oauth2 (1.4.1)
|
|
100
|
+
faraday (>= 0.8, < 0.16.0)
|
|
101
|
+
jwt (>= 1.0, < 3.0)
|
|
101
102
|
multi_json (~> 1.3)
|
|
102
103
|
multi_xml (~> 0.5)
|
|
103
104
|
rack (>= 1.2, < 3)
|
|
@@ -107,21 +108,24 @@ GEM
|
|
|
107
108
|
tilt (>= 1.4.1, < 3)
|
|
108
109
|
padrino-support (0.13.3.4)
|
|
109
110
|
activesupport (>= 3.1)
|
|
110
|
-
parallel (1.
|
|
111
|
-
public_suffix (3.0.
|
|
112
|
-
rack (2.0.
|
|
113
|
-
rack-livereload (0.3.
|
|
111
|
+
parallel (1.14.0)
|
|
112
|
+
public_suffix (3.0.3)
|
|
113
|
+
rack (2.0.6)
|
|
114
|
+
rack-livereload (0.3.17)
|
|
114
115
|
rack
|
|
115
|
-
|
|
116
|
-
rb-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
rake (12.3.2)
|
|
117
|
+
rb-fsevent (0.10.3)
|
|
118
|
+
rb-inotify (0.10.0)
|
|
119
|
+
ffi (~> 1.0)
|
|
120
|
+
sassc (2.0.1)
|
|
121
|
+
ffi (~> 1.9)
|
|
122
|
+
rake
|
|
119
123
|
servolux (0.13.0)
|
|
120
|
-
temple (0.8.
|
|
121
|
-
thor (0.20.
|
|
124
|
+
temple (0.8.1)
|
|
125
|
+
thor (0.20.3)
|
|
122
126
|
thread_safe (0.3.6)
|
|
123
|
-
tilt (2.0.
|
|
124
|
-
tzinfo (1.2.
|
|
127
|
+
tilt (2.0.9)
|
|
128
|
+
tzinfo (1.2.5)
|
|
125
129
|
thread_safe (~> 0.1)
|
|
126
130
|
uglifier (3.2.0)
|
|
127
131
|
execjs (>= 0.3.0, < 3)
|
|
@@ -135,4 +139,4 @@ DEPENDENCIES
|
|
|
135
139
|
middleman-livereload
|
|
136
140
|
|
|
137
141
|
BUNDLED WITH
|
|
138
|
-
|
|
142
|
+
2.0.1
|
data/example/config.rb
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
activate :headless,
|
|
2
|
-
address: 'http://0.0.0.0:
|
|
3
|
-
app_key: '
|
|
4
|
-
app_secret: '
|
|
5
|
-
space: 'example'
|
|
6
|
-
download_assets: true
|
|
2
|
+
address: 'http://0.0.0.0:8000',
|
|
3
|
+
app_key: '4b64998c-da49-4c5c-baf0-dd039f2d501d',
|
|
4
|
+
app_secret: '133560ba-7393-4fd4-815e-3b5ac03346a9',
|
|
5
|
+
space: 'example'
|
|
7
6
|
|
|
8
7
|
configure :development do
|
|
9
8
|
activate :livereload
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
<% headless.posts.each do |post| %>
|
|
20
20
|
<h2><%= post.title %></h2>
|
|
21
|
-
<p><%= image_tag post.asset(:image)
|
|
22
|
-
<p><%= post.body %></p>
|
|
23
|
-
<p>Written by <%= post.reference(:author)
|
|
21
|
+
<p><%= image_tag post.asset(:image)&.url(width: 400), alt: post.asset(:image)&.name %></p>
|
|
22
|
+
<p><%= post.render(:body, 400) %></p>
|
|
23
|
+
<p>Written by <%= post.reference(:author)&.name %></p>
|
|
24
24
|
<% end %>
|
|
25
25
|
|
|
26
26
|
</body>
|
|
@@ -32,7 +32,7 @@ module MiddlemanHeadless
|
|
|
32
32
|
|
|
33
33
|
def entries(content_type)
|
|
34
34
|
content_type = content_type[:slug] if content_type.is_a?(Hash)
|
|
35
|
-
path = "entries/#{@options.space}/#{content_type}"
|
|
35
|
+
path = "entries/#{@options.space}/#{content_type}?render-documents=true"
|
|
36
36
|
@entries_cache[content_type.to_sym] ||= get(path).map do |item|
|
|
37
37
|
Entry.new(item.with_indifferent_access, self)
|
|
38
38
|
end
|
|
@@ -112,40 +112,27 @@ module MiddlemanHeadless
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
def field(key)
|
|
115
|
-
|
|
116
|
-
return nil if v.nil?
|
|
117
|
-
v.field(key)
|
|
115
|
+
version(I18n.locale)&.field(key)
|
|
118
116
|
end
|
|
119
117
|
|
|
120
118
|
def asset(key)
|
|
121
|
-
|
|
119
|
+
version(I18n.locale)&.asset(key)
|
|
122
120
|
end
|
|
123
121
|
|
|
124
122
|
def assets(key)
|
|
125
|
-
assets
|
|
126
|
-
return [] if assets.nil?
|
|
127
|
-
|
|
128
|
-
assets.map do |value|
|
|
129
|
-
@interface.asset(value)
|
|
130
|
-
end
|
|
123
|
+
version(I18n.locale)&.assets(key)
|
|
131
124
|
end
|
|
132
125
|
|
|
133
126
|
def reference(key, type=nil)
|
|
134
|
-
|
|
135
|
-
ref = field(key)
|
|
136
|
-
return nil if ref.nil?
|
|
137
|
-
|
|
138
|
-
Reference.new(type, ref, @interface)
|
|
127
|
+
version(I18n.locale)&.reference(key, type)
|
|
139
128
|
end
|
|
140
129
|
|
|
141
130
|
def references(key, type=nil)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return [] if refs.nil?
|
|
131
|
+
version(I18n.locale)&.references(key, type)
|
|
132
|
+
end
|
|
145
133
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
end
|
|
134
|
+
def render(key, width)
|
|
135
|
+
version(I18n.locale)&.render(key, width)
|
|
149
136
|
end
|
|
150
137
|
|
|
151
138
|
def method_missing(key)
|
|
@@ -171,6 +158,50 @@ module MiddlemanHeadless
|
|
|
171
158
|
@data[:published_at]
|
|
172
159
|
end
|
|
173
160
|
|
|
161
|
+
def asset(key)
|
|
162
|
+
@interface.asset(field(key))
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def assets(key)
|
|
166
|
+
assets = field(key)
|
|
167
|
+
return [] if assets.nil?
|
|
168
|
+
|
|
169
|
+
assets.map do |value|
|
|
170
|
+
@interface.asset(value)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def reference(key, type=nil)
|
|
175
|
+
type = key if type.nil?
|
|
176
|
+
ref = field(key)
|
|
177
|
+
return nil if ref.nil?
|
|
178
|
+
|
|
179
|
+
Reference.new(type, ref, @interface)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def references(key, type=nil)
|
|
183
|
+
type = key if type.nil?
|
|
184
|
+
refs = field(key)
|
|
185
|
+
return [] if refs.nil?
|
|
186
|
+
|
|
187
|
+
refs.map do |value|
|
|
188
|
+
Reference.new(type, value, @interface)
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def render(key, width)
|
|
193
|
+
doc = field(key)
|
|
194
|
+
return '' if doc.nil?
|
|
195
|
+
|
|
196
|
+
html = Nokogiri::HTML::DocumentFragment.parse(doc)
|
|
197
|
+
|
|
198
|
+
html.css('img').each do |img|
|
|
199
|
+
img['src'] += "?width=#{width}"
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
html.to_html
|
|
203
|
+
end
|
|
204
|
+
|
|
174
205
|
def method_missing(key)
|
|
175
206
|
field(key)
|
|
176
207
|
end
|
|
@@ -223,9 +254,7 @@ module MiddlemanHeadless
|
|
|
223
254
|
end
|
|
224
255
|
|
|
225
256
|
def method_missing(*args)
|
|
226
|
-
|
|
227
|
-
return nil if e.nil?
|
|
228
|
-
entry.send(*args)
|
|
257
|
+
entry&.send(*args)
|
|
229
258
|
end
|
|
230
259
|
end
|
|
231
260
|
end
|
data/middleman-headless.gemspec
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
$:.push File.expand_path('../lib', __FILE__)
|
|
1
|
+
$LOAD_PATH.push File.expand_path('../lib', __FILE__)
|
|
3
2
|
|
|
4
3
|
Gem::Specification.new do |s|
|
|
5
4
|
s.name = 'middleman-headless'
|
|
6
|
-
s.version = '0.
|
|
5
|
+
s.version = '0.5.0'
|
|
7
6
|
s.licenses = ['MIT']
|
|
8
7
|
s.platform = Gem::Platform::RUBY
|
|
9
8
|
s.authors = ['Joël Gähwiler']
|
|
10
9
|
s.email = ['joel@twomanyprojects.com']
|
|
11
10
|
s.homepage = 'https://github.com/twomanyprojects/middleman-headless'
|
|
12
|
-
s.summary =
|
|
11
|
+
s.summary = 'Middleman extension to load content from the Headless CMS.'
|
|
13
12
|
|
|
14
13
|
s.files = `git ls-files`.split("\n")
|
|
15
14
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
@@ -17,6 +16,7 @@ Gem::Specification.new do |s|
|
|
|
17
16
|
s.require_paths = ['lib']
|
|
18
17
|
|
|
19
18
|
s.add_runtime_dependency('middleman-core', ['~> 4.1'])
|
|
20
|
-
s.add_runtime_dependency('oauth2', ['~> 1.4'])
|
|
21
19
|
s.add_runtime_dependency('mime-types', ['~> 3.1'])
|
|
20
|
+
s.add_runtime_dependency('nokogiri', ['~> 1.10'])
|
|
21
|
+
s.add_runtime_dependency('oauth2', ['~> 1.4'])
|
|
22
22
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: middleman-headless
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joël Gähwiler
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2019-03-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: middleman-core
|
|
@@ -25,33 +25,47 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '4.1'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: mime-types
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1
|
|
33
|
+
version: '3.1'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '1
|
|
40
|
+
version: '3.1'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: nokogiri
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '1.10'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '1.10'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: oauth2
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '1.4'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '1.4'
|
|
55
69
|
description:
|
|
56
70
|
email:
|
|
57
71
|
- joel@twomanyprojects.com
|
|
@@ -60,6 +74,7 @@ extensions: []
|
|
|
60
74
|
extra_rdoc_files: []
|
|
61
75
|
files:
|
|
62
76
|
- ".gitignore"
|
|
77
|
+
- ".ruby-version"
|
|
63
78
|
- Gemfile
|
|
64
79
|
- LICENSE.md
|
|
65
80
|
- README.md
|
|
@@ -91,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
91
106
|
version: '0'
|
|
92
107
|
requirements: []
|
|
93
108
|
rubyforge_project:
|
|
94
|
-
rubygems_version: 2.
|
|
109
|
+
rubygems_version: 2.6.13
|
|
95
110
|
signing_key:
|
|
96
111
|
specification_version: 4
|
|
97
|
-
summary: Middleman extension to load content from the Headless
|
|
98
|
-
System.
|
|
112
|
+
summary: Middleman extension to load content from the Headless CMS.
|
|
99
113
|
test_files: []
|