syntropy 0.10 → 0.11
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/CHANGELOG.md +8 -0
- data/README.md +1 -1
- data/cmd/setup/template/site/site/_layout/default.rb +1 -1
- data/lib/syntropy/app.rb +39 -8
- data/lib/syntropy/module.rb +3 -3
- data/lib/syntropy/version.rb +1 -1
- data/lib/syntropy.rb +2 -0
- data/syntropy.gemspec +2 -1
- data/test/app/_layout/default.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f33d7721410d70a9d5b86977c73b36f6a410a6534c253269df5f2d47123a54f
|
4
|
+
data.tar.gz: 6f961a74dd9fa299296d6699244076dfc09fa3697faad7c28cc6c2db81f5fb46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 158e46fd1e09da1af72a5ffd50a1ccde7699ce52f9a9d7a317903e3aa29234a5f924371712571b4d0188bcc5e7484b7bced4be7ee7440140ba5cfb07b492bccf
|
7
|
+
data.tar.gz: 6a45ef64e1ef65cf5c86c15dd5858a3f028343c55f68be253d07626800c4f534782898e4e7d83697fb324b4169050ce913a911575d31936c5a852e12f0eb4be0
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/lib/syntropy/app.rb
CHANGED
@@ -116,7 +116,7 @@ module Syntropy
|
|
116
116
|
headers = { 'Content-Type' => entry[:mime_type] }
|
117
117
|
req.respond_by_http_method(
|
118
118
|
'head' => [nil, headers],
|
119
|
-
'get' => -> { [render_markdown(entry
|
119
|
+
'get' => -> { [render_markdown(entry), headers] }
|
120
120
|
)
|
121
121
|
end
|
122
122
|
|
@@ -139,7 +139,7 @@ module Syntropy
|
|
139
139
|
def load_module(entry)
|
140
140
|
ref = entry[:fn].gsub(%r{^#{@location}/}, '').gsub(/\.rb$/, '')
|
141
141
|
o = @module_loader.load(ref)
|
142
|
-
|
142
|
+
wrap_module(o)
|
143
143
|
rescue Exception => e
|
144
144
|
@opts[:logger]&.error(
|
145
145
|
message: "Error while loading module #{ref}",
|
@@ -148,7 +148,18 @@ module Syntropy
|
|
148
148
|
:invalid
|
149
149
|
end
|
150
150
|
|
151
|
-
def
|
151
|
+
def wrap_module(mod)
|
152
|
+
case mod
|
153
|
+
when P2::Template
|
154
|
+
wrap_p2_template(mod)
|
155
|
+
when Papercraft::Template
|
156
|
+
wrap_papercraft_template(mod)
|
157
|
+
else
|
158
|
+
mod
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def wrap_p2_template(wrapper)
|
152
163
|
template = wrapper.proc
|
153
164
|
lambda { |req|
|
154
165
|
headers = { 'Content-Type' => 'text/html' }
|
@@ -159,16 +170,36 @@ module Syntropy
|
|
159
170
|
}
|
160
171
|
end
|
161
172
|
|
162
|
-
def
|
163
|
-
|
173
|
+
def wrap_papercraft_template(template)
|
174
|
+
lambda { |req|
|
175
|
+
headers = { 'Content-Type' => template.mime_type }
|
176
|
+
req.respond_by_http_method(
|
177
|
+
'head' => [nil, headers],
|
178
|
+
'get' => -> { [template.render, headers] }
|
179
|
+
)
|
180
|
+
}
|
181
|
+
|
182
|
+
end
|
183
|
+
|
184
|
+
def render_markdown(entry)
|
185
|
+
atts, md = Syntropy.parse_markdown_file(entry[:fn], @opts)
|
164
186
|
|
165
|
-
if atts[:layout]
|
166
|
-
|
167
|
-
|
187
|
+
if (layout = atts[:layout])
|
188
|
+
entry[:applied_layouts] ||= {}
|
189
|
+
proc = entry[:applied_layouts][layout] ||= markdown_layout_proc(layout)
|
190
|
+
html = proc.render(md: md, **atts)
|
168
191
|
else
|
169
192
|
html = P2.markdown(md)
|
170
193
|
end
|
171
194
|
html
|
172
195
|
end
|
196
|
+
|
197
|
+
def markdown_layout_proc(layout)
|
198
|
+
layout = @module_loader.load("_layout/#{layout}")
|
199
|
+
puts '*' * 40
|
200
|
+
puts layout.proc.compiled_code
|
201
|
+
puts
|
202
|
+
layout.apply { |md:, **atts| markdown(md) }
|
203
|
+
end
|
173
204
|
end
|
174
205
|
end
|
data/lib/syntropy/module.rb
CHANGED
data/lib/syntropy/version.rb
CHANGED
data/lib/syntropy.rb
CHANGED
data/syntropy.gemspec
CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
s.add_dependency 'extralite', '2.13'
|
25
25
|
s.add_dependency 'json', '2.13.2'
|
26
|
-
s.add_dependency 'p2', '2.
|
26
|
+
s.add_dependency 'p2', '2.8'
|
27
|
+
s.add_dependency 'papercraft', '1.4'
|
27
28
|
s.add_dependency 'qeweney', '0.21'
|
28
29
|
s.add_dependency 'tp2', '0.14.1'
|
29
30
|
s.add_dependency 'uringmachine', '0.16'
|
data/test/app/_layout/default.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: syntropy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.11'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
@@ -43,14 +43,28 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - '='
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '2.
|
46
|
+
version: '2.8'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '2.
|
53
|
+
version: '2.8'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: papercraft
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.4'
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - '='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.4'
|
54
68
|
- !ruby/object:Gem::Dependency
|
55
69
|
name: qeweney
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|