drnic-liquid 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/CHANGELOG +44 -0
  2. data/History.txt +44 -0
  3. data/MIT-LICENSE +20 -0
  4. data/Manifest.txt +34 -0
  5. data/README.rdoc +44 -0
  6. data/Rakefile +30 -0
  7. data/example/server/example_servlet.rb +37 -0
  8. data/example/server/liquid_servlet.rb +28 -0
  9. data/example/server/server.rb +12 -0
  10. data/example/server/templates/index.liquid +6 -0
  11. data/example/server/templates/products.liquid +45 -0
  12. data/init.rb +8 -0
  13. data/lib/extras/liquid_view.rb +51 -0
  14. data/lib/liquid.rb +70 -0
  15. data/lib/liquid/block.rb +102 -0
  16. data/lib/liquid/condition.rb +120 -0
  17. data/lib/liquid/context.rb +221 -0
  18. data/lib/liquid/document.rb +17 -0
  19. data/lib/liquid/drop.rb +51 -0
  20. data/lib/liquid/errors.rb +11 -0
  21. data/lib/liquid/extensions.rb +56 -0
  22. data/lib/liquid/file_system.rb +62 -0
  23. data/lib/liquid/htmltags.rb +74 -0
  24. data/lib/liquid/module_ex.rb +62 -0
  25. data/lib/liquid/standardfilters.rb +209 -0
  26. data/lib/liquid/strainer.rb +51 -0
  27. data/lib/liquid/tag.rb +26 -0
  28. data/lib/liquid/tags/assign.rb +33 -0
  29. data/lib/liquid/tags/capture.rb +35 -0
  30. data/lib/liquid/tags/case.rb +83 -0
  31. data/lib/liquid/tags/comment.rb +9 -0
  32. data/lib/liquid/tags/cycle.rb +59 -0
  33. data/lib/liquid/tags/for.rb +136 -0
  34. data/lib/liquid/tags/if.rb +79 -0
  35. data/lib/liquid/tags/ifchanged.rb +20 -0
  36. data/lib/liquid/tags/include.rb +55 -0
  37. data/lib/liquid/tags/unless.rb +33 -0
  38. data/lib/liquid/template.rb +147 -0
  39. data/lib/liquid/variable.rb +49 -0
  40. data/liquid.gemspec +40 -0
  41. data/performance/shopify.rb +92 -0
  42. data/performance/shopify/comment_form.rb +33 -0
  43. data/performance/shopify/database.rb +45 -0
  44. data/performance/shopify/json_filter.rb +7 -0
  45. data/performance/shopify/liquid.rb +18 -0
  46. data/performance/shopify/money_filter.rb +18 -0
  47. data/performance/shopify/paginate.rb +93 -0
  48. data/performance/shopify/shop_filter.rb +98 -0
  49. data/performance/shopify/tag_filter.rb +25 -0
  50. data/performance/shopify/vision.database.yml +945 -0
  51. data/performance/shopify/weight_filter.rb +11 -0
  52. data/performance/tests/dropify/article.liquid +74 -0
  53. data/performance/tests/dropify/blog.liquid +33 -0
  54. data/performance/tests/dropify/cart.liquid +66 -0
  55. data/performance/tests/dropify/collection.liquid +22 -0
  56. data/performance/tests/dropify/index.liquid +47 -0
  57. data/performance/tests/dropify/page.liquid +8 -0
  58. data/performance/tests/dropify/product.liquid +68 -0
  59. data/performance/tests/dropify/theme.liquid +105 -0
  60. data/performance/tests/ripen/article.liquid +74 -0
  61. data/performance/tests/ripen/blog.liquid +13 -0
  62. data/performance/tests/ripen/cart.liquid +54 -0
  63. data/performance/tests/ripen/collection.liquid +29 -0
  64. data/performance/tests/ripen/index.liquid +32 -0
  65. data/performance/tests/ripen/page.liquid +4 -0
  66. data/performance/tests/ripen/product.liquid +75 -0
  67. data/performance/tests/ripen/theme.liquid +85 -0
  68. data/performance/tests/tribble/404.liquid +56 -0
  69. data/performance/tests/tribble/article.liquid +98 -0
  70. data/performance/tests/tribble/blog.liquid +41 -0
  71. data/performance/tests/tribble/cart.liquid +134 -0
  72. data/performance/tests/tribble/collection.liquid +70 -0
  73. data/performance/tests/tribble/index.liquid +94 -0
  74. data/performance/tests/tribble/page.liquid +56 -0
  75. data/performance/tests/tribble/product.liquid +116 -0
  76. data/performance/tests/tribble/search.liquid +51 -0
  77. data/performance/tests/tribble/theme.liquid +90 -0
  78. data/performance/tests/vogue/article.liquid +66 -0
  79. data/performance/tests/vogue/blog.liquid +32 -0
  80. data/performance/tests/vogue/cart.liquid +58 -0
  81. data/performance/tests/vogue/collection.liquid +19 -0
  82. data/performance/tests/vogue/index.liquid +22 -0
  83. data/performance/tests/vogue/page.liquid +3 -0
  84. data/performance/tests/vogue/product.liquid +62 -0
  85. data/performance/tests/vogue/theme.liquid +122 -0
  86. data/test/assign_test.rb +11 -0
  87. data/test/block_test.rb +58 -0
  88. data/test/condition_test.rb +109 -0
  89. data/test/context_test.rb +482 -0
  90. data/test/drop_test.rb +162 -0
  91. data/test/error_handling_test.rb +89 -0
  92. data/test/extra/breakpoint.rb +547 -0
  93. data/test/extra/caller.rb +80 -0
  94. data/test/file_system_test.rb +30 -0
  95. data/test/filter_test.rb +95 -0
  96. data/test/helper.rb +20 -0
  97. data/test/html_tag_test.rb +31 -0
  98. data/test/if_else_test.rb +131 -0
  99. data/test/include_tag_test.rb +115 -0
  100. data/test/module_ex_test.rb +89 -0
  101. data/test/output_test.rb +121 -0
  102. data/test/parsing_quirks_test.rb +41 -0
  103. data/test/regexp_test.rb +45 -0
  104. data/test/security_test.rb +41 -0
  105. data/test/standard_filter_test.rb +161 -0
  106. data/test/standard_tag_test.rb +400 -0
  107. data/test/statements_test.rb +137 -0
  108. data/test/strainer_test.rb +21 -0
  109. data/test/template_test.rb +26 -0
  110. data/test/test_helper.rb +20 -0
  111. data/test/unless_else_test.rb +27 -0
  112. data/test/variable_test.rb +172 -0
  113. metadata +187 -0
