jekyll 0.12.1 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of jekyll might be problematic. Click here for more details.

Files changed (124) hide show
  1. data/CONTRIBUTING.md +67 -0
  2. data/Gemfile +1 -1
  3. data/History.txt +50 -6
  4. data/README.textile +10 -6
  5. data/Rakefile +74 -36
  6. data/bin/jekyll +78 -276
  7. data/cucumber.yml +3 -1
  8. data/features/create_sites.feature +1 -1
  9. data/features/drafts.feature +25 -0
  10. data/features/site_configuration.feature +1 -1
  11. data/features/step_definitions/jekyll_steps.rb +13 -3
  12. data/features/support/env.rb +3 -1
  13. data/jekyll.gemspec +73 -17
  14. data/lib/jekyll.rb +31 -21
  15. data/lib/jekyll/command.rb +12 -0
  16. data/lib/jekyll/commands/build.rb +81 -0
  17. data/lib/jekyll/commands/serve.rb +28 -0
  18. data/lib/jekyll/converter.rb +1 -3
  19. data/lib/jekyll/converters/identity.rb +13 -14
  20. data/lib/jekyll/converters/markdown.rb +128 -128
  21. data/lib/jekyll/converters/textile.rb +37 -37
  22. data/lib/jekyll/convertible.rb +6 -4
  23. data/lib/jekyll/core_ext.rb +9 -1
  24. data/lib/jekyll/draft.rb +35 -0
  25. data/lib/jekyll/errors.rb +1 -3
  26. data/lib/jekyll/filters.rb +13 -4
  27. data/lib/jekyll/generator.rb +1 -4
  28. data/lib/jekyll/generators/pagination.rb +46 -46
  29. data/lib/jekyll/layout.rb +0 -2
  30. data/lib/jekyll/mime.types +1588 -0
  31. data/lib/jekyll/page.rb +24 -8
  32. data/lib/jekyll/plugin.rb +0 -2
  33. data/lib/jekyll/post.rb +66 -40
  34. data/lib/jekyll/site.rb +96 -20
  35. data/lib/jekyll/static_file.rb +0 -2
  36. data/lib/jekyll/tags/gist.rb +19 -0
  37. data/lib/jekyll/tags/highlight.rb +63 -62
  38. data/lib/jekyll/tags/include.rb +25 -25
  39. data/lib/jekyll/tags/post_url.rb +30 -25
  40. data/script/bootstrap +2 -0
  41. data/site/.gitignore +4 -0
  42. data/site/CNAME +1 -0
  43. data/site/README +1 -0
  44. data/site/_config.yml +5 -0
  45. data/site/_includes/analytics.html +32 -0
  46. data/site/_includes/docs_contents.html +82 -0
  47. data/site/_includes/footer.html +15 -0
  48. data/site/_includes/header.html +26 -0
  49. data/site/_includes/section_nav.html +22 -0
  50. data/site/_includes/top.html +14 -0
  51. data/site/_layouts/default.html +12 -0
  52. data/site/_layouts/docs.html +21 -0
  53. data/site/_posts/2012-07-01-configuration.md +277 -0
  54. data/site/_posts/2012-07-01-contributing.md +66 -0
  55. data/site/_posts/2012-07-01-deployment-methods.md +108 -0
  56. data/site/_posts/2012-07-01-extras.md +103 -0
  57. data/site/_posts/2012-07-01-frontmatter.md +120 -0
  58. data/site/_posts/2012-07-01-github-pages.md +34 -0
  59. data/site/_posts/2012-07-01-heroku.md +8 -0
  60. data/site/_posts/2012-07-01-home.md +47 -0
  61. data/site/_posts/2012-07-01-installation.md +43 -0
  62. data/site/_posts/2012-07-01-migrations.md +180 -0
  63. data/site/_posts/2012-07-01-pages.md +62 -0
  64. data/site/_posts/2012-07-01-pagination.md +116 -0
  65. data/site/_posts/2012-07-01-permalinks.md +163 -0
  66. data/site/_posts/2012-07-01-plugins.md +384 -0
  67. data/site/_posts/2012-07-01-posts.md +106 -0
  68. data/site/_posts/2012-07-01-resources.md +49 -0
  69. data/site/_posts/2012-07-01-sites.md +28 -0
  70. data/site/_posts/2012-07-01-structure.md +95 -0
  71. data/site/_posts/2012-07-01-templates.md +217 -0
  72. data/site/_posts/2012-07-01-troubleshooting.md +108 -0
  73. data/site/_posts/2012-07-01-usage.md +38 -0
  74. data/site/_posts/2012-07-01-variables.md +166 -0
  75. data/site/css/grid.css +62 -0
  76. data/site/css/normalize.css +504 -0
  77. data/site/css/pygments.css +70 -0
  78. data/site/css/style.css +697 -0
  79. data/site/docs/index.html +11 -0
  80. data/site/favicon.png +0 -0
  81. data/site/img/article-footer.png +0 -0
  82. data/site/img/footer-arrow.png +0 -0
  83. data/site/img/footer-logo.png +0 -0
  84. data/site/img/logo-2x.png +0 -0
  85. data/site/img/octojekyll.png +0 -0
  86. data/site/img/tube.png +0 -0
  87. data/site/img/tube1x.png +0 -0
  88. data/site/index.html +77 -0
  89. data/site/js/modernizr-2.5.3.min.js +4 -0
  90. data/test/fixtures/broken_front_matter2.erb +4 -0
  91. data/test/fixtures/broken_front_matter3.erb +7 -0
  92. data/test/fixtures/exploit_front_matter.erb +4 -0
  93. data/test/helper.rb +16 -0
  94. data/test/source/_posts/2013-01-12-nil-layout.textile +6 -0
  95. data/test/source/_posts/2013-01-12-no-layout.textile +5 -0
  96. data/test/source/contacts/bar.html +5 -0
  97. data/test/source/contacts/index.html +5 -0
  98. data/test/test_configuration.rb +7 -8
  99. data/test/test_convertible.rb +29 -0
  100. data/test/test_core_ext.rb +22 -0
  101. data/test/test_generated_site.rb +1 -1
  102. data/test/test_kramdown.rb +3 -3
  103. data/test/test_page.rb +88 -2
  104. data/test/test_post.rb +42 -6
  105. data/test/test_rdiscount.rb +1 -1
  106. data/test/test_redcarpet.rb +1 -1
  107. data/test/test_redcloth.rb +6 -6
  108. data/test/test_site.rb +73 -8
  109. data/test/test_tags.rb +36 -13
  110. metadata +150 -19
  111. data/lib/jekyll/migrators/csv.rb +0 -26
  112. data/lib/jekyll/migrators/drupal.rb +0 -103
  113. data/lib/jekyll/migrators/enki.rb +0 -49
  114. data/lib/jekyll/migrators/joomla.rb +0 -53
  115. data/lib/jekyll/migrators/marley.rb +0 -52
  116. data/lib/jekyll/migrators/mephisto.rb +0 -84
  117. data/lib/jekyll/migrators/mt.rb +0 -86
  118. data/lib/jekyll/migrators/posterous.rb +0 -67
  119. data/lib/jekyll/migrators/rss.rb +0 -47
  120. data/lib/jekyll/migrators/textpattern.rb +0 -58
  121. data/lib/jekyll/migrators/tumblr.rb +0 -195
  122. data/lib/jekyll/migrators/typo.rb +0 -51
  123. data/lib/jekyll/migrators/wordpress.rb +0 -294
  124. data/lib/jekyll/migrators/wordpressdotcom.rb +0 -70
