darthapo-stratus 0.3 → 0.3.1

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.
Files changed (68) hide show
  1. data/Changelog +41 -0
  2. data/Manifest +15 -36
  3. data/Readme.markdown +4 -0
  4. data/examples/dev-blog/config/defaults/{article.html → article.default.html} +0 -0
  5. data/{test/fixtures/site → examples/dev-blog}/config/defaults/page.default.html +0 -0
  6. data/examples/dev-blog/config/defaults/{page.html → post.default.html} +0 -0
  7. data/examples/dev-blog/themes/default/styles/main.css +1 -1
  8. data/examples/dev-blog/themes/default/templates/posts/content.html +4 -5
  9. data/lib/stratus.rb +1 -0
  10. data/lib/stratus/filters.rb +35 -1
  11. data/lib/stratus/generator/builder.rb +32 -8
  12. data/lib/stratus/generator/context.rb +28 -25
  13. data/lib/stratus/generator/renderer.rb +5 -2
  14. data/lib/stratus/logging.rb +28 -2
  15. data/lib/stratus/resources.rb +4 -2
  16. data/lib/stratus/resources/base.rb +15 -5
  17. data/lib/stratus/resources/content.rb +3 -1
  18. data/lib/stratus/tasks/app/boilerplate/config/content.yaml +19 -0
  19. data/lib/stratus/tasks/app/boilerplate/config/site.yaml +5 -11
  20. data/lib/stratus/tasks/app/boilerplate/content/pages/home/index.html +12 -16
  21. data/lib/stratus/tasks/app/boilerplate/content/posts/001_welcome/index.html +37 -0
  22. data/lib/stratus/tasks/app/boilerplate/content/posts/002_getting-started/index.html +37 -0
  23. data/lib/stratus/tasks/app/boilerplate/themes/default/images/footer-bg.png +0 -0
  24. data/lib/stratus/tasks/app/boilerplate/themes/default/images/page-bg.png +0 -0
  25. data/lib/stratus/tasks/app/boilerplate/themes/default/scripts/site.js +1 -0
  26. data/lib/stratus/tasks/app/boilerplate/themes/default/styles/main.css +99 -2
  27. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/layouts/main.html +18 -11
  28. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/{objects/page.html → pages/content.html} +9 -1
  29. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/pages/feed.xml +25 -0
  30. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/{objects/page.index.html → pages/list.html} +1 -1
  31. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/content.html +19 -0
  32. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/feed.xml +25 -0
  33. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/list.html +14 -0
  34. data/lib/stratus/tasks/site/site.rake +5 -0
  35. data/lib/stratus/version.rb +1 -1
  36. data/stratus.gemspec +3 -3
  37. metadata +17 -38
  38. data/examples/dev-blog/config/defaults/content.html +0 -7
  39. data/examples/dev-blog/config/defaults/post.html +0 -10
  40. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.html +0 -22
  41. data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.index.html +0 -10
  42. data/test/fixtures/site/StratusSite +0 -26
  43. data/test/fixtures/site/config/defaults/article.default.html +0 -7
  44. data/test/fixtures/site/config/defaults/content.default.html +0 -7
  45. data/test/fixtures/site/config/defaults/post.default.html +0 -10
  46. data/test/fixtures/site/config/site.yaml +0 -36
  47. data/test/fixtures/site/content/articles/001_im-the-title/index.html +0 -10
  48. data/test/fixtures/site/content/pages/about/index.html +0 -7
  49. data/test/fixtures/site/content/pages/home/index.html +0 -37
  50. data/test/fixtures/site/content/pages/projects/index.html +0 -6
  51. data/test/fixtures/site/content/posts/001_new-blog/dom.js +0 -123
  52. data/test/fixtures/site/content/posts/001_new-blog/index.html +0 -24
  53. data/test/fixtures/site/content/posts/001_new-blog/old.html +0 -18
  54. data/test/fixtures/site/content/posts/002_fun-for-the-whole-family/index.html +0 -12
  55. data/test/fixtures/site/content/posts/002_fun-for-the-whole-family/snippet_one.rb +0 -5
  56. data/test/fixtures/site/content/posts/003_life-is-quite-fun-really/index.html +0 -12
  57. data/test/fixtures/site/themes/default/scripts/code_highlighter.js +0 -188
  58. data/test/fixtures/site/themes/default/scripts/code_syntax.js +0 -92
  59. data/test/fixtures/site/themes/default/styles/code_syntax.css +0 -68
  60. data/test/fixtures/site/themes/default/styles/main.css +0 -66
  61. data/test/fixtures/site/themes/default/templates/layouts/main.html +0 -36
  62. data/test/fixtures/site/themes/default/templates/objects/article.html +0 -7
  63. data/test/fixtures/site/themes/default/templates/objects/article.index.html +0 -8
  64. data/test/fixtures/site/themes/default/templates/objects/feed.xml +0 -25
  65. data/test/fixtures/site/themes/default/templates/objects/page.html +0 -7
  66. data/test/fixtures/site/themes/default/templates/objects/page.index.html +0 -10
  67. data/test/fixtures/site/themes/default/templates/objects/post.html +0 -22
  68. data/test/fixtures/site/themes/default/templates/objects/post.index.html +0 -10
