dimples 1.0.0 → 1.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.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
|