@@ -8,7 +8,7 @@ class TestRdiscount < Test::Unit::TestCase
8
8
  'markdown' => 'rdiscount',
9
9
  'rdiscount' => { 'extensions' => ['smart', 'generate_toc'], 'toc_token' => '{:toc}' }
10
10
  }
11
- @markdown = MarkdownConverter.new config
11
+ @markdown = Converters::Markdown.new config
12
12
  end
13
13
 
14
14
  should "pass rdiscount extensions" do
@@ -7,7 +7,7 @@ class TestRedcarpet < Test::Unit::TestCase
7
7
  'redcarpet' => { 'extensions' => ['smart', 'strikethrough', 'filter_html'] },
8
8
  'markdown' => 'redcarpet'
9
9
  }
10
- @markdown = MarkdownConverter.new config
10
+ @markdown = Converters::Markdown.new config
11
11
  end
12
12
 
13
13
  should "pass redcarpet options" do
@@ -4,7 +4,7 @@ class TestRedCloth < Test::Unit::TestCase
4
4
 
5
5
  context "RedCloth default (no explicit config) hard_breaks enabled" do
6
6
  setup do
7
- @textile = TextileConverter.new
7
+ @textile = Converters::Textile.new
8
8
  end
9
9
 
10
10
  should "preserve single line breaks in HTML output" do