data/Changelog CHANGED
@@ -1,3 +1,44 @@
1
+ 2008-12-23 15:43:50 -0600
2
+ Added 'site:tree' task to print entire collection tree to console.
3
+
4
+ 2008-12-22 02:05:38 -0600
5
+ Updated boilerplate site, updated number_of_words filter
6
+
7
+ 2008-12-21 02:30:26 -0600
8
+ Udpated example dev-blog and added support Growl, if you have ruby-growl installed.
9
+
10
+ 2008-12-20 18:38:48 -0600
11
+ Updated boilerplate, next/prev now honors your sorting settings, memoized LiquidContext's site_data.
12
+
13
+ 2008-12-20 16:29:37 -0600
14
+ New: ignoring post dated content, validation failure messsages. Bugfixes: copy_file exceptions.
15
+ * Copying a file that doesn't exist will no longer throw an exception.
16
+ * Added support for validation failure messages
17
+ * Added validation for Content resources to be skipped if they are post dated
18
+
19
+ 2008-12-20 05:31:31 -0600
20
+ Nearing core feature completion...
21
+ * All collection types are rendered now, not just pages and posts
22
+ * Feed are generated for collection types
23
+ * Moved content configuration into config/content.yaml
24
+ * Added simple logging
25
+ * Added configuration options for creating relative links, forcing XHTML support and more
26
+ * Added sourcecode Liquid filter and tag.
27
+ - Tag: It will take all the contents within the tag and create pre/code wrapper around it.
28
+ - Filter: If an attachment is passed, it will load it and insert it's contents within a pre/code wrapper.
29
+
30
+ 2008-12-19 03:33:02 -0600
31
+ Returned markdown support to Maruku
32
+
33
+ 2008-12-19 03:31:29 -0600
34
+ Performance updates
35
+ * All paths are absolute uris (no more path_to_root during Liquid rendering)
36
+ * Relative paths are generated after the page generation using Hpricot
37
+ * Memoized liquid hash generation
38
+
39
+ 2008-12-18 21:41:51 -0600
40
+ Updated changelog
41
+
1
42
  2008-12-18 21:40:18 -0600
2
43
  Updated manifest and gemspec
3
44
 
data/Manifest CHANGED
@@ -5,10 +5,9 @@ Readme.markdown
5
5
  bin/stratus
6
6
  examples/dev-blog/StratusSite
7
7
  examples/dev-blog/config/content.yaml
8
- examples/dev-blog/config/defaults/article.html
9
- examples/dev-blog/config/defaults/content.html
10
- examples/dev-blog/config/defaults/page.html
11
- examples/dev-blog/config/defaults/post.html
8
+ examples/dev-blog/config/defaults/article.default.html
9
+ examples/dev-blog/config/defaults/page.default.html
10
+ examples/dev-blog/config/defaults/post.default.html
12
11
  examples/dev-blog/config/site.yaml
13
12
  examples/dev-blog/content/articles/animating-nsviews-in-rubycocoa/awake_from_nib.rb