@@ -0,0 +1,45 @@
1
+ require 'yaml'
2
+ module Database
3
+
4
+ # Load the standard vision toolkit database and re-arrage it to be simply exportable
5
+ # to liquid as assigns. All this is based on Shopify
6
+ def self.tables
7
+ @tables ||= begin
8
+ db = YAML.load_file(File.dirname(__FILE__) + '/vision.database.yml')
9
+
10
+ # From vision source
11
+ db['products'].each do |product|
12
+ collections = db['collections'].find_all do |collection|
13
+ collection['products'].any? { |p| p['id'].to_i == product['id'].to_i }
14
+ end
15
+ product['collections'] = collections
16
+ end
17
+
18
+ # key the tables by handles, as this is how liquid expects it.
19
+ db = db.inject({}) do |assigns, (key, values)|
20
+ assigns[key] = values.inject({}) { |h, v| h[v['handle']] = v; h; }
21
+ assigns
22
+ end
23
+
24
+ # Some standard direct accessors so that the specialized templates
25
+ # render correctly
26
+ db['collection'] = db['collections'].values.first
27
+ db['product'] = db['products'].values.first
28
+ db['blog'] = db['blogs'].values.first
29
+ db['article'] = db['blog']['articles'].first
30
+
31
+ db['cart'] = {
32
+ 'total_price' => db['line_items'].values.inject(0) { |sum, item| sum += item['line_price'] * item['quantity'] },
33
+ 'item_count' => db['line_items'].values.inject(0) { |sum, item| sum += item['quantity'] },
34
+ 'items' => db['line_items'].values
35
+ }
36
+
37
+ db
38
+ end
39
+ end
40
+ end
41
+
42
+ if __FILE__ == $0
43
+ p Database.tables['collections']['frontpage'].keys
44
+ #p Database.tables['blog']['articles']
45
+ end
@@ -0,0 +1,7 @@
1
+ module JsonFilter
2
+
3
+ def json(object)
4
+ object.reject {|k,v| k == "collections" }.to_json
5
+ end
6
+
7
+ end
@@ -0,0 +1,18 @@
1
+ require File.dirname(__FILE__) + '/../../lib/liquid'
2
+
3
+ require File.dirname(__FILE__) + '/comment_form'
4
+ require File.dirname(__FILE__) + '/paginate'
5
+ require File.dirname(__FILE__) + '/json_filter'
6
+ require File.dirname(__FILE__) + '/money_filter'
7
+ require File.dirname(__FILE__) + '/shop_filter'
8
+ require File.dirname(__FILE__) + '/tag_filter'
9
+ require File.dirname(__FILE__) + '/weight_filter'
10
+
11
+ Liquid::Template.register_tag 'paginate', Paginate
12
+ Liquid::Template.register_tag 'form', CommentForm
13
+
14
+ Liquid::Template.register_filter JsonFilter
15
+ Liquid::Template.register_filter MoneyFilter
16
+ Liquid::Template.register_filter WeightFilter
17
+ Liquid::Template.register_filter ShopFilter
18
+ Liquid::Template.register_filter TagFilter
@@ -0,0 +1,18 @@
1
+ module MoneyFilter
2
+
3
+ def money_with_currency(money)
4
+ return '' if money.nil?
5
+ sprintf("$ %.2f USD", money/100.0)
6
+ end
7
+
8
+ def money(money)
9
+ return '' if money.nil?
10
+ sprintf("$ %.2f", money/100.0)
11
+ end
12
+
13
+ private
14
+
15
+ def currency
16
+ ShopDrop.new.currency
17
+ end
18
+ end
@@ -0,0 +1,93 @@
1
+ class Paginate < Liquid::Block
2
+ Syntax = /(#{Liquid::QuotedFragment})\s*(by\s*(\d+))?/
3
+
4
+ def initialize(tag_name, markup, tokens)
5
+ @nodelist = []
6
+
7
+ if markup =~ Syntax
8
+ @collection_name = $1
9
+ @page_size = if $2
10
+ $3.to_i
11
+ else
12
+ 20
13
+ end
14
+
15
+ @attributes = { 'window_size' => 3 }
16
+ markup.scan(Liquid::TagAttributes) do |key, value|
17
+ @attributes[key] = value
18
+ end
19
+ else
20
+ raise SyntaxError.new("Syntax Error in tag 'paginate' - Valid syntax: paginate [collection] by number")
21
+ end
22
+
23
+ super
24
+ end
25
+
26
+ def render(context)
27
+ @context = context
28
+
29
+ context.stack do
30
+ current_page = context['current_page'].to_i
31
+
32
+ pagination = {
33
+ 'page_size' => @page_size,
34
+ 'current_page' => 5,
35
+ 'current_offset' => @page_size * 5
36
+ }
37
+
38
+ context['paginate'] = pagination
39
+
40
+ collection_size = context[@collection_name].size
41
+
42
+ raise ArgumentError.new("Cannot paginate array '#{@collection_name}'. Not found.") if collection_size.nil?
43
+
44
+ page_count = (collection_size.to_f / @page_size.to_f).to_f.ceil + 1
45
+
46
+ pagination['items'] = collection_size
47
+ pagination['pages'] = page_count -1
48
+ pagination['previous'] = link('&laquo; Previous', current_page-1 ) unless 1 >= current_page
49
+ pagination['next'] = link('Next &raquo;', current_page+1 ) unless page_count <= current_page+1
50
+ pagination['parts'] = []
51
+
52
+ hellip_break = false
53
+
54
+ if page_count > 2
55
+ 1.upto(page_count-1) do |page|
56
+
57
+ if current_page == page
58
+ pagination['parts'] << no_link(page)
59
+ elsif page == 1
60
+ pagination['parts'] << link(page, page)
61
+ elsif page == page_count -1
62
+ pagination['parts'] << link(page, page)
63
+ elsif page <= current_page - @attributes['window_size'] or page >= current_page + @attributes['window_size']
64
+ next if hellip_break
65
+ pagination['parts'] << no_link('&hellip;')
66
+ hellip_break = true
67
+ next
68
+ else
69
+ pagination['parts'] << link(page, page)
70
+ end
71
+
72
+ hellip_break = false
73
+ end
74
+ end
75
+
76
+ render_all(@nodelist, context)
77
+ end
78
+ end
79
+
80
+ private
81
+
82
+ def no_link(title)
83
+ { 'title' => title, 'is_link' => false}
84
+ end
85
+
86
+ def link(title, page)
87
+ { 'title' => title, 'url' => current_url + "?page=#{page}", 'is_link' => true}
88
+ end
89
+
90
+ def current_url
91
+ "/collections/frontpage"
92
+ end
93
+ end
@@ -0,0 +1,98 @@
1
+ module ShopFilter
2
+
3
+ def asset_url(input)
4
+ "/files/1/[shop_id]/[shop_id]/assets/#{input}"
5
+ end
6
+
7
+ def global_asset_url(input)
8
+ "/global/#{input}"
9
+ end
10
+
11
+ def shopify_asset_url(input)
12
+ "/shopify/#{input}"
13
+ end
14
+
15
+ def script_tag(url)
16
+ %(<script src="#{url}" type="text/javascript"></script>)
17
+ end
18
+
19
+ def stylesheet_tag(url, media="all")
20
+ %(<link href="#{url}" rel="stylesheet" type="text/css" media="#{media}" />)
21
+ end
22
+
23
+ def link_to(link, url, title="")
24
+ %|<a href="#{url}" title="#{title}">#{link}</a>|
25
+ end
26
+
27
+ def img_tag(url, alt="")
28
+ %|<img src="#{url}" alt="#{alt}" />|
29
+ end
30
+
31
+ def link_to_vendor(vendor)
32
+ if vendor
33
+ link_to vendor, url_for_vendor(vendor), vendor
34
+ else
35
+ 'Unknown Vendor'
36
+ end
37
+ end
38
+
39
+ def link_to_type(type)
40
+ if type
41
+ link_to type, url_for_type(type), type
42
+ else
43
+ 'Unknown Vendor'
44
+ end
45
+ end
46
+
47
+ def url_for_vendor(vendor_title)
48
+ "/collections/#{vendor_title.to_handle}"
49
+ end
50
+
51
+ def url_for_type(type_title)
52
+ "/collections/#{type_title.to_handle}"
53
+ end
54
+
55
+ def product_img_url(url, style = 'small')
56
+
57
+ unless url =~ /^products\/([\w\-\_]+)\.(\w{2,4})/
58
+ raise ArgumentError, 'filter "size" can only be called on product images'
59
+ end
60
+
61
+ case style
62
+ when 'original'
63
+ return '/files/shops/random_number/' + url
64
+ when 'grande', 'large', 'medium', 'small', 'thumb', 'icon'
65
+ "/files/shops/random_number/products/#{$1}_#{style}.#{$2}"
66
+ else
67
+ raise ArgumentError, 'valid parameters for filter "size" are: original, grande, large, medium, small, thumb and icon '
68
+ end
69
+ end
70
+
71
+ def default_pagination(paginate)
72
+
73
+ html = []
74
+ html << %(<span class="prev">#{link_to(paginate['previous']['title'], paginate['previous']['url'])}</span>) if paginate['previous']
75
+
76
+ for part in paginate['parts']
77
+
78
+ if part['is_link']
79
+ html << %(<span class="page">#{link_to(part['title'], part['url'])}</span>)
80
+ elsif part['title'].to_i == paginate['current_page'].to_i
81
+ html << %(<span class="page current">#{part['title']}</span>)
82
+ else
83
+ html << %(<span class="deco">#{part['title']}</span>)
84
+ end
85
+
86
+ end
87
+
88
+ html << %(<span class="next">#{link_to(paginate['next']['title'], paginate['next']['url'])}</span>) if paginate['next']
89
+ html.join(' ')
90
+ end
91
+
92
+ # Accepts a number, and two words - one for singular, one for plural
93
+ # Returns the singular word if input equals 1, otherwise plural
94
+ def pluralize(input, singular, plural)
95
+ input == 1 ? singular : plural
96
+ end
97
+
98
+ end
@@ -0,0 +1,25 @@
1
+ module TagFilter
2
+
3
+ def link_to_tag(label, tag)
4
+ "<a title=\"Show tag #{tag}\" href=\"/collections/#{@context['handle']}/#{tag}\">#{label}</a>"
5
+ end
6
+
7
+ def highlight_active_tag(tag, css_class='active')
8
+ if @context['current_tags'].include?(tag)
9
+ "<span class=\"#{css_class}\">#{tag}</span>"
10
+ else
11
+ tag
12
+ end
13
+ end
14
+
15
+ def link_to_add_tag(label, tag)
16
+ tags = (@context['current_tags'] + [tag]).uniq
17
+ "<a title=\"Show tag #{tag}\" href=\"/collections/#{@context['handle']}/#{tags.join("+")}\">#{label}</a>"
18
+ end
19
+
20
+ def link_to_remove_tag(label, tag)
21
+ tags = (@context['current_tags'] - [tag]).uniq
22
+ "<a title=\"Show tag #{tag}\" href=\"/collections/#{@context['handle']}/#{tags.join("+")}\">#{label}</a>"
23
+ end
24
+
25
+ end
@@ -0,0 +1,945 @@
1
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2
+ # Variants
3
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
4
+
5
+ product_variants:
6
+ - &product-1-var-1
7
+ id: 1
8
+ title: 151cm / Normal
9
+ price: 19900
10
+ weight: 1000
11
+ compare_at_price: 49900
12
+ available: true
13
+ inventory_quantity: 5
14
+ option1: 151cm
15
+ option2: Normal
16
+ option3:
17
+ - &product-1-var-2
18
+ id: 2
19
+ title: 155cm / Normal
20
+ price: 31900
21
+ weight: 1000
22
+ compare_at_price: 50900
23
+ available: true
24
+ inventory_quantity: 2
25
+ option1: 155cm
26
+ option2: Normal
27
+ option3:
28
+ - &product-2-var-1
29
+ id: 3
30
+ title: 162cm
31
+ price: 29900
32
+ weight: 1000
33
+ compare_at_price: 52900
34
+ available: true
35
+ inventory_quantity: 3
36
+ option1: 162cm
37
+ option2:
38
+ option3:
39
+ - &product-3-var-1
40
+ id: 4
41
+ title: 159cm
42
+ price: 19900
43
+ weight: 1000
44
+ compare_at_price:
45
+ available: true
46
+ inventory_quantity: 4
47
+ option1: 159cm
48
+ option2:
49
+ option3:
50
+ - &product-4-var-1
51
+ id: 5
52
+ title: 159cm
53
+ price: 19900
54
+ weight: 1000
55
+ compare_at_price: 32900
56
+ available: true
57
+ inventory_quantity: 6
58
+ option1: 159cm
59
+ option2:
60
+ option3:
61
+ - &product-1-var-3
62
+ id: 6
63
+ title: 158cm / Wide
64
+ price: 23900
65
+ weight: 1000
66
+ compare_at_price: 99900
67
+ available: false
68
+ inventory_quantity: 0
69
+ option1: 158cm
70
+ option2: Wide
71
+ option3:
72
+ - &product-3-var-2
73
+ id: 7
74
+ title: 162cm
75
+ price: 19900
76
+ weight: 1000
77
+ compare_at_price:
78
+ available: false
79
+ inventory_quantity: 0
80
+ option1: 162cm
81
+ option2:
82
+ option3:
83
+ - &product-3-var-3
84
+ id: 8
85
+ title: 165cm
86
+ price: 22900
87
+ weight: 1000
88
+ compare_at_price:
89
+ available: true
90
+ inventory_quantity: 4
91
+ option1: 165cm
92
+ option2:
93
+ option3:
94
+ - &product-5-var-1
95
+ id: 9
96
+ title: black / 42
97
+ price: 11900
98
+ weight: 500
99
+ compare_at_price: 22900
100
+ available: true
101
+ inventory_quantity: 1
102
+ option1: black
103
+ option2: 42
104
+ option3:
105
+ - &product-5-var-2
106
+ id: 10
107
+ title: beige / 42
108
+ price: 11900
109
+ weight: 500
110
+ compare_at_price: 22900
111
+ available: true
112
+ inventory_quantity: 3
113
+ option1: beige
114
+ option2: 42
115
+ option3:
116
+ - &product-5-var-3
117
+ id: 11
118
+ title: white / 42
119
+ price: 13900
120
+ weight: 500
121
+ compare_at_price: 24900
122
+ available: true
123
+ inventory_quantity: 1
124
+ option1: white
125
+ option2: 42
126
+ option3:
127
+ - &product-5-var-4
128
+ id: 12
129
+ title: black / 44
130
+ price: 11900
131
+ weight: 500
132
+ compare_at_price: 22900
133
+ available: true
134
+ inventory_quantity: 2
135
+ option1: black
136
+ option2: 44
137
+ option3:
138
+ - &product-5-var-5
139
+ id: 13
140
+ title: beige / 44
141
+ price: 11900
142
+ weight: 500
143
+ compare_at_price: 22900
144
+ available: false
145
+ inventory_quantity: 0
146
+ option1: beige
147
+ option2: 44
148
+ option3:
149
+ - &product-5-var-6
150
+ id: 14
151
+ title: white / 44
152
+ price: 13900
153
+ weight: 500
154
+ compare_at_price: 24900
155
+ available: false
156
+ inventory_quantity: 0
157
+ option1: white
158
+ option2: 44
159
+ option3:
160
+ - &product-6-var-1
161
+ id: 15
162
+ title: red
163
+ price: 2179500
164
+ weight: 200000
165
+ compare_at_price:
166
+ available: true
167
+ inventory_quantity: 0
168
+ option1: red
169
+ option2:
170
+ option3:
171
+ - &product-7-var-1
172
+ id: 16
173
+ title: black / small
174
+ price: 1900
175
+ weight: 200
176
+ compare_at_price:
177
+ available: true
178
+ inventory_quantity: 20
179
+ option1: black
180
+ option2: small
181
+ option3:
182
+ - &product-7-var-2
183
+ id: 17
184
+ title: black / medium
185
+ price: 1900
186
+ weight: 200
187
+ compare_at_price:
188
+ available: false
189
+ inventory_quantity: 0
190
+ option1: black
191
+ option2: medium
192
+ option3:
193
+ - &product-7-var-3
194
+ id: 18
195
+ title: black / large
196
+ price: 1900
197
+ weight: 200
198
+ compare_at_price:
199
+ available: true
200
+ inventory_quantity: 10
201
+ option1: black
202
+ option2: large
203
+ option3:
204
+ - &product-7-var-4
205
+ id: 19
206
+ title: black / extra large
207
+ price: 1900
208
+ weight: 200
209
+ compare_at_price:
210
+ available: false
211
+ inventory_quantity: 0
212
+ option1: black
213
+ option2: extra large
214
+ option3:
215
+ - &product-8-var-1
216
+ id: 20
217
+ title: brown / small
218
+ price: 5900
219
+ weight: 400
220
+ compare_at_price: 6900
221
+ available: true
222
+ inventory_quantity: 5
223
+ option1: brown
224
+ option2: small
225
+ option3:
226
+ - &product-8-var-2
227
+ id: 21
228
+ title: brown / medium
229
+ price: 5900
230
+ weight: 400
231
+ compare_at_price: 6900
232
+ available: false
233
+ inventory_quantity: 0
234
+ option1: brown
235
+ option2: medium
236
+ option3:
237
+ - &product-8-var-3
238
+ id: 22
239
+ title: brown / large
240
+ price: 5900
241
+ weight: 400
242
+ compare_at_price: 6900
243
+ available: true
244
+ inventory_quantity: 10
245
+ option1: brown
246
+ option2: large
247
+ option3:
248
+ - &product-8-var-4
249
+ id: 23
250
+ title: black / small
251
+ price: 5900
252
+ weight: 400
253
+ compare_at_price: 6900
254
+ available: true
255
+ inventory_quantity: 10
256
+ option1: black
257
+ option2: small
258
+ option3:
259
+ - &product-8-var-5
260
+ id: 24
261
+ title: black / medium
262
+ price: 5900
263
+ weight: 400
264
+ compare_at_price: 6900
265
+ available: true
266
+ inventory_quantity: 10
267
+ option1: black
268
+ option2: medium
269
+ option3:
270
+ - &product-8-var-6
271
+ id: 25
272
+ title: black / large
273
+ price: 5900
274
+ weight: 400
275
+ compare_at_price: 6900
276
+ available: false
277
+ inventory_quantity: 0
278
+ option1: black
279
+ option2: large
280
+ option3:
281
+ - &product-9-var-1
282
+ id: 26
283
+ title: Body Only
284
+ price: 499995
285
+ weight: 2000
286
+ compare_at_price:
287
+ available: true
288
+ inventory_quantity: 3
289
+ option1: Body Only
290
+ option2:
291
+ option3:
292
+ - &product-9-var-2
293
+ id: 27
294
+ title: Kit with 18-55mm VR lens
295
+ price: 523995
296
+ weight: 2000
297
+ compare_at_price:
298
+ available: true
299
+ inventory_quantity: 2
300
+ option1: Kit with 18-55mm VR lens
301
+ option2:
302
+ option3:
303
+ - &product-9-var-3
304
+ id: 28
305
+ title: Kit with 18-200 VR lens
306
+ price: 552500
307
+ weight: 2000
308
+ compare_at_price:
309
+ available: true
310
+ inventory_quantity: 3
311
+ option1: Kit with 18-200 VR lens
312
+ option2:
313
+ option3:
314
+
315
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
316
+ # Products
317
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
318
+
319
+ products:
320
+ - &product-1
321
+ id: 1
322
+ title: Arbor Draft
323
+ handle: arbor-draft
324
+ type: Snowboards
325
+ vendor: Arbor
326
+ price: 23900
327
+ price_max: 31900
328
+ price_min: 23900
329
+ price_varies: true
330
+ available: true
331
+ tags:
332
+ - season2005
333
+ - pro
334
+ - intermediate
335
+ - wooden
336
+ - freestyle
337
+ options:
338
+ - Length
339
+ - Style
340
+ compare_at_price: 49900
341
+ compare_at_price_max: 50900
342
+ compare_at_price_min: 49900
343
+ compare_at_price_varies: true
344
+ url: /products/arbor-draft
345
+ featured_image: products/arbor_draft.jpg
346
+ images:
347
+ - products/arbor_draft.jpg
348
+ description:
349
+ The Arbor Draft snowboard wouldn't exist if Polynesians hadn't figured out how to surf hundreds of years ago. But the Draft does exist, and it's here to bring your urban and park riding to a new level. The board's freaky Tiki design pays homage to culture that inspired snowboarding. It's designed to spin with ease, land smoothly, lock hook-free onto rails, and take the abuse of a pavement pounding or twelve. The Draft will pop off kickers with authority and carve solidly across the pipe. The Draft features targeted Koa wood die cuts inlayed into the deck that enhance the flex pattern. Now bow down to riding's ancestors.
350
+ variants:
351
+ - *product-1-var-1
352
+ - *product-1-var-2
353
+ - *product-1-var-3
354
+ - &product-2
355
+ id: 2
356
+ title: Arbor Element
357
+ handle: arbor-element
358
+ type: Snowboards
359
+ vendor: Arbor
360
+ price: 29900
361
+ price_max: 29900
362
+ price_min: 29900
363
+ price_varies: false
364
+ available: true
365
+ tags:
366
+ - season2005
367
+ - pro
368
+ - wooden
369
+ - freestyle
370
+ options:
371
+ - Length
372
+ compare_at_price: 52900
373
+ compare_at_price_max: 52900
374
+ compare_at_price_min: 52900
375
+ compare_at_price_varies: false
376
+ url: /products/arbor-element
377
+ featured_image: products/element58.jpg
378
+ images:
379
+ - products/element58.jpg
380
+ description:
381
+ The Element is a technically advanced all-mountain board for riders who readily transition from one terrain, snow condition, or riding style to another. Its balanced design provides the versatility needed for the true ride-it-all experience. The Element is exceedingly lively, freely initiates, and holds a tight edge at speed. Its structural real-wood topsheet is made with book-matched Koa.
382
+ variants:
383
+ - *product-2-var-1
384
+
385
+ - &product-3
386
+ id: 3
387
+ title: Comic ~ Pastel
388
+ handle: comic-pastel
389
+ type: Snowboards
390
+ vendor: Technine
391
+ price: 19900
392
+ price_max: 22900
393
+ price_min: 19900
394
+ tags:
395
+ - season2006
396
+ - beginner
397
+ - intermediate
398
+ - freestyle
399
+ - purple
400
+ options:
401
+ - Length
402
+ price_varies: true
403
+ available: true
404
+ compare_at_price:
405
+ compare_at_price_max: 0
406
+ compare_at_price_min: 0
407
+ compare_at_price_varies: false
408
+ url: /products/comic-pastel
409
+ featured_image: products/technine1.jpg
410
+ images:
411
+ - products/technine1.jpg
412
+ - products/technine2.jpg
413
+ - products/technine_detail.jpg
414
+ description:
415
+ 2005 Technine Comic Series Description The Comic series was developed to be the ultimate progressive freestyle board in the Technine line. Dependable edge control and a perfect flex pattern for jumping in the park or out of bounds. Landins and progression will come easy with this board and it will help your riding progress to the next level. Street rails, park jibs, backcountry booters and park jumps, this board will do it all.
416
+ variants:
417
+ - *product-3-var-1
418
+ - *product-3-var-2
419
+ - *product-3-var-3
420
+
421
+ - &product-4
422
+ id: 4
423
+ title: Comic ~ Orange
424
+ handle: comic-orange
425
+ type: Snowboards
426
+ vendor: Technine
427
+ price: 19900
428
+ price_max: 19900
429
+ price_min: 19900
430
+ price_varies: false
431
+ available: true
432
+ tags:
433
+ - season2006
434
+ - beginner
435
+ - intermediate
436
+ - freestyle
437
+ - orange
438
+ options:
439
+ - Length
440
+ compare_at_price: 32900
441
+ compare_at_price_max: 32900
442
+ compare_at_price_min: 32900
443
+ compare_at_price_varies: false
444
+ url: /products/comic-orange
445
+ featured_image: products/technine3.jpg
446
+ images:
447
+ - products/technine3.jpg
448
+ - products/technine4.jpg
449
+ description:
450
+ 2005 Technine Comic Series Description The Comic series was developed to be the ultimate progressive freestyle board in the Technine line. Dependable edge control and a perfect flex pattern for jumping in the park or out of bounds. Landins and progression will come easy with this board and it will help your riding progress to the next level. Street rails, park jibs, backcountry booters and park jumps, this board will do it all.
451
+ variants:
452
+ - *product-4-var-1
453
+
454
+ - &product-5
455
+ id: 5
456
+ title: Burton Boots
457
+ handle: burton-boots
458
+ type: Boots
459
+ vendor: Burton
460
+ price: 11900
461
+ price_max: 11900
462
+ price_min: 11900
463
+ price_varies: false
464
+ available: true
465
+ tags:
466
+ - season2006
467
+ - beginner
468
+ - intermediate
469
+ - boots
470
+ options:
471
+ - Color
472
+ - Shoe Size
473
+ compare_at_price: 22900
474
+ compare_at_price_max: 22900
475
+ compare_at_price_min: 22900
476
+ compare_at_price_varies: false
477
+ url: /products/burton-boots
478
+ featured_image: products/burton.jpg
479
+ images:
480
+ - products/burton.jpg
481
+ description:
482
+ The Burton boots are particularly well on snowboards. The very best thing about them is that the according picture is cubic. This makes testing in a Vision testing environment very easy.
483
+ variants:
484
+ - *product-5-var-1
485
+ - *product-5-var-2
486
+ - *product-5-var-3
487
+ - *product-5-var-4
488
+ - *product-5-var-5
489
+ - *product-5-var-6
490
+
491
+ - &product-6
492
+ id: 6
493
+ title: Superbike 1198 S
494
+ handle: superbike
495
+ type: Superbike
496
+ vendor: Ducati
497
+ price: 2179500
498
+ price_max: 2179500
499
+ price_min: 2179500
500
+ price_varies: false
501
+ available: true
502
+ tags:
503
+ - ducati
504
+ - superbike
505
+ - bike
506
+ - street
507
+ - racing
508
+ - performance
509
+ options:
510
+ - Color
511
+ compare_at_price:
512
+ compare_at_price_max: 0
513
+ compare_at_price_min: 0
514
+ compare_at_price_varies: false
515
+ url: /products/superbike
516
+ featured_image: products/ducati.jpg
517
+ images:
518
+ - products/ducati.jpg
519
+ description:
520
+ <h3>‘S’ PERFORMANCE</h3>
521
+ <p>Producing 170hp (125kW) and with a dry weight of just 169kg (372.6lb), the new 1198 S now incorporates more World Superbike technology than ever before by taking the 1198 motor and adding top-of-the-range suspension, lightweight chassis components and a true racing-style traction control system designed for road use.</p>
522
+ <p>The high performance, fully adjustable 43mm Öhlins forks, which sport low friction titanium nitride-treated fork sliders, respond effortlessly to every imperfection in the tarmac. Beyond their advanced engineering solutions, one of the most important characteristics of Öhlins forks is their ability to communicate the condition and quality of the tyre-to-road contact patch, a feature that puts every rider in superior control. The suspension set-up at the rear is complemented with a fully adjustable Öhlins rear shock equipped with a ride enhancing top-out spring and mounted to a single-sided swingarm for outstanding drive and traction. The front-to-rear Öhlins package is completed with a control-enhancing adjustable steering damper.</p>
523
+ variants:
524
+ - *product-6-var-1
525
+
526
+ - &product-7
527
+ id: 7
528
+ title: Shopify Shirt
529
+ handle: shopify-shirt
530
+ type: Shirt
531
+ vendor: Shopify
532
+ price: 1900
533
+ price_max: 1900
534
+ price_min: 1900
535
+ price_varies: false
536
+ available: true
537
+ tags:
538
+ - shopify
539
+ - shirt
540
+ - apparel
541
+ - tshirt
542
+ - clothing
543
+ options:
544
+ - Color
545
+ - Size
546
+ compare_at_price:
547
+ compare_at_price_max: 0
548
+ compare_at_price_min: 0
549
+ compare_at_price_varies: false
550
+ url: /products/shopify-shirt
551
+ featured_image: products/shopify_shirt.png
552
+ images:
553
+ - products/shopify_shirt.png
554
+ description:
555
+ <p>High Quality Shopify Shirt. Wear your e-commerce solution with pride and attract attention anywhere you go.</p>
556
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
557
+ variants:
558
+ - *product-7-var-1
559
+ - *product-7-var-2
560
+ - *product-7-var-3
561
+ - *product-7-var-4
562
+
563
+ - &product-8
564
+ id: 8
565
+ title: Hooded Sweater
566
+ handle: hooded-sweater
567
+ type: Sweater
568
+ vendor: Stormtech
569
+ price: 5900
570
+ price_max: 5900
571
+ price_min: 5900
572
+ price_varies: false
573
+ available: true
574
+ tags:
575
+ - sweater
576
+ - hooded
577
+ - apparel
578
+ - clothing
579
+ options:
580
+ - Color
581
+ - Size
582
+ compare_at_price: 6900
583
+ compare_at_price_max: 6900
584
+ compare_at_price_min: 6900
585
+ compare_at_price_varies: false
586
+ url: /products/hooded-sweater
587
+ featured_image: products/hooded-sweater.jpg
588
+ images:
589
+ - products/hooded-sweater.jpg
590
+ - products/hooded-sweater-b.jpg
591
+ description:
592
+ <p>Extra comfortable zip up sweater. Durable quality, ideal for any outdoor activities.</p>
593
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
594
+ variants:
595
+ - *product-8-var-1
596
+ - *product-8-var-2
597
+ - *product-8-var-3
598
+ - *product-8-var-4
599
+ - *product-8-var-5
600
+ - *product-8-var-6
601
+
602
+ - &product-9
603
+ id: 9
604
+ title: D3 Digital SLR Camera
605
+ handle: d3
606
+ type: SLR
607
+ vendor: Nikon
608
+ price: 499995
609
+ price_max: 552500
610
+ price_min: 499995
611
+ price_varies: true
612
+ available: true
613
+ tags:
614
+ - camera
615
+ - slr
616
+ - nikon
617
+ - professional
618
+ options:
619
+ - Bundle
620
+ compare_at_price:
621
+ compare_at_price_max: 0
622
+ compare_at_price_min: 0
623
+ compare_at_price_varies: false
624
+ url: /products/d3
625
+ featured_image: products/d3.jpg
626
+ images:
627
+ - products/d3.jpg
628
+ - products/d3_2.jpg
629
+ - products/d3_3.jpg
630
+ description:
631
+ <p>Flagship pro D-SLR with a 12.1-MP FX-format CMOS sensor, blazing 9 fps shooting at full FX resolution and low-noise performance up to 6400 ISO.</p>
632
+ <p><strong>Nikon's original 12.1-megapixel FX-format (23.9 x 36mm) CMOS sensor:</strong> Couple Nikon's exclusive digital image processing system with the 12.1-megapixel FX-format and you'll get breathtakingly rich images while also reducing noise to unprecedented levels with even higher ISOs.</p>
633
+ <p><strong>Continuous shooting at up to 9 frames per second:</strong> At full FX resolution and up to 11fps in the DX crop mode, the D3 offers uncompromised shooting speeds for fast-action and sports photography.</p>
634
+ variants:
635
+ - *product-9-var-1
636
+ - *product-9-var-2
637
+ - *product-9-var-3
638
+
639
+
640
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
641
+ # Line Items
642
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
643
+
644
+ line_items:
645
+ - &line_item-1
646
+ id: 1
647
+ title: 'Arbor Draft'
648
+ subtitle: '151cm'
649
+ price: 29900
650
+ line_price: 29900
651
+ quantity: 1
652
+ variant: *product-1-var-1
653
+ product: *product-1
654
+
655
+ - &line_item-2
656
+ id: 2
657
+ title: 'Comic ~ Orange'
658
+ subtitle: '159cm'
659
+ price: 19900
660
+ line_price: 39800
661
+ quantity: 2
662
+ variant: *product-4-var-1
663
+ product: *product-4
664
+
665
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
666
+ # Link Lists
667
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
668
+ links:
669
+ - &link-1
670
+ id: 1
671
+ title: Our Sale
672
+ url: /collections/sale
673
+ - &link-2
674
+ id: 2
675
+ title: Arbor Stuff
676
+ url: /collections/arbor
677
+ - &link-3
678
+ id: 3
679
+ title: All our Snowboards
680
+ url: /collections/snowboards
681
+ - &link-4
682
+ id: 4
683
+ title: Powered by Shopify
684
+ url: 'http://shopify.com'
685
+ - &link-5
686
+ id: 5
687
+ title: About Us
688
+ url: /pages/about-us
689
+ - &link-6
690
+ id: 6
691
+ title: Policies
692
+ url: /pages/shipping
693
+ - &link-7
694
+ id: 7
695
+ title: Contact Us
696
+ url: /pages/contact
697
+ - &link-8
698
+ id: 8
699
+ title: Our blog
700
+ url: /blogs/bigcheese-blog
701
+ - &link-9
702
+ id: 9
703
+ title: New Boots
704
+ url: /products/burton-boots
705
+ - &link-10
706
+ id: 10
707
+ title: Paginated Sale
708
+ url: /collections/paginated-sale
709
+ - &link-11
710
+ id: 11
711
+ title: Our Paginated blog
712
+ url: /blogs/paginated-blog
713
+ - &link-12
714
+ id: 12
715
+ title: Catalog
716
+ url: /collections/all
717
+
718
+
719
+
720
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
721
+ # Link Lists
722
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
723
+
724
+ link_lists:
725
+ - &link-list-1
726
+ id: 1
727
+ title: 'Main Menu'
728
+ handle: 'main-menu'
729
+ links:
730
+ - *link-12
731
+ - *link-5
732
+ - *link-7
733
+ - *link-8
734
+ - &link-list-2
735
+ id: 1
736
+ title: 'Footer Menu'
737
+ handle: 'footer'
738
+ links:
739
+ - *link-5
740
+ - *link-6
741
+
742
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
743
+ # Collections
744
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
745
+
746
+ collections:
747
+ - &collection-1
748
+ id: 1
749
+ title: Frontpage
750
+ handle: frontpage
751
+ url: /collections/frontpage
752
+ products:
753
+ - *product-7
754
+ - *product-8
755
+ - *product-9
756
+
757
+ - &collection-2
758
+ id: 2
759
+ title: Arbor
760
+ handle: arbor
761
+ url: /collections/arbor
762
+ products:
763
+ - *product-1
764
+ - *product-2
765
+
766
+ - &collection-3
767
+ id: 3
768
+ title: Snowboards
769
+ handle: snowboards
770
+ url: /collections/snowboards
771
+ description:
772
+ <p>This is a description for my <strong>Snowboards</strong> collection.</p>
773
+ products:
774
+ - *product-1
775
+ - *product-2
776
+ - *product-3
777
+ - *product-4
778
+
779
+ - &collection-4
780
+ id: 4
781
+ title: Items On Sale
782
+ handle: sale
783
+ url: /collections/sale
784
+ products:
785
+ - *product-1
786
+
787
+ - &collection-5
788
+ id: 5
789
+ title: Paginated Sale
790
+ handle: 'paginated-sale'
791
+ url: '/collections/paginated-sale'
792
+ products:
793
+ - *product-1
794
+ - *product-2
795
+ - *product-3
796
+ - *product-4
797
+ products_count: 210
798
+
799
+ - &collection-6
800
+ id: 6
801
+ title: All products
802
+ handle: 'all'
803
+ url: '/collections/all'
804
+ products:
805
+ - *product-7
806
+ - *product-8
807
+ - *product-9
808
+ - *product-6
809
+ - *product-1
810
+ - *product-2
811
+ - *product-3
812
+ - *product-4
813
+ - *product-5
814
+
815
+
816
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
817
+ # Pages and Blogs
818
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
819
+ pages:
820
+ - &page-2
821
+ id: 1
822
+ title: Contact Us
823
+ handle: contact
824
+ url: /pages/contact
825
+ author: Tobi
826
+ content:
827
+ "<p>You can contact us via phone under (555) 567-2222.</p>
828
+ <p>Our retail store is located at <em>Rue d'Avignon 32, Avignon (Provence)</em>.</p>
829
+ <p><strong>Opening Hours:</strong><br />Monday through Friday: 9am - 6pm<br />Saturday: 10am - 3pm<br />Sunday: closed</p>"
830
+ created_at: 2005-04-04 12:00
831
+
832
+ - &page-3
833
+ id: 2
834
+ title: About Us
835
+ handle: about-us
836
+ url: /pages/about-us
837
+ author: Tobi
838
+ content:
839
+ "<p>Our company was founded in 1894 and we are since operating out of Avignon from the beautiful Provence.</p>
840
+ <p>We offer the highest quality products and are proud to serve our customers to their heart's content.</p>"
841
+ created_at: 2005-04-04 12:00
842
+
843
+ - &page-4
844
+ id: 3
845
+ title: Shopping Cart
846
+ handle: shopping-cart
847
+ url: /pages/shopping-cart
848
+ author: Tobi
849
+ content: "<ul><li>Your order is safe with us. Our checkout uses industry standard security to protect your information.</li><li>Your order will be billed immediately upon checkout.</li><li><b>ALL SALES ARE FINAL:</b> Defective or damaged product will be exchanged</li><li>All orders are processed expediently: usually in under 24 hours.</li></ul>"
850
+ created_at: 2005-04-04 12:00
851
+
852
+ - &page-5
853
+ id: 4
854
+ title: Shipping and Handling
855
+ handle: shipping
856
+ url: /pages/shipping
857
+ author: Tobi
858
+ content: <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
859
+ created_at: 2005-04-04 12:00
860
+
861
+ - &page-6
862
+ id: 5
863
+ title: Frontpage
864
+ handle: frontpage
865
+ url: /pages/frontpage
866
+ author: Tobi
867
+ content: <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
868
+ created_at: 2005-04-04 12:00
869
+
870
+ blogs:
871
+ - id: 1
872
+ handle: news
873
+ title: News
874
+ url: /blogs/news
875
+ articles:
876
+ - id: 3
877
+ title: 'Welcome to the new Foo Shop'
878
+ author: Daniel
879
+ content: <p><strong>Welcome to your Shopify store! The jaded Pixel crew is really glad you decided to take Shopify for a spin.</strong></p><p>To help you get you started with Shopify, here are a couple of tips regarding what you see on this page.</p><p>The text you see here is an article. To edit this article, create new articles or create new pages you can go to the <a href="/admin/pages">Blogs &amp; Pages</a> tab of the administration menu.</p><p>The Shopify t-shirt above is a product and selling products is what Shopify is all about. To edit this product, or create new products you can go to the <a href="/admin/products">Products Tab</a> in of the administration menu.</p><p>While you're looking around be sure to check out the <a href="/admin/collections">Collections</a> and <a href="/admin/links">Navigations</a> tabs and soon you will be well on your way to populating your site.</p><p>And of course don't forget to browse the <a href="admin/design/appearance/themes">theme gallery</a> to pick a new look for your shop!</p><p><strong>Shopify is in beta</strong><br />If you would like to make comments or suggestions please visit us in the <a href="http://forums.shopify.com/community">Shopify Forums</a> or drop us an <a href="mailto:feedback@shopify.com">email</a>.</p>
880
+ created_at: 2005-04-04 16:00
881
+ - id: 4
882
+ title: 'Breaking News: Restock on all sales products'
883
+ author: Tobi
884
+ content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
885
+ created_at: 2005-04-04 12:00
886
+ articles_count: 2
887
+
888
+ - id: 2
889
+ handle: bigcheese-blog
890
+ title: Bigcheese blog
891
+ url: /blogs/bigcheese-blog
892
+ articles:
893
+ - id: 1
894
+ title: 'One thing you probably did not know yet...'
895
+ author: Justin
896
+ content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
897
+ created_at: 2005-04-04 16:00
898
+ comments:
899
+ -
900
+ id: 1
901
+ author: John Smith
902
+ email: john@smith.com
903
+ content: Wow...great article man.
904
+ status: published
905
+ created_at: 2009-01-01 12:00
906
+ updated_at: 2009-02-01 12:00
907
+ url: ""
908
+ -
909
+ id: 2
910
+ author: John Jones
911
+ email: john@jones.com
912
+ content: I really enjoyed this article. And I love your shop! It's awesome. Shopify rocks!
913
+ status: published
914
+ created_at: 2009-03-01 12:00
915
+ updated_at: 2009-02-01 12:00
916
+ url: "http://somesite.com/"
917
+ - id: 2
918
+ title: Fascinating
919
+ author: Tobi
920
+ content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
921
+ created_at: 2005-04-06 12:00
922
+ comments:
923
+ articles_count: 2
924
+ comments_enabled?: true
925
+ comment_post_url: ""
926
+ comments_count: 2
927
+ moderated?: true
928
+
929
+ - id: 3
930
+ handle: paginated-blog
931
+ title: Paginated blog
932
+ url: /blogs/paginated-blog
933
+ articles:
934
+ - id: 6
935
+ title: 'One thing you probably did not know yet...'
936
+ author: Justin
937
+ content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
938
+ created_at: 2005-04-04 16:00
939
+
940
+ - id: 7
941
+ title: Fascinating
942
+ author: Tobi
943
+ content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
944
+ created_at: 2005-04-06 12:00
945
+ articles_count: 200