@@ -17,7 +17,7 @@ class TestRedCloth < Test::Unit::TestCase
17
17
  config = {
18
18
  'redcloth' => {}
19
19
  }
20
- @textile = TextileConverter.new config
20
+ @textile = Converters::Textile.new config
21
21
  end
22
22
 
23
23
  should "preserve single line breaks in HTML output" do
@@ -32,7 +32,7 @@ class TestRedCloth < Test::Unit::TestCase
32
32
  'hard_breaks' => true # default
33
33
  }
34
34
  }
35
- @textile = TextileConverter.new config
35
+ @textile = Converters::Textile.new config
36
36
  end
37
37
 
38
38
  should "preserve single line breaks in HTML output" do
@@ -47,7 +47,7 @@ class TestRedCloth < Test::Unit::TestCase
47
47
  'hard_breaks' => false
48
48
  }
49
49
  }
50
- @textile = TextileConverter.new config
50
+ @textile = Converters::Textile.new config
51
51
  end
52
52
 
53
53
  should "not generate break tags in HTML output" do
@@ -62,7 +62,7 @@ class TestRedCloth < Test::Unit::TestCase
62
62
  'no_span_caps' => false
63
63
  }
64
64
  }
65
- @textile = TextileConverter.new config
65
+ @textile = Converters::Textile.new config
66
66
  end
67
67
  should "generate span tags around capitalized words" do
68
68
  assert_equal "<p><span class=\"caps\">NSC</span></p>", @textile.convert("NSC").strip
@@ -76,7 +76,7 @@ class TestRedCloth < Test::Unit::TestCase
76
76
  'no_span_caps' => true
77
77
  }
78
78
  }
79
- @textile = TextileConverter.new config
79
+ @textile = Converters::Textile.new config
80
80
  end
81
81
 
82
82
  should "not generate span tags around capitalized words" do
@@ -7,6 +7,11 @@ class TestSite < Test::Unit::TestCase
7
7
  assert_equal [File.join(Dir.pwd, '_plugins')], site.plugins
8
8
  end
9
9
 
10
+ should "look for plugins under the site directory by default" do
11
+ site = Site.new(Jekyll::DEFAULTS.merge({'source' => File.expand_path(source_dir)}))
12
+ assert_equal [File.join(source_dir, '_plugins')], site.plugins
13
+ end
14
+
10
15
  should "have an array for plugins if passed as a string" do
11
16
  site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => '/tmp/plugins'}))
12
17
  assert_equal ['/tmp/plugins'], site.plugins
@@ -26,6 +31,7 @@ class TestSite < Test::Unit::TestCase
26
31
  site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => nil}))
27
32
  assert_equal [], site.plugins
28
33
  end
34
+
29
35
  end
30
36
  context "creating sites" do
31
37
  setup do
@@ -154,25 +160,61 @@ class TestSite < Test::Unit::TestCase
154
160
  excludes = %w[README TODO]