14
13
  examples/dev-blog/content/articles/animating-nsviews-in-rubycocoa/ib_action.rb
@@ -65,16 +64,24 @@ lib/stratus/tags/markdown.rb
65
64
  lib/stratus/tags/sourcecode.rb
66
65
  lib/stratus/tags/textile.rb
67
66
  lib/stratus/tasks/app/boilerplate/StratusSite
67
+ lib/stratus/tasks/app/boilerplate/config/content.yaml
68
68
  lib/stratus/tasks/app/boilerplate/config/defaults/page.default.html
69
69
  lib/stratus/tasks/app/boilerplate/config/defaults/post.default.html
70
70
  lib/stratus/tasks/app/boilerplate/config/site.yaml
71
71
  lib/stratus/tasks/app/boilerplate/content/pages/home/index.html
72
+ lib/stratus/tasks/app/boilerplate/content/posts/001_welcome/index.html
73
+ lib/stratus/tasks/app/boilerplate/content/posts/002_getting-started/index.html
74
+ lib/stratus/tasks/app/boilerplate/themes/default/images/footer-bg.png
75
+ lib/stratus/tasks/app/boilerplate/themes/default/images/page-bg.png
76
+ lib/stratus/tasks/app/boilerplate/themes/default/scripts/site.js
72
77
  lib/stratus/tasks/app/boilerplate/themes/default/styles/main.css
73
78
  lib/stratus/tasks/app/boilerplate/themes/default/templates/layouts/main.html
74
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.html
75
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.index.html
76
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.html
77
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.index.html
79
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/pages/content.html
80
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/pages/feed.xml
81
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/pages/list.html
82
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/content.html
83
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/feed.xml
84
+ lib/stratus/tasks/app/boilerplate/themes/default/templates/posts/list.html
78
85
  lib/stratus/tasks/app/site.rake
79
86
  lib/stratus/tasks/shared/system.rake
80
87
  lib/stratus/tasks/site/new.rake
@@ -82,32 +89,4 @@ lib/stratus/tasks/site/site.rake
82
89
  lib/stratus/tasks/site/theme.rake
83
90
  lib/stratus/version.rb
84
91
  stratus.gemspec
85
- test/fixtures/site/StratusSite
86
- test/fixtures/site/config/defaults/article.default.html
87
- test/fixtures/site/config/defaults/content.default.html
88
- test/fixtures/site/config/defaults/page.default.html
89
- test/fixtures/site/config/defaults/post.default.html
90
- test/fixtures/site/config/site.yaml
91
- test/fixtures/site/content/articles/001_im-the-title/index.html
92
- test/fixtures/site/content/pages/about/index.html
93
- test/fixtures/site/content/pages/home/index.html
94
- test/fixtures/site/content/pages/projects/index.html
95
- test/fixtures/site/content/posts/001_new-blog/dom.js
96
- test/fixtures/site/content/posts/001_new-blog/index.html
97
- test/fixtures/site/content/posts/001_new-blog/old.html
98
- test/fixtures/site/content/posts/002_fun-for-the-whole-family/index.html
99
- test/fixtures/site/content/posts/002_fun-for-the-whole-family/snippet_one.rb
100
- test/fixtures/site/content/posts/003_life-is-quite-fun-really/index.html
101
- test/fixtures/site/themes/default/scripts/code_highlighter.js
102
- test/fixtures/site/themes/default/scripts/code_syntax.js
103
- test/fixtures/site/themes/default/styles/code_syntax.css
104
- test/fixtures/site/themes/default/styles/main.css
105
- test/fixtures/site/themes/default/templates/layouts/main.html
106
- test/fixtures/site/themes/default/templates/objects/article.html
107
- test/fixtures/site/themes/default/templates/objects/article.index.html
108
- test/fixtures/site/themes/default/templates/objects/feed.xml
109
- test/fixtures/site/themes/default/templates/objects/page.html
110
- test/fixtures/site/themes/default/templates/objects/page.index.html
111
- test/fixtures/site/themes/default/templates/objects/post.html
112
- test/fixtures/site/themes/default/templates/objects/post.index.html
113
92
  test/test_helper.rb
