dimples 5.0.0 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dimples/category.rb +1 -0
- data/lib/dimples/configuration.rb +3 -2
- data/lib/dimples/frontable.rb +1 -0
- data/lib/dimples/page.rb +1 -0
- data/lib/dimples/pager.rb +1 -0
- data/lib/dimples/plugin.rb +9 -6
- data/lib/dimples/post.rb +1 -0
- data/lib/dimples/renderer.rb +5 -1
- data/lib/dimples/site.rb +32 -19
- data/lib/dimples/template.rb +1 -0
- data/lib/dimples/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: 6b63753932d375ea07672f810b718d628711fcfea4eca7903d4f42816eda0f48
|
4
|
+
data.tar.gz: 5ccf23b0581915612adb9b7c4a6d045c2e0316b8d43cb58b764e16a40ffa0413
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3647f33e23be41293053ba18653debd6388b7419011a56462a1aecd448ec1d908e9c66ac893136ed26e1b05630d1c14e0370aba31b0da2285a5056258aa6997e
|
7
|
+
data.tar.gz: c183aa6bce34f42eefd0620a4e290ce85893969ddcb30656b3b5443ec29a93e9da1013e9ddcd370f673fee5a00410e94619003a8fb234d0bf7f428ccc78b300e
|
data/lib/dimples/category.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Dimples
|
4
|
+
# Default configuration options for a site.
|
4
5
|
module Configuration
|
5
6
|
def self.defaults
|
6
7
|
{
|
@@ -11,7 +12,7 @@ module Dimples
|
|
11
12
|
date_formats: default_date_formats,
|
12
13
|
feed_formats: default_feed_formats,
|
13
14
|
category_names: {},
|
14
|
-
rendering: {}
|
15
|
+
rendering: {}
|
15
16
|
}
|
16
17
|
end
|
17
18
|
|
@@ -32,7 +33,7 @@ module Dimples
|
|
32
33
|
day_archives: true,
|
33
34
|
categories: true,
|
34
35
|
main_feed: true,
|
35
|
-
category_feeds: true
|
36
|
+
category_feeds: true
|
36
37
|
}
|
37
38
|
end
|
38
39
|
|
data/lib/dimples/frontable.rb
CHANGED
data/lib/dimples/page.rb
CHANGED
data/lib/dimples/pager.rb
CHANGED
data/lib/dimples/plugin.rb
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Dimples
|
4
|
+
# A Ruby class that can receive events from Dimples as a site is processed.
|
4
5
|
class Plugin
|
5
6
|
EVENTS = %i[
|
6
|
-
|
7
|
-
|
7
|
+
before_site_generation
|
8
|
+
after_site_generation
|
9
|
+
before_post_write
|
10
|
+
before_page_write
|
11
|
+
after_post_write
|
12
|
+
after_page_write
|
8
13
|
].freeze
|
9
14
|
|
10
15
|
def self.inherited(subclass)
|
@@ -15,12 +20,10 @@ module Dimples
|
|
15
20
|
@plugins ||= @subclasses&.map { |subclass| subclass.new(site) }
|
16
21
|
end
|
17
22
|
|
18
|
-
def self.
|
23
|
+
def self.send_event(site, event, item = nil)
|
19
24
|
plugins(site)&.each do |plugin|
|
20
|
-
plugin.process(event, item
|
25
|
+
plugin.process(event, item) if plugin.supports_event?(event)
|
21
26
|
end
|
22
|
-
|
23
|
-
yield if block_given?
|
24
27
|
end
|
25
28
|
|
26
29
|
def initialize(site)
|
data/lib/dimples/post.rb
CHANGED
data/lib/dimples/renderer.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Dimples
|
4
|
+
# A wrapper around Tilt, tied to a single post, page or template.
|
4
5
|
class Renderer
|
5
6
|
def initialize(site, source)
|
6
7
|
@site = site
|
@@ -14,7 +15,10 @@ module Dimples
|
|
14
15
|
output = engine.render(scope, context) { body }.strip
|
15
16
|
@source.metadata[:rendered_contents] = output
|
16
17
|
|
17
|
-
|
18
|
+
if @source.metadata[:layout]
|
19
|
+
template = @site.templates[@source.metadata[:layout]]
|
20
|
+
end
|
21
|
+
|
18
22
|
return output if template.nil?
|
19
23
|
|
20
24
|
template.render(context, output)
|
data/lib/dimples/site.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Dimples
|
4
|
+
# A collection of pages, posts and templates that can generate a website.
|
4
5
|
class Site
|
5
6
|
attr_reader :config
|
6
7
|
attr_reader :categories
|
@@ -28,6 +29,8 @@ module Dimples
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def generate
|
32
|
+
trigger_event(:before_site_generation)
|
33
|
+
|
31
34
|
prepare
|
32
35
|
|
33
36
|
read_templates
|
@@ -41,6 +44,8 @@ module Dimples
|
|
41
44
|
publish_pages
|
42
45
|
publish_archives
|
43
46
|
publish_categories if @config.generation.categories
|
47
|
+
|
48
|
+
trigger_event(:after_site_generation)
|
44
49
|
rescue PublishingError, RenderingError, GenerationError => error
|
45
50
|
@errors << error
|
46
51
|
end
|
@@ -128,15 +133,17 @@ module Dimples
|
|
128
133
|
|
129
134
|
def publish_posts
|
130
135
|
@posts.each do |post|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
trigger_event(:before_post_write, post)
|
137
|
+
|
138
|
+
path = File.join(
|
139
|
+
@paths[:output],
|
140
|
+
post.date.strftime(@config.paths.posts),
|
141
|
+
post.slug
|
142
|
+
)
|
143
|
+
|
144
|
+
post.write(path)
|
145
|
+
|
146
|
+
trigger_event(:after_post_write, post)
|
140
147
|
end
|
141
148
|
|
142
149
|
publish_feeds(@posts, @paths[:output]) if @config.generation.main_feed
|
@@ -144,18 +151,20 @@ module Dimples
|
|
144
151
|
|
145
152
|
def publish_pages
|
146
153
|
@pages.each do |page|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
)
|
153
|
-
else
|
154
|
+
trigger_event(:before_page_write, page)
|
155
|
+
|
156
|
+
path = if page.path
|
157
|
+
File.dirname(page.path).sub(
|
158
|
+
@paths[:sources][:pages],
|
154
159
|
@paths[:output]
|
155
|
-
|
160
|
+
)
|
161
|
+
else
|
162
|
+
@paths[:output]
|
163
|
+
end
|
156
164
|
|
157
|
-
|
158
|
-
|
165
|
+
page.write(path)
|
166
|
+
|
167
|
+
trigger_event(:after_page_write, page)
|
159
168
|
end
|
160
169
|
end
|
161
170
|
|
@@ -270,5 +279,9 @@ module Dimples
|
|
270
279
|
def archive_day(year, month, day)
|
271
280
|
@archives[:day]["#{year}-#{month}-#{day}"] ||= []
|
272
281
|
end
|
282
|
+
|
283
|
+
def trigger_event(event, item = nil)
|
284
|
+
Plugin.send_event(self, event, item)
|
285
|
+
end
|
273
286
|
end
|
274
287
|
end
|
data/lib/dimples/template.rb
CHANGED
data/lib/dimples/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dimples
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Bogan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|