155
161
  files = %w[index.html site.css .htaccess]
156
162
 
157
- @site.exclude = excludes
158
- assert_equal files, @site.filter_entries(excludes + files)
163
+ @site.exclude = excludes + ["exclude*"]
164
+ assert_equal files, @site.filter_entries(excludes + files + ["excludeA"])
159
165
  end
160
166
 
161
167
  should "not filter entries within include" do
162
- includes = %w[_index.html .htaccess]
163
- files = %w[index.html _index.html .htaccess]
168
+ includes = %w[_index.html .htaccess include*]
169
+ files = %w[index.html _index.html .htaccess includeA]
164
170
 
165
171
  @site.include = includes
166
172
  assert_equal files, @site.filter_entries(files)
167
173
  end
168
174
 
175
+ should "filter symlink entries when safe mode enabled" do
176
+ stub(Jekyll).configuration do
177
+ Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
178
+ end
179
+ site = Site.new(Jekyll.configuration)
180
+ stub(File).symlink?('symlink.js') {true}
181
+ files = %w[symlink.js]
182
+ assert_equal [], site.filter_entries(files)
183
+ end
184
+
185
+ should "not filter symlink entries when safe mode disabled" do
186
+ stub(File).symlink?('symlink.js') {true}
187
+ files = %w[symlink.js]
188
+ assert_equal files, @site.filter_entries(files)
189
+ end
190
+
191
+ context 'error handling' do
192
+ should "raise if destination is included in source" do
193
+ stub(Jekyll).configuration do
194
+ Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => source_dir})
195
+ end
196
+
197
+ assert_raise Jekyll::FatalException do
198
+ site = Site.new(Jekyll.configuration)
199
+ end
200
+ end
201
+
202
+ should "raise if destination is source" do
203
+ stub(Jekyll).configuration do
204
+ Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => File.join(source_dir, "..")})
205
+ end
206
+
207
+ assert_raise Jekyll::FatalException do
208
+ site = Site.new(Jekyll.configuration)
209
+ end
210
+ end
211
+ end
212
+
169
213
  context 'with orphaned files in destination' do
170
214
  setup do
171
215
  clear_dest
172
216
  @site.process
173
217
  # generate some orphaned files:
174
- # hidden file
175
- File.open(dest_dir('.htpasswd'), 'w')
176
218
  # single file
177
219
  File.open(dest_dir('obsolete.html'), 'w')
178
220
  # single file in sub directory
@@ -180,23 +222,46 @@ class TestSite < Test::Unit::TestCase
180
222
  File.open(dest_dir('qux/obsolete.html'), 'w')
181
223
  # empty directory
182
224
  FileUtils.mkdir(dest_dir('quux'))
225
+ FileUtils.mkdir(dest_dir('.git'))
226
+ FileUtils.mkdir(dest_dir('.svn'))
227
+ FileUtils.mkdir(dest_dir('.hg'))
228
+ # single file in repository
229
+ File.open(dest_dir('.git/HEAD'), 'w')
230
+ File.open(dest_dir('.svn/HEAD'), 'w')
231
+ File.open(dest_dir('.hg/HEAD'), 'w')
183
232
  end
184
233
 
185
234
  teardown do
186
- FileUtils.rm_f(dest_dir('.htpasswd'))
187
235
  FileUtils.rm_f(dest_dir('obsolete.html'))
188
236
  FileUtils.rm_rf(dest_dir('qux'))
189
237
  FileUtils.rm_f(dest_dir('quux'))
238
+ FileUtils.rm_rf(dest_dir('.git'))
239
+ FileUtils.rm_rf(dest_dir('.svn'))
240
+ FileUtils.rm_rf(dest_dir('.hg'))
190
241
  end
191
242
 
192
243
  should 'remove orphaned files in destination' do
193
244
  @site.process
194
- assert !File.exist?(dest_dir('.htpasswd'))
195
245
  assert !File.exist?(dest_dir('obsolete.html'))