@@ -12,3 +12,7 @@ And yes, I know, I'm on a weird cloud kick.
12
12
  * Publishing (S/FTP)
13
13
  * Tagging support (limited)
14
14
  * Category support (limited)
15
+
16
+ # Ideas
17
+
18
+ * `vimeo` tag that embeds a thumbnail image with a link to the vimeo page (metadata: http://vimeo.com/api/clip/963462.xml)
@@ -4,7 +4,7 @@
4
4
  }
5
5
 
6
6
  BODY {
7
- font-family: "tahoma";
7
+ font-family: "lucida grande", "tahoma", sans-serif;
8
8
  background: #555;
9
9
  }
10
10
 
@@ -8,12 +8,11 @@
8
8
  Published on {{ this.publish_date | short_date }}. {{ this.body | number_of_words }} words.
9
9
  </p>
10
10
  <p class="pager">
11
- {% if this.prev %}
12
- <a href="{{ this.prev | uri_rel }}">&laquo; {{ this.prev.title }}</a>
13
- {% endif %}
14
- <a href="{{ page.home | uri_rel }}">Home</a>
15
11
  {% if this.next %}
16
- <a href="{{ this.next | uri_rel }}">{{ this.next.title }} &raquo;</a>
12
+ <a class="older" href="{{ this.next | uri_rel }}">&laquo; {{ this.next.title }}</a>
13
+ {% endif %}
14
+ {% if this.prev %}
15
+ <a class="newer" href="{{ this.prev | uri_rel }}">{{ this.prev.title }} &raquo;</a>
17
16
  {% endif %}
18
17
  </p>
19
18
  </div>
@@ -42,6 +42,7 @@ require 'maruku'
42
42
  #require 'cgi' # for HTML Escaping...
43
43
  #require 'bluecloth' rescue LoadError
44
44
 
45
+ require 'stratus/version'
45
46
  require 'stratus/logging'
46
47
  require 'stratus/generator'
47
48
  require 'stratus/resources'
@@ -19,9 +19,43 @@ module Stratus
19
19
  end
20
20
 
21
21
  def number_of_words(input)
