dimples 1.0.0 → 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/lib/dimples.rb +1 -2
- data/lib/dimples/frontable.rb +2 -2
- data/lib/dimples/page.rb +1 -1
- data/lib/dimples/post.rb +1 -5
- data/lib/dimples/publishable.rb +13 -8
- data/lib/dimples/site.rb +5 -24
- data/lib/dimples/template.rb +5 -0
- data/lib/dimples/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8087737e6b6cd32e6ce78ac923d25fb81fea3ee1
|
4
|
+
data.tar.gz: 9115b1916e6d5e68aba8d0d72eee3e5467f8c3b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75bf70ae2806048bec78a8289e0f8fe97f30ddadd5eb2ea4fb9a6419398d356089fd29af2814f1391fd115d516cd3a10792cca28ce1167663932d4802c5e9b6e
|
7
|
+
data.tar.gz: 62750172f7d2a54c770321ce28e7fd0ad43f66684d6dd52f242de058accf99d26abb0799572913007419968cb46539af3a6dcd5775490f1af7229589f04c22ad
|
data/lib/dimples.rb
CHANGED
data/lib/dimples/frontable.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Dimples
|
2
2
|
module Frontable
|
3
3
|
def read_with_yaml(path)
|
4
|
-
if path
|
4
|
+
if File.extname(path) == '.yml'
|
5
5
|
contents = ''
|
6
6
|
metadata = YAML.load_file(path)
|
7
7
|
else
|
@@ -10,7 +10,7 @@ module Dimples
|
|
10
10
|
|
11
11
|
if matches
|
12
12
|
metadata = YAML.load(matches[1])
|
13
|
-
contents = matches.post_match.strip
|
13
|
+
contents = matches.post_match.strip
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
data/lib/dimples/page.rb
CHANGED
@@ -9,6 +9,7 @@ module Dimples
|
|
9
9
|
attr_accessor :filename
|
10
10
|
attr_accessor :extension
|
11
11
|
attr_accessor :layout
|
12
|
+
attr_accessor :rendered_contents
|
12
13
|
|
13
14
|
attr_writer :contents
|
14
15
|
|
@@ -24,7 +25,6 @@ module Dimples
|
|
24
25
|
end
|
25
26
|
|
26
27
|
@extension = @site.config['file_extensions']['pages']
|
27
|
-
@layout ||= @site.config['layouts']['page']
|
28
28
|
end
|
29
29
|
|
30
30
|
def type
|
data/lib/dimples/post.rb
CHANGED
@@ -15,9 +15,9 @@ module Dimples
|
|
15
15
|
attr_accessor :year
|
16
16
|
attr_accessor :month
|
17
17
|
attr_accessor :day
|
18
|
+
attr_accessor :rendered_contents
|
18
19
|
|
19
20
|
attr_writer :contents
|
20
|
-
attr_writer :markdown
|
21
21
|
|
22
22
|
def initialize(site, path)
|
23
23
|
@site = site
|
@@ -49,10 +49,6 @@ module Dimples
|
|
49
49
|
@contents
|
50
50
|
end
|
51
51
|
|
52
|
-
def markdown
|
53
|
-
@markdown ||= @site.markdown_engine.render(contents())
|
54
|
-
end
|
55
|
-
|
56
52
|
def output_file_path(parent_path)
|
57
53
|
parts = [parent_path]
|
58
54
|
|
data/lib/dimples/publishable.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Dimples
|
2
2
|
module Publishable
|
3
|
-
def write(path, context =
|
4
|
-
output =
|
3
|
+
def write(path, context = {})
|
4
|
+
output = render(context)
|
5
5
|
|
6
6
|
publish_path = output_file_path(path)
|
7
7
|
parent_path = File.dirname(publish_path)
|
@@ -13,17 +13,22 @@ module Dimples
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def render(
|
17
|
-
context[:site]
|
16
|
+
def render(context = {}, body = nil, use_layout = true)
|
17
|
+
context[:site] = @site unless context[:site]
|
18
|
+
context[:this] = self unless context[:this]
|
18
19
|
|
19
20
|
begin
|
20
|
-
|
21
|
-
|
22
|
-
|
21
|
+
proc = Proc.new { |template| contents() }
|
22
|
+
renderer = @path ? Tilt.new(@path, &proc) : Tilt::StringTemplate.new(&proc)
|
23
|
+
output = renderer.render(nil, context) { body }.strip
|
24
|
+
|
25
|
+
@rendered_contents = output
|
26
|
+
rescue RuntimeError, TypeError, NoMethodError => e
|
27
|
+
raise "Failed to render #{path ? path.gsub(@site.source_paths[:root], '') : type} - #{e}"
|
23
28
|
end
|
24
29
|
|
25
30
|
if use_layout && @layout && @site.templates[@layout]
|
26
|
-
output = @site.templates[@layout].render(
|
31
|
+
output = @site.templates[@layout].render(context, output)
|
27
32
|
end
|
28
33
|
|
29
34
|
output
|
data/lib/dimples/site.rb
CHANGED
@@ -9,7 +9,6 @@ module Dimples
|
|
9
9
|
attr_accessor :pages
|
10
10
|
attr_accessor :posts
|
11
11
|
attr_accessor :latest_post
|
12
|
-
attr_accessor :markdown_engine
|
13
12
|
attr_accessor :page_class
|
14
13
|
attr_accessor :post_class
|
15
14
|
|
@@ -38,12 +37,6 @@ module Dimples
|
|
38
37
|
end
|
39
38
|
|
40
39
|
@output_paths[:posts] = File.join(@output_paths[:site], @config['paths']['posts'])
|
41
|
-
|
42
|
-
@markdown_engine = if @config['markdown']['enabled']
|
43
|
-
Redcarpet::Markdown.new(Redcarpet::Render::HTML, @config['markdown']['options'])
|
44
|
-
else
|
45
|
-
false
|
46
|
-
end
|
47
40
|
end
|
48
41
|
|
49
42
|
def scan_files
|
@@ -85,7 +78,7 @@ module Dimples
|
|
85
78
|
|
86
79
|
def generate
|
87
80
|
scan_files
|
88
|
-
|
81
|
+
|
89
82
|
begin
|
90
83
|
FileUtils.remove_dir(@output_paths[:site]) if Dir.exist?(@output_paths[:site])
|
91
84
|
Dir.mkdir(@output_paths[:site])
|
@@ -95,7 +88,7 @@ module Dimples
|
|
95
88
|
|
96
89
|
@posts.each do |post|
|
97
90
|
begin
|
98
|
-
post.write(@output_paths[:posts]
|
91
|
+
post.write(@output_paths[:posts])
|
99
92
|
rescue => e
|
100
93
|
raise "Failed to render post #{File.basename(post.path)} (#{e})"
|
101
94
|
end
|
@@ -103,7 +96,7 @@ module Dimples
|
|
103
96
|
|
104
97
|
@pages.each do |page|
|
105
98
|
begin
|
106
|
-
page.write(@output_paths[:site]
|
99
|
+
page.write(@output_paths[:site])
|
107
100
|
rescue => e
|
108
101
|
raise "Failed to render page from #{page.path.gsub(@source_paths[:root], '')} (#{e})"
|
109
102
|
end
|
@@ -206,14 +199,14 @@ module Dimples
|
|
206
199
|
end
|
207
200
|
end
|
208
201
|
|
209
|
-
def generate_feed(path,
|
202
|
+
def generate_feed(path, options)
|
210
203
|
feed = @page_class.new(self)
|
211
204
|
|
212
205
|
feed.filename = 'feed'
|
213
206
|
feed.extension = 'atom'
|
214
207
|
feed.layout = 'feed'
|
215
208
|
|
216
|
-
feed.write(path,
|
209
|
+
feed.write(path, options)
|
217
210
|
end
|
218
211
|
|
219
212
|
def paginate(posts, title, per_page, paths, layout, params = {})
|
@@ -262,17 +255,5 @@ module Dimples
|
|
262
255
|
page.write(File.join(page_paths), {posts: range, pagination: pagination}.merge(params))
|
263
256
|
end
|
264
257
|
end
|
265
|
-
|
266
|
-
def render(template_slug, content, layout = true)
|
267
|
-
return '' unless @templates[template_slug]
|
268
|
-
|
269
|
-
if content.is_a? String
|
270
|
-
@templates[template_slug].render(content, {}, layout)
|
271
|
-
elsif content.is_a? Hash
|
272
|
-
@templates[template_slug].render('', content, layout)
|
273
|
-
else
|
274
|
-
''
|
275
|
-
end
|
276
|
-
end
|
277
258
|
end
|
278
259
|
end
|
data/lib/dimples/template.rb
CHANGED
@@ -7,6 +7,7 @@ module Dimples
|
|
7
7
|
attr_accessor :title
|
8
8
|
attr_accessor :path
|
9
9
|
attr_accessor :contents
|
10
|
+
attr_accessor :rendered_contents
|
10
11
|
|
11
12
|
def initialize(site, path)
|
12
13
|
@site = site
|
@@ -15,5 +16,9 @@ module Dimples
|
|
15
16
|
|
16
17
|
@contents = read_with_yaml(path)
|
17
18
|
end
|
19
|
+
|
20
|
+
def type
|
21
|
+
:template
|
22
|
+
end
|
18
23
|
end
|
19
24
|
end
|
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: 1.
|
4
|
+
version: 1.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: 2015-02-
|
11
|
+
date: 2015-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erubis
|