196
246
  assert !File.exist?(dest_dir('qux'))
197
247
  assert !File.exist?(dest_dir('quux'))
248
+ assert File.exist?(dest_dir('.git'))
249
+ assert File.exist?(dest_dir('.git/HEAD'))
198
250
  end
199
251
 
252
+ should 'remove orphaned files in destination - keep_files .svn' do
253
+ config = Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'keep_files' => ['.svn']})
254
+ @site = Site.new(config)
255
+ @site.process
256
+ assert !File.exist?(dest_dir('.htpasswd'))
257
+ assert !File.exist?(dest_dir('obsolete.html'))
258
+ assert !File.exist?(dest_dir('qux'))
259
+ assert !File.exist?(dest_dir('quux'))
260
+ assert !File.exist?(dest_dir('.git'))
261
+ assert !File.exist?(dest_dir('.git/HEAD'))
262
+ assert File.exist?(dest_dir('.svn'))
263
+ assert File.exist?(dest_dir('.svn/HEAD'))
264
+ end
200
265
  end
201
266
 
202
267
  context 'with an invalid markdown processor in the configuration' do
@@ -4,7 +4,7 @@ require 'helper'
4
4
 
5
5
  class TestTags < Test::Unit::TestCase
6
6
 
7
- def create_post(content, override = {}, converter_class = Jekyll::MarkdownConverter)
7
+ def create_post(content, override = {}, converter_class = Jekyll::Converters::Markdown)
8
8
  stub(Jekyll).configuration do
9
9
  Jekyll::DEFAULTS.deep_merge({'pygments' => true}).deep_merge(override)
10
10
  end
@@ -32,13 +32,14 @@ title: This is a test
32
32
  This document results in a markdown error with maruku
33
33
 
34
34
  {% highlight text %}#{code}{% endhighlight %}
35
+ {% highlight text linenos %}#{code}{% endhighlight %}
35
36
  CONTENT
36
37
  create_post(content, override)
37
38
  end
38
39
 
39
40
  context "language name" do
40
41
  should "match only the required set of chars" do
41
- r = Jekyll::HighlightBlock::SYNTAX
42
+ r = Jekyll::Tags::HighlightBlock::SYNTAX
42
43
  assert_match r, "ruby"
43
44
  assert_match r, "c#"
44
45
  assert_match r, "xml+cheetah"
@@ -54,20 +55,20 @@ CONTENT
54
55
 
55
56
  context "initialized tag" do
56
57
  should "work" do
57
- tag = Jekyll::HighlightBlock.new('highlight', 'ruby ', ["test", "{% endhighlight %}", "\n"])
58
+ tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby ', ["test", "{% endhighlight %}", "\n"])
58
59
  assert_equal({}, tag.instance_variable_get(:@options))
59
60
 
60
- tag = Jekyll::HighlightBlock.new('highlight', 'ruby linenos ', ["test", "{% endhighlight %}", "\n"])
61
- assert_equal({'O' => "linenos=inline"}, tag.instance_variable_get(:@options))
61
+ tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos ', ["test", "{% endhighlight %}", "\n"])
62
+ assert_equal({ 'linenos' => 'inline' }, tag.instance_variable_get(:@options))
62
63
 
63
- tag = Jekyll::HighlightBlock.new('highlight', 'ruby linenos=table ', ["test", "{% endhighlight %}", "\n"])
64
- assert_equal({'O' => "linenos=table"}, tag.instance_variable_get(:@options))
64
+ tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table ', ["test", "{% endhighlight %}", "\n"])
65
+ assert_equal({ 'linenos' => 'table' }, tag.instance_variable_get(:@options))
65
66
 
66
- tag = Jekyll::HighlightBlock.new('highlight', 'ruby linenos=table nowrap', ["test", "{% endhighlight %}", "\n"])
67
- assert_equal({'O' => "linenos=table,nowrap=true"}, tag.instance_variable_get(:@options))
67
+ tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table nowrap', ["test", "{% endhighlight %}", "\n"])
68
+ assert_equal({ 'linenos' => 'table', 'nowrap' => true }, tag.instance_variable_get(:@options))
68
69
 