22
- input.split.length
22
+ s = strip_html(CGI::unescapeHTML(input))
23
+ s.gsub!(/[\w|\']+/, 'X')
24
+ s.gsub!(/\W+/, '')
25
+ s.length
23
26
  end
24
27
 
28
+ # Moved to base resource...
29
+ # def last(content)
30
+ # return nil unless content.is_a? Hash and content.has_key?('collection_type')
31
+ # collection = Stratus::Generator::LiquidContext.site_data[content['collection_type']]
32
+ # collection.last
33
+ # end
34
+ #
35
+ # def prev(content)
36
+ # return nil unless content.is_a? Hash and content.has_key?('collection_type')
37
+ # collection = Stratus::Generator::LiquidContext.site_data[content['collection_type']]
38
+ # collection.each_with_index do |c,i|
39
+ # return collection[(i - 1)] if c.slug == content['slug']
40
+ # end
41
+ # nil
42
+ # end
43
+ #
44
+ # def next(content)
45
+ # return nil unless content.is_a? Hash and content.has_key?('collection_type')
46
+ # collection = Stratus::Generator::LiquidContext.site_data[content['collection_type']]
47
+ # collection.each_with_index do |c,i|
48
+ # return collection[(i + 1)] if c.slug == content['slug']
49
+ # end
50
+ # nil
51
+ # end
52
+ #
53
+ # def first(content)
54
+ # return nil unless content.is_a? Hash and content.has_key?('collection_type')
55
+ # collection = Stratus::Generator::LiquidContext.site_data[content['collection_type']]
56
+ # collection.first
57
+ # end
58
+
25
59
  EXTS = {
26
60
  '.rb' => 'ruby',
27
61
  '.css' => 'css',
@@ -9,10 +9,21 @@ class Builder
9
9
  end
10
10
 
11
11
  def execute
12
+ sweep_content
13
+ render_content
14
+ copy_theme_files
15
+
16
+ info "Done.", "\n"
17
+ growl "Build complete."
18
+ end
19
+
20
+ def sweep_content
12
21
  info "Scanning source structure..."
13
22
  scanner = Stratus::Generator::Scanner.new(@root_path)
14
23
  scanner.sweep
15
-
24
+ end
25
+
26
+ def render_content
16
27
  info "Rendering output..."
17
28
  make_dir Stratus.output_dir
18
29
  Stratus::Resources.collection_types.each do |col_type|
@@ -42,10 +53,6 @@ class Builder
42
53
  else
43
54
  error "NO HOME PAGE DEFINED! UPDATE YOUR CONFIG FILE!!!"
44
55
  end
45
-
46
- copy_theme_files
47
-
48
- info "Done.", "\n"
49
56
  end
50
57
 
51
58
  def copy_theme_files
@@ -80,12 +87,17 @@ protected
80
87
  end
81
88
 
82
89
  def copy_file(path, to)
83
- make_dir( File.dirname( to ) )
84
- FileUtils.cp_r path, to
85
- info(" - #{ to }", '.')
90
+ unless File.exists?(path)
91
+ info(" ? #{ to }", '.')
92
+ else
93
+ make_dir( File.dirname( to ) )
94
+ FileUtils.cp_r path, to
95
+ info(" - #{ to }", '.')
96
+ end
86
97
  end
87
98
 
88
99
  def delete_file(path, force=false)
100
+ return unless File.exists?(path)
89
101
  if force
90
102
  FileUtils.rm_rf( path )
91
103
  else
@@ -102,6 +114,18 @@ class << self
102
114
  Builder.new(root_path).execute
103
115
  end
104
116
 
117
+ def page_tree(root_path)
118
+ builder = Builder.new(root_path)
119
+ builder.sweep_content
120
+
121
+ Stratus::Resources.collection_types.sort.each do |col_type|
122
+ puts "#{ col_type }/"
123
+ Stratus::Resources.content(:collection_type=>col_type, :sort_by=>:slug).each do |r|
124
+ puts " #{ r.slug }"
125
+ end
126
+ end
127
+ end
128
+
105
129
  end
106
130
 
107
131
  end
@@ -7,39 +7,42 @@ class LiquidContext < Hash
7
7
 
8
8
  def initialize
9
9
  super
10
- site_data = {
11
- 'site' => Stratus.settings['site'],
12
- 'vars' => Stratus.settings.fetch('vars', {})
13
- }
14
- Stratus::Resources.collection_types.each do |col_type|
15
- sort_col = Stratus.content_setting(col_type, 'sort', 'index').to_sym
16
- reversed = Stratus.content_setting(col_type, 'reverse', false)
17
- collection_data = Stratus::Resources.content(:collection_type=>col_type, :sort_by=>sort_col, :reverse=>reversed)
18
- # puts "#{col_type}: #{collection_data.length} items... (sorted by #{sort_col}#{reversed ? ', reversed': ''})"
19
- site_data[col_type] = collection_data
20
- site_data[col_type.singularize] = hashify(collection_data)
21
- end
22
- self.merge!(site_data)
10
+ self.merge!(self.class.site_data)
23
11
  self
24
12
  end
25
13
 
26
- def self.path_to_root
27
- @@path_to_root ||= ''
28
- end
29
- def self.path_to_root=(path)
30
- @@path_to_root = path
31
- end
14
+ class << self
15
+ def path_to_root
16
+ @path_to_root ||= ''
17
+ end
18
+ def path_to_root=(path)
19
+ @path_to_root = path
20
+ end
21
+
22
+ def site_data
23
+ @site_data ||= returning({}) do |data|
24
+ data['site'] = Stratus.settings['site']
25
+ data['vars'] =Stratus.settings.fetch('vars', {})
26
+ Stratus::Resources.collection_types.each do |col_type|
27
+ sort_col = Stratus.content_setting(col_type, 'sort', 'index').to_sym
28
+ reversed = Stratus.content_setting(col_type, 'reverse', false)
29
+ collection_data = Stratus::Resources.content(:collection_type=>col_type, :sort_by=>sort_col, :reverse=>reversed)
30
+ data[col_type] = collection_data
31
+ data[col_type.singularize] = hashify(collection_data)
32
+ end
33
+ end
34
+ end
32
35
 
33
- protected
36
+ protected
34
37
 
35
- def hashify(list)
36
- returning({}) do |h|
37
- list.each do |item|
38
- h[item.slug] = item
38
+ def hashify(list)
39
+ returning({}) do |h|
40
+ list.each do |item|
41
+ h[item.slug] = item
42
+ end
39
43
  end
40
44
  end
41
45
  end
42
-
43
46
  end
44
47
 
45
48
  end
@@ -54,9 +54,12 @@ protected
54
54
 
55
55
  # Allows all context changes to be scoped
56
56
  def in_context(&block)
57
- old_context = @context.clone
57
+ #old_context = @context.clone
58
58
  results = yield
59
- @context = old_context
59
+ # Make sure stuff doesn't bleed over...
60
+ @context['this'] = nil
61
+ @context['content'] = nil
62
+ #@context = old_context
60
63
  results
61
64
  end
62
65
 
@@ -12,14 +12,40 @@ module Logging
12
12
  end
13
13
  end
14
14
 
15
- def error
15
+ def error(msg)
16
+ puts msg
17
+ end
18
+
19
+ def notify(type='', title='', msg='')
16
20
  puts msg
17
21
  end
18
22
 
19
- def fatal
23
+ def fatal(msg)
20
24
  puts msg
21
25
  end
22
26
 
27
+ def growl(message, title="Stratus Notification", type="stratus-notify")
28
+ growler.notify type, title, message
29
+ #notify(notify_type, title, message, priority = 0, sticky = false)
30
+ end
31
+
32
+ def growler
33
+ @growler ||= begin
34
+ if defined?(Growl)
35
+ Growl.new( "localhost", "stratus", ["stratus-notify"])
36
+ else
37
+ self
38
+ end
39
+ end
40
+ end
41
+
23
42
  end
24
43
 
44
+ end
45
+
46
+
47
+ begin
48
+ require 'ruby-growl'
49
+ rescue LoadError
50
+ # If you had ruby-growl, stratus would use it.
25
51
  end
@@ -8,11 +8,13 @@ module Stratus::Resources
8
8
 
9
9
  def register_content(content)
10
10
  content.fixup_meta
11
- if content.validate! # Should allow returning false to exclude from DB
11
+ validates, msg = content.validate!
12
+ if validates
12
13
  collection_types << content.collection_type unless collection_types.include?( content.collection_type ) or content.content_type != :content
13
14
  all << content
14
15
  else
15
- puts " - Skipping '#{content.content_path}': failed validation"
16
+ msg ||= "Failed validation..."
17
+ puts " * Skipping '#{content.content_path}': #{msg}"
16
18
  end
17
19
  end
18
20
 
@@ -107,12 +107,18 @@ class Base
107
107
  Stratus.setting('homepage') == content_path
108
108
  end
109
109
 
110
- def next_content
111
- Stratus::Resources.content(:first, :collection_type=>@collection_type, :index=>(@index + 1)) unless index.nil?
112
- end
113
-
114
110
  def prev_content
115
- Stratus::Resources.content(:first, :collection_type=>@collection_type, :index=>(@index - 1)) unless index.nil?
111
+ collection = Stratus::Generator::LiquidContext.site_data[ collection_type ]
112
+ idx = collection.index(self)
113
+ return false if idx.nil? or idx <= 0
114
+ collection[(idx - 1)]
115
+ end
116
+
117
+ def next_content
118
+ collection = Stratus::Generator::LiquidContext.site_data[ collection_type ]
119
+ idx = collection.index(self)
120
+ return false if idx.nil? or idx >= (collection.length - 1)
121
+ collection[(idx + 1)]
116
122
  end
117
123
 
118
124
  def to_liquid
@@ -190,6 +196,10 @@ protected
190
196
  # Coerce the meta data value if it's defined...
191
197
  content = if meta_tag[:type]
192
198
  case meta_tag[:type].downcase.to_sym
199
+ when :bool
200
+ (meta_tag[:content] == 'true')
201
+ when :boolean
202
+ (meta_tag[:content] == 'true')
193
203
  when :int
194
204
  meta_tag[:content].to_i
195
205
  when :integer