dimples 5.0.0 → 5.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/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
|