69
- tag = Jekyll::HighlightBlock.new('highlight', 'ruby linenos=table cssclass=hl', ["test", "{% endhighlight %}", "\n"])
70
- assert_equal({'O' => "cssclass=hl,linenos=table"}, tag.instance_variable_get(:@options))
70
+ tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table cssclass=hl', ["test", "{% endhighlight %}", "\n"])
71
+ assert_equal({ 'cssclass' => 'hl', 'linenos' => 'table' }, tag.instance_variable_get(:@options))
71
72
  end
72
73
  end
73
74
 
@@ -80,9 +81,13 @@ CONTENT
80
81
  assert_no_match /markdown\-html\-error/, @result
81
82
  end
82
83
 
83
- should "render markdown with pygments line handling" do
84
+ should "render markdown with pygments" do
84
85
  assert_match %{<pre><code class='text'>test\n</code></pre>}, @result
85
86
  end
87
+
88
+ should "render markdown with pygments with line numbers" do
89
+ assert_match %{<pre><code class='text'><span class='lineno'>1</span> test\n</code></pre>}, @result
90
+ end
86
91
  end
87
92
 
88
93
  context "post content has highlight with file reference" do
@@ -124,7 +129,7 @@ CONTENT
124
129
 
125
130
  context "using Textile" do
126
131
  setup do
127
- create_post(@content, {}, Jekyll::TextileConverter)
132
+ create_post(@content, {}, Jekyll::Converters::Textile)
128
133
  end
129
134
 
130
135
  # Broken in RedCloth 4.1.9
@@ -198,4 +203,22 @@ CONTENT
198
203
  assert_match %r{/2008/11/21/complex/}, @result
199
204
  end
200
205
  end
206
+
207
+ context "simple gist inclusion" do
208
+ setup do
209
+ @gist = 358471
210
+ content = <<CONTENT
211
+ ---
212
+ title: My Cool Gist
213
+ ---
214
+
215
+ {% gist #{@gist} %}
216
+ CONTENT
217
+ create_post(content, {'permalink' => 'pretty', 'source' => source_dir, 'destination' => dest_dir, 'read_posts' => true})
218
+ end
219
+
220
+ should "write script tag" do
221
+ assert_match %r{<script src='https://gist.github.com/#{@gist}.js'>\s</script>}, @result
222
+ end
223
+ end
201
224
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
5
- prerelease:
4
+ version: 1.0.0.beta1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tom Preston-Werner
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-19 00:00:00.000000000 Z
12
+ date: 2013-03-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: liquid
@@ -107,6 +107,38 @@ dependencies:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
109
  version: 0.3.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: commander
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 4.1.3
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 4.1.3
126
+ - !ruby/object:Gem::Dependency
127
+ name: safe_yaml
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 0.7.0
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.7.0
110
142
  - !ruby/object:Gem::Dependency
111
143
  name: rake
112
144
  requirement: !ruby/object:Gem::Requirement
@@ -251,6 +283,54 @@ dependencies:
251
283
  - - ~>
252
284
  - !ruby/object:Gem::Version
253
285
  version: 2.2.2
286
+ - !ruby/object:Gem::Dependency
287
+ name: launchy
288
+ requirement: !ruby/object:Gem::Requirement
289
+ none: false
290
+ requirements:
291
+ - - ~>
292
+ - !ruby/object:Gem::Version
293
+ version: 2.1.2
294
+ type: :development
295
+ prerelease: false
296
+ version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
298
+ requirements:
299
+ - - ~>
300
+ - !ruby/object:Gem::Version
301
+ version: 2.1.2
302
+ - !ruby/object:Gem::Dependency
303
+ name: simplecov
304
+ requirement: !ruby/object:Gem::Requirement
305
+ none: false
306
+ requirements:
307
+ - - ~>
308
+ - !ruby/object:Gem::Version
309
+ version: '0.7'
310
+ type: :development
311
+ prerelease: false
312
+ version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
314
+ requirements:
315
+ - - ~>
316
+ - !ruby/object:Gem::Version
317
+ version: '0.7'
318
+ - !ruby/object:Gem::Dependency
319
+ name: simplecov-gem-adapter
320
+ requirement: !ruby/object:Gem::Requirement
321
+ none: false
322
+ requirements:
323
+ - - ~>
324
+ - !ruby/object:Gem::Version
325
+ version: 1.0.1
326
+ type: :development
327
+ prerelease: false
328
+ version_requirements: !ruby/object:Gem::Requirement
329
+ none: false
330
+ requirements:
331
+ - - ~>
332
+ - !ruby/object:Gem::Version
333
+ version: 1.0.1
254
334
  description: Jekyll is a simple, blog aware, static site generator.
255
335
  email: tom@mojombo.com
256
336
  executables:
@@ -260,6 +340,7 @@ extra_rdoc_files:
260
340
  - README.textile
261
341
  - LICENSE
262
342
  files:
343
+ - CONTRIBUTING.md
263
344
  - Gemfile
264
345
  - History.txt
265
346
  - LICENSE
@@ -268,6 +349,7 @@ files:
268
349
  - bin/jekyll
269
350
  - cucumber.yml
270
351
  - features/create_sites.feature
352
+ - features/drafts.feature
271
353
  - features/embed_filters.feature
272
354
  - features/markdown.feature
273
355
  - features/pagination.feature
@@ -279,40 +361,85 @@ files:
279
361
  - features/support/env.rb
280
362
  - jekyll.gemspec
281
363
  - lib/jekyll.rb
364
+ - lib/jekyll/command.rb
365
+ - lib/jekyll/commands/build.rb
366
+ - lib/jekyll/commands/serve.rb
282
367
  - lib/jekyll/converter.rb
283
368
  - lib/jekyll/converters/identity.rb
284
369
  - lib/jekyll/converters/markdown.rb
285
370
  - lib/jekyll/converters/textile.rb
286
371
  - lib/jekyll/convertible.rb
287
372
  - lib/jekyll/core_ext.rb
373
+ - lib/jekyll/draft.rb
288
374
  - lib/jekyll/errors.rb
289
375
  - lib/jekyll/filters.rb
290
376
  - lib/jekyll/generator.rb
291
377
  - lib/jekyll/generators/pagination.rb
292
378
  - lib/jekyll/layout.rb
293
- - lib/jekyll/migrators/csv.rb
294
- - lib/jekyll/migrators/drupal.rb
295
- - lib/jekyll/migrators/enki.rb
296
- - lib/jekyll/migrators/joomla.rb
297
- - lib/jekyll/migrators/marley.rb
298
- - lib/jekyll/migrators/mephisto.rb
299
- - lib/jekyll/migrators/mt.rb
300
- - lib/jekyll/migrators/posterous.rb
301
- - lib/jekyll/migrators/rss.rb
302
- - lib/jekyll/migrators/textpattern.rb
303
- - lib/jekyll/migrators/tumblr.rb
304
- - lib/jekyll/migrators/typo.rb
305
- - lib/jekyll/migrators/wordpress.rb
306
- - lib/jekyll/migrators/wordpressdotcom.rb
379
+ - lib/jekyll/mime.types
307
380
  - lib/jekyll/page.rb
308
381
  - lib/jekyll/plugin.rb
309
382
  - lib/jekyll/post.rb
310
383
  - lib/jekyll/site.rb
311
384
  - lib/jekyll/static_file.rb
385
+ - lib/jekyll/tags/gist.rb
312
386
  - lib/jekyll/tags/highlight.rb
313
387
  - lib/jekyll/tags/include.rb
314
388
  - lib/jekyll/tags/post_url.rb
389
+ - script/bootstrap
390
+ - site/.gitignore
391
+ - site/CNAME
392
+ - site/README
393
+ - site/_config.yml
394
+ - site/_includes/analytics.html
395
+ - site/_includes/docs_contents.html
396
+ - site/_includes/footer.html
397
+ - site/_includes/header.html
398
+ - site/_includes/section_nav.html
399
+ - site/_includes/top.html
400
+ - site/_layouts/default.html
401
+ - site/_layouts/docs.html
402
+ - site/_posts/2012-07-01-configuration.md
403
+ - site/_posts/2012-07-01-contributing.md
404
+ - site/_posts/2012-07-01-deployment-methods.md
405
+ - site/_posts/2012-07-01-extras.md
406
+ - site/_posts/2012-07-01-frontmatter.md
407
+ - site/_posts/2012-07-01-github-pages.md
408
+ - site/_posts/2012-07-01-heroku.md
409
+ - site/_posts/2012-07-01-home.md
410
+ - site/_posts/2012-07-01-installation.md
411
+ - site/_posts/2012-07-01-migrations.md
412
+ - site/_posts/2012-07-01-pages.md
413
+ - site/_posts/2012-07-01-pagination.md
414
+ - site/_posts/2012-07-01-permalinks.md
415
+ - site/_posts/2012-07-01-plugins.md
416
+ - site/_posts/2012-07-01-posts.md
417
+ - site/_posts/2012-07-01-resources.md
418
+ - site/_posts/2012-07-01-sites.md
419
+ - site/_posts/2012-07-01-structure.md
420
+ - site/_posts/2012-07-01-templates.md
421
+ - site/_posts/2012-07-01-troubleshooting.md
422
+ - site/_posts/2012-07-01-usage.md
423
+ - site/_posts/2012-07-01-variables.md
424
+ - site/css/grid.css
425
+ - site/css/normalize.css
426
+ - site/css/pygments.css
427
+ - site/css/style.css
428
+ - site/docs/index.html
429
+ - site/favicon.png
430
+ - site/img/article-footer.png
431
+ - site/img/footer-arrow.png
432
+ - site/img/footer-logo.png
433
+ - site/img/logo-2x.png
434
+ - site/img/octojekyll.png
435
+ - site/img/tube.png
436
+ - site/img/tube1x.png
437
+ - site/index.html
438
+ - site/js/modernizr-2.5.3.min.js
315
439
  - test/fixtures/broken_front_matter1.erb
440
+ - test/fixtures/broken_front_matter2.erb
441
+ - test/fixtures/broken_front_matter3.erb
442
+ - test/fixtures/exploit_front_matter.erb
316
443
  - test/fixtures/front_matter.erb
317
444
  - test/helper.rb
318
445
  - test/source/.htaccess
@@ -344,9 +471,13 @@ files:
344
471
  - test/source/_posts/2010-01-16-override-data.textile
345
472
  - test/source/_posts/2011-04-12-md-extension.md
346
473
  - test/source/_posts/2011-04-12-text-extension.text
474
+ - test/source/_posts/2013-01-12-nil-layout.textile
475
+ - test/source/_posts/2013-01-12-no-layout.textile
347
476
  - test/source/about.html
348
477
  - test/source/category/_posts/2008-9-23-categories.textile
349
478
  - test/source/contacts.html
479
+ - test/source/contacts/bar.html
480
+ - test/source/contacts/index.html
350
481
  - test/source/css/screen.css
351
482
  - test/source/deal.with.dots.html
352
483
  - test/source/foo/_posts/bar/2008-12-12-topical-post.textile
@@ -386,9 +517,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
517
  required_rubygems_version: !ruby/object:Gem::Requirement
387
518
  none: false
388
519
  requirements:
389
- - - ! '>='
520
+ - - ! '>'
390
521
  - !ruby/object:Gem::Version
391
- version: '0'
522
+ version: 1.3.1
392
523
  requirements: []
393
524
  rubyforge_project: jekyll
394
525
  rubygems_version: 1.8.23