jekyll 1.2.1 → 1.3.0.rc
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.
- checksums.yaml +4 -4
- data/History.markdown +58 -0
- data/README.markdown +2 -1
- data/Rakefile +8 -1
- data/bin/jekyll +14 -17
- data/features/create_sites.feature +11 -0
- data/features/data.feature +65 -0
- data/features/include_tag.feature +13 -0
- data/features/site_configuration.feature +29 -0
- data/features/step_definitions/jekyll_steps.rb +27 -12
- data/features/support/env.rb +36 -0
- data/jekyll.gemspec +22 -10
- data/lib/jekyll.rb +2 -1
- data/lib/jekyll/cleaner.rb +8 -8
- data/lib/jekyll/commands/build.rb +14 -8
- data/lib/jekyll/commands/serve.rb +2 -0
- data/lib/jekyll/configuration.rb +5 -1
- data/lib/jekyll/converters/markdown/kramdown_parser.rb +1 -1
- data/lib/jekyll/convertible.rb +17 -6
- data/lib/jekyll/core_ext.rb +15 -0
- data/lib/jekyll/filters.rb +10 -0
- data/lib/jekyll/post.rb +2 -2
- data/lib/jekyll/site.rb +68 -19
- data/lib/jekyll/tags/gist.rb +9 -1
- data/lib/jekyll/tags/highlight.rb +1 -1
- data/lib/jekyll/tags/include.rb +72 -28
- data/lib/jekyll/tags/post_url.rb +4 -2
- data/lib/site_template/css/main.css +15 -15
- data/site/_includes/docs_contents.html +1 -1
- data/site/_includes/docs_contents_mobile.html +1 -1
- data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +19 -0
- data/site/docs/configuration.md +18 -0
- data/site/docs/datafiles.md +63 -0
- data/site/docs/installation.md +10 -0
- data/site/docs/migrations.md +12 -3
- data/site/docs/pagination.md +16 -37
- data/site/docs/plugins.md +66 -6
- data/site/docs/structure.md +17 -0
- data/site/docs/templates.md +31 -7
- data/site/docs/upgrading.md +3 -3
- data/site/docs/usage.md +1 -1
- data/site/docs/variables.md +2 -2
- data/test/helper.rb +4 -1
- data/test/source/_data/languages.yml +2 -0
- data/test/source/_data/members.yaml +7 -0
- data/test/source/_data/products.yml +4 -0
- data/test/source/_layouts/post/simple.html +1 -0
- data/test/source/products.yml +4 -0
- data/test/test_convertible.rb +1 -1
- data/test/test_filters.rb +11 -0
- data/test/test_kramdown.rb +32 -5
- data/test/test_site.rb +58 -1
- data/test/test_tags.rb +21 -23
- metadata +71 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09778948dac8d2cea23077a1a90c04b466f79cc8
|
4
|
+
data.tar.gz: d7bb52dd2cd2b29ed5a20c96f9e548bff7cf604c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db047d0e039e9b248260fe3612dfc1d4d6e6b0890947813c95eecb0c4bc3610dd81aefa027104f7e25a2b938ff812166492230f003b845e2e7f270258f2ee9a1
|
7
|
+
data.tar.gz: a0563de63fbec8c2bf78b88e914e6ca3b49206dedcb386481720181907343adfd7c77dc54f39e002d5963e951d17677449974c215988b66d8bd88b851c8bbc7b
|
data/History.markdown
CHANGED
@@ -1,14 +1,72 @@
|
|
1
1
|
## HEAD
|
2
2
|
|
3
3
|
### Major Enhancements
|
4
|
+
* Add support for adding data as YAML files under a site's `_data`
|
5
|
+
directory (#1003)
|
6
|
+
* Allow variables to be used with `include` tags (#1495)
|
7
|
+
* Allow using gems for plugin management (#1557)
|
4
8
|
|
5
9
|
### Minor Enhancements
|
10
|
+
* Decrease the specificity in the site template CSS (#1574)
|
11
|
+
* Add `encoding` configuration option (#1449)
|
12
|
+
* Provide better error handling for Jekyll's custom Liquid tags
|
13
|
+
(#1514)
|
14
|
+
* If an included file causes a Liquid error, add the path to the
|
15
|
+
include file that caused the error to the error message (#1596)
|
16
|
+
* If a layout causes a Liquid error, change the error message so that
|
17
|
+
we know it comes from the layout (#1601)
|
18
|
+
* Update Kramdown dependency to `~> 1.2` (#1610)
|
19
|
+
* Update `safe_yaml` dependency to `~> 0.9.7` (#1602)
|
20
|
+
* Allow layouts to be in subfolders like includes (#1622)
|
21
|
+
* Switch to listen for site watching while serving (#1589)
|
22
|
+
* Add a `json` liquid filter to be used in sites (#1651)
|
23
|
+
* Point people to the migration docs when the `jekyll-import` gem is
|
24
|
+
missing (#1662)
|
6
25
|
|
7
26
|
### Bug Fixes
|
27
|
+
* Fix up matching against source and destination when the two
|
28
|
+
locations are similar (#1556)
|
29
|
+
* Fix the missing `pathname` require in certain cases (#1255)
|
30
|
+
* Use `+` instead of `Array#concat` when building `Post` attribute list (#1571)
|
31
|
+
* Print server address when launching a server (#1586)
|
32
|
+
* Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering (#1598)
|
33
|
+
* Fix error with failing include tag when variable was file name (#1613)
|
34
|
+
* Downcase lexers before passing them to pygments (#1615)
|
35
|
+
* Capitalize the short verbose switch because it conflicts with the
|
36
|
+
built-in Commander switch (#1660)
|
37
|
+
* Fix compatibility with 1.8.x (#1665)
|
8
38
|
|
9
39
|
### Development Fixes
|
40
|
+
* Add coverage reporting with Coveralls (#1539)
|
41
|
+
* Refactor the Liquid `include` tag (#1490)
|
42
|
+
* Update launchy dependency to `~> 2.3` (#1608)
|
43
|
+
* Update rr dependency to `~> 1.1` (#1604)
|
44
|
+
* Update cucumber dependency to `~> 1.3` (#1607)
|
45
|
+
* Update coveralls dependency to `~> 0.7.0` (#1606)
|
46
|
+
* Update rake dependency to `~> 10.1` (#1603)
|
47
|
+
* Clean up `site.rb` comments to be more concise/uniform (#1616)
|
48
|
+
* Use the master branch for the build badge in the readme (#1636)
|
49
|
+
* Refactor Site#render (#1638)
|
50
|
+
* Remove duplication in command line options (#1637)
|
51
|
+
* Add tests for all the coderay options (#1543)
|
52
|
+
* Improve some of the cucumber test code (#1493)
|
53
|
+
* Improve comparisons of timestamps by ignoring the seconds (#1582)
|
10
54
|
|
11
55
|
### Site Enhancements
|
56
|
+
* Fix params for `JekyllImport::WordPress.process` arguments (#1554)
|
57
|
+
* Add `jekyll-suggested-tweet` to list of third-party plugins (#1555)
|
58
|
+
* Link to Liquid's docs for tags and filters (#1553)
|
59
|
+
* Add note about installing Xcode on the Mac in the Installation docs (#1561)
|
60
|
+
* Simplify/generalize pagination docs (#1577)
|
61
|
+
* Add documentation for the new data sources feature (#1503)
|
62
|
+
* Add more information on how to create generators (#1590, #1592)
|
63
|
+
* Improve the instructions for mimicking GitHub Flavored Markdown
|
64
|
+
(#1614)
|
65
|
+
* Add `jekyll-import` warning note of missing dependencies (#1626)
|
66
|
+
* Fix grammar in the Usage section (#1635)
|
67
|
+
* Add documentation for the use of gems as plugins (#1656)
|
68
|
+
* Document the existence of a few additional plugins (#1405)
|
69
|
+
* Document that the `date_to_string` always returns a two digit day (#1663)
|
12
70
|
|
13
71
|
## 1.2.1 / 2013-09-14
|
14
72
|
|
data/README.markdown
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/jekyll.png)](http://badge.fury.io/rb/jekyll)
|
4
4
|
|
5
|
-
[![Build Status](https://secure.travis-ci.org/mojombo/jekyll.png)](https://travis-ci.org/mojombo/jekyll)
|
5
|
+
[![Build Status](https://secure.travis-ci.org/mojombo/jekyll.png?branch=master)](https://travis-ci.org/mojombo/jekyll)
|
6
6
|
[![Code Climate](https://codeclimate.com/github/mojombo/jekyll.png)](https://codeclimate.com/github/mojombo/jekyll)
|
7
7
|
[![Dependency Status](https://gemnasium.com/mojombo/jekyll.png)](https://gemnasium.com/mojombo/jekyll)
|
8
|
+
[![Coverage Status](https://coveralls.io/repos/mojombo/jekyll/badge.png)](https://coveralls.io/r/mojombo/jekyll)
|
8
9
|
|
9
10
|
By Tom Preston-Werner, Nick Quaranto, and many awesome contributors!
|
10
11
|
|
data/Rakefile
CHANGED
@@ -84,7 +84,14 @@ end
|
|
84
84
|
#
|
85
85
|
#############################################################################
|
86
86
|
|
87
|
-
|
87
|
+
if RUBY_VERSION > '1.9' && ENV["TRAVIS"] == "true"
|
88
|
+
require 'coveralls/rake/task'
|
89
|
+
Coveralls::RakeTask.new
|
90
|
+
|
91
|
+
task :default => [:test, :features, 'coveralls:push']
|
92
|
+
else
|
93
|
+
task :default => [:test, :features]
|
94
|
+
end
|
88
95
|
|
89
96
|
require 'rake/testtask'
|
90
97
|
Rake::TestTask.new(:test) do |test|
|
data/bin/jekyll
CHANGED
@@ -33,6 +33,16 @@ def normalize_options(options)
|
|
33
33
|
options
|
34
34
|
end
|
35
35
|
|
36
|
+
def add_build_options(c)
|
37
|
+
c.option '--config CONFIG_FILE[,CONFIG_FILE2,...]', Array, 'Custom configuration file'
|
38
|
+
c.option '--future', 'Publishes posts with a future date'
|
39
|
+
c.option '--limit_posts MAX_POSTS', Integer, 'Limits the number of posts to parse and publish'
|
40
|
+
c.option '-w', '--watch', 'Watch for changes and rebuild'
|
41
|
+
c.option '--lsi', 'Use LSI for improved related posts'
|
42
|
+
c.option '-D', '--drafts', 'Render posts in the _drafts folder'
|
43
|
+
c.option '-V', '--verbose', 'Print verbose output.'
|
44
|
+
end
|
45
|
+
|
36
46
|
command :default do |c|
|
37
47
|
c.action do |args, options|
|
38
48
|
if args.empty?
|
@@ -59,13 +69,7 @@ command :build do |c|
|
|
59
69
|
c.syntax = 'jekyll build [options]'
|
60
70
|
c.description = 'Build your site'
|
61
71
|
|
62
|
-
c
|
63
|
-
c.option '--future', 'Publishes posts with a future date'
|
64
|
-
c.option '--limit_posts MAX_POSTS', Integer, 'Limits the number of posts to parse and publish'
|
65
|
-
c.option '-w', '--watch', 'Watch for changes and rebuild'
|
66
|
-
c.option '--lsi', 'Use LSI for improved related posts'
|
67
|
-
c.option '-D', '--drafts', 'Render posts in the _drafts folder'
|
68
|
-
c.option '-v', '--verbose', 'Print verbose output.'
|
72
|
+
add_build_options(c)
|
69
73
|
|
70
74
|
c.action do |args, options|
|
71
75
|
options = normalize_options(options.__hash__)
|
@@ -78,15 +82,9 @@ command :serve do |c|
|
|
78
82
|
c.syntax = 'jekyll serve [options]'
|
79
83
|
c.description = 'Serve your site locally'
|
80
84
|
|
81
|
-
c
|
82
|
-
c.option '--future', 'Publishes posts with a future date'
|
83
|
-
c.option '--limit_posts MAX_POSTS', Integer, 'Limits the number of posts to parse and publish'
|
84
|
-
c.option '-w', '--watch', 'Watch for changes and rebuild'
|
85
|
-
c.option '--lsi', 'Use LSI for improved related posts'
|
86
|
-
c.option '-B', '--detach', 'Run the server in the background (detach)'
|
87
|
-
c.option '-D', '--drafts', 'Render posts in the _drafts folder'
|
88
|
-
c.option '-v', '--verbose', 'Print verbose output.'
|
85
|
+
add_build_options(c)
|
89
86
|
|
87
|
+
c.option '-B', '--detach', 'Run the server in the background (detach)'
|
90
88
|
c.option '-P', '--port [PORT]', 'Port to listen on'
|
91
89
|
c.option '-H', '--host [HOST]', 'Host to bind to'
|
92
90
|
c.option '-b', '--baseurl [URL]', 'Base URL'
|
@@ -151,8 +149,7 @@ command :import do |c|
|
|
151
149
|
require 'jekyll-import'
|
152
150
|
rescue LoadError
|
153
151
|
msg = "You must install the 'jekyll-import' gem before continuing.\n"
|
154
|
-
msg += "*
|
155
|
-
msg += "* Or if you need root privileges, run `sudo gem install jekyll-import`."
|
152
|
+
msg += "* Please see the documentation at http://jekyllrb.com/docs/migrations/ for instructions.\n"
|
156
153
|
abort msg
|
157
154
|
end
|
158
155
|
Jekyll::Commands::Import.process(args.first, options)
|
@@ -44,6 +44,17 @@ Feature: Create sites
|
|
44
44
|
Then the _site directory should exist
|
45
45
|
And I should see "Post Layout: <p>The only winning move is not to play.</p>" in "_site/2009/03/27/wargames.html"
|
46
46
|
|
47
|
+
Scenario: Basic site with layout inside a subfolder and a post
|
48
|
+
Given I have a _layouts directory
|
49
|
+
And I have a _posts directory
|
50
|
+
And I have the following posts:
|
51
|
+
| title | date | layout | content |
|
52
|
+
| Wargames | 2009-03-27 | post/simple | The only winning move is not to play. |
|
53
|
+
And I have a post/simple layout that contains "Post Layout: {{ content }}"
|
54
|
+
When I run jekyll
|
55
|
+
Then the _site directory should exist
|
56
|
+
And I should see "Post Layout: <p>The only winning move is not to play.</p>" in "_site/2009/03/27/wargames.html"
|
57
|
+
|
47
58
|
Scenario: Basic site with layouts, pages, posts and files
|
48
59
|
Given I have a _layouts directory
|
49
60
|
And I have a page layout that contains "Page {{ page.title }}: {{ content }}"
|
@@ -0,0 +1,65 @@
|
|
1
|
+
Feature: Data
|
2
|
+
In order to use well-formatted data in my blog
|
3
|
+
As a blog's user
|
4
|
+
I want to use _data directory in my site
|
5
|
+
|
6
|
+
Scenario: autoload *.yaml files in _data directory
|
7
|
+
Given I have a _data directory
|
8
|
+
And I have a "_data/products.yaml" file with content:
|
9
|
+
"""
|
10
|
+
- name: sugar
|
11
|
+
price: 5.3
|
12
|
+
- name: salt
|
13
|
+
price: 2.5
|
14
|
+
"""
|
15
|
+
And I have an "index.html" page that contains "{% for product in site.data.products %}{{product.name}}{% endfor %}"
|
16
|
+
When I run jekyll
|
17
|
+
Then the "_site/index.html" file should exist
|
18
|
+
And I should see "sugar" in "_site/index.html"
|
19
|
+
And I should see "salt" in "_site/index.html"
|
20
|
+
|
21
|
+
Scenario: autoload *.yml files in _data directory
|
22
|
+
Given I have a _data directory
|
23
|
+
And I have a "_data/members.yml" file with content:
|
24
|
+
"""
|
25
|
+
- name: Jack
|
26
|
+
age: 28
|
27
|
+
- name: Leon
|
28
|
+
age: 34
|
29
|
+
"""
|
30
|
+
And I have an "index.html" page that contains "{% for member in site.data.members %}{{member.name}}{% endfor %}"
|
31
|
+
When I run jekyll
|
32
|
+
Then the "_site/index.html" file should exist
|
33
|
+
And I should see "Jack" in "_site/index.html"
|
34
|
+
And I should see "Leon" in "_site/index.html"
|
35
|
+
|
36
|
+
Scenario: autoload *.yml files in _data directory with space in file name
|
37
|
+
Given I have a _data directory
|
38
|
+
And I have a "_data/team members.yml" file with content:
|
39
|
+
"""
|
40
|
+
- name: Jack
|
41
|
+
age: 28
|
42
|
+
- name: Leon
|
43
|
+
age: 34
|
44
|
+
"""
|
45
|
+
And I have an "index.html" page that contains "{% for member in site.data.team_members %}{{member.name}}{% endfor %}"
|
46
|
+
When I run jekyll
|
47
|
+
Then the "_site/index.html" file should exist
|
48
|
+
And I should see "Jack" in "_site/index.html"
|
49
|
+
And I should see "Leon" in "_site/index.html"
|
50
|
+
|
51
|
+
Scenario: should be backward compatible with site.data in _config.yml
|
52
|
+
Given I have a "_config.yml" file with content:
|
53
|
+
"""
|
54
|
+
data:
|
55
|
+
- name: Jack
|
56
|
+
age: 28
|
57
|
+
- name: Leon
|
58
|
+
age: 34
|
59
|
+
"""
|
60
|
+
And I have an "index.html" page that contains "{% for member in site.data %}{{member.name}}{% endfor %}"
|
61
|
+
When I run jekyll
|
62
|
+
Then the "_site/index.html" file should exist
|
63
|
+
And I should see "Jack" in "_site/index.html"
|
64
|
+
And I should see "Leon" in "_site/index.html"
|
65
|
+
|
@@ -33,3 +33,16 @@ Feature: Include tags
|
|
33
33
|
And I should see "<li>param1_or_2 = value</li>" in "_site/2013/04/12/parameter-syntax.html"
|
34
34
|
And I should see "<li>local = some text</li>" in "_site/2013/06/22/pass-a-variable.html"
|
35
35
|
And I should see "<li>layout = default</li>" in "_site/2013/06/22/pass-a-variable.html"
|
36
|
+
|
37
|
+
Scenario: Include a file from a variable
|
38
|
+
Given I have an _includes directory
|
39
|
+
And I have an "_includes/snippet.html" file that contains "a snippet"
|
40
|
+
And I have an "_includes/parametrized.html" file that contains "works with {{include.what}}"
|
41
|
+
And I have a configuration file with:
|
42
|
+
| key | value |
|
43
|
+
| include_file1 | snippet.html |
|
44
|
+
| include_file2 | parametrized.html |
|
45
|
+
And I have an "index.html" page that contains "{% include {{site.include_file1}} %} that {% include {{site.include_file2}} what='parameters' %}"
|
46
|
+
When I run jekyll
|
47
|
+
Then the _site directory should exist
|
48
|
+
And I should see "a snippet that works with parameters" in "_site/index.html"
|
@@ -18,6 +18,27 @@ Feature: Site configuration
|
|
18
18
|
Then the _mysite directory should exist
|
19
19
|
And I should see "Changing destination directory" in "_mysite/index.html"
|
20
20
|
|
21
|
+
Scenario Outline: Similarly named source and destination
|
22
|
+
Given I have a blank site in "<source>"
|
23
|
+
And I have an "<source>/index.md" page that contains "markdown"
|
24
|
+
And I have a configuration file with:
|
25
|
+
| key | value |
|
26
|
+
| source | <source> |
|
27
|
+
| destination | <dest> |
|
28
|
+
When I run jekyll
|
29
|
+
Then the <source> directory should exist
|
30
|
+
And the "<dest>/index.html" file should <file_exist> exist
|
31
|
+
And I should see "markdown" in "<source>/index.md"
|
32
|
+
|
33
|
+
Examples:
|
34
|
+
| source | dest | file_exist |
|
35
|
+
| mysite_source | mysite | |
|
36
|
+
| mysite | mysite_dest | |
|
37
|
+
| mysite/ | mysite | not |
|
38
|
+
| mysite | ./mysite | not |
|
39
|
+
| mysite/source | mysite | not |
|
40
|
+
| mysite | mysite/dest | |
|
41
|
+
|
21
42
|
Scenario: Exclude files inline
|
22
43
|
Given I have an "Rakefile" file that contains "I want to be excluded"
|
23
44
|
And I have an "README" file that contains "I want to be excluded"
|
@@ -204,3 +225,11 @@ Feature: Site configuration
|
|
204
225
|
And I should see "Page Layout: 2 on 2010-01-01" in "_site/index.html"
|
205
226
|
And I should see "Post Layout: <p>content for entry1.</p>" in "_site/2007/12/31/entry1.html"
|
206
227
|
And I should see "Post Layout: <p>content for entry2.</p>" in "_site/2020/01/31/entry2.html"
|
228
|
+
|
229
|
+
Scenario: Add a gem-based plugin
|
230
|
+
Given I have an "index.html" file that contains "Whatever"
|
231
|
+
And I have a configuration file with "gems" set to "[jekyll_test_plugin]"
|
232
|
+
When I run jekyll
|
233
|
+
Then the _site directory should exist
|
234
|
+
And I should see "Whatever" in "_site/index.html"
|
235
|
+
And I should see "this is a test" in "_site/test.txt"
|
@@ -7,7 +7,7 @@ end
|
|
7
7
|
World(Test::Unit::Assertions)
|
8
8
|
|
9
9
|
Given /^I have a blank site in "(.*)"$/ do |path|
|
10
|
-
FileUtils.
|
10
|
+
FileUtils.mkdir_p(path)
|
11
11
|
end
|
12
12
|
|
13
13
|
Given /^I do not have a "(.*)" directory$/ do |path|
|
@@ -38,7 +38,18 @@ Given /^I have an? (.*) (layout|theme) that contains "(.*)"$/ do |name, type, te
|
|
38
38
|
else
|
39
39
|
'_theme'
|
40
40
|
end
|
41
|
-
File.
|
41
|
+
destination_file = File.join(folder, name + '.html')
|
42
|
+
destination_path = File.dirname(destination_file)
|
43
|
+
unless File.exist?(destination_path)
|
44
|
+
FileUtils.mkdir_p(destination_path)
|
45
|
+
end
|
46
|
+
File.open(destination_file, 'w') do |f|
|
47
|
+
f.write(text)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
Given /^I have an? "(.*)" file with content:$/ do |file, text|
|
52
|
+
File.open(file, 'w') do |f|
|
42
53
|
f.write(text)
|
43
54
|
end
|
44
55
|
end
|
@@ -137,38 +148,42 @@ When /^I delete the file "(.*)"$/ do |file|
|
|
137
148
|
File.delete(file)
|
138
149
|
end
|
139
150
|
|
140
|
-
Then /^the (.*) directory should exist$/ do |dir|
|
151
|
+
Then /^the (.*) directory should +exist$/ do |dir|
|
141
152
|
assert File.directory?(dir), "The directory \"#{dir}\" does not exist"
|
142
153
|
end
|
143
154
|
|
155
|
+
Then /^the (.*) directory should not exist$/ do |dir|
|
156
|
+
assert !File.directory?(dir), "The directory \"#{dir}\" exists"
|
157
|
+
end
|
158
|
+
|
144
159
|
Then /^I should see "(.*)" in "(.*)"$/ do |text, file|
|
145
|
-
|
160
|
+
assert_match Regexp.new(text), file_contents(file)
|
146
161
|
end
|
147
162
|
|
148
163
|
Then /^I should see exactly "(.*)" in "(.*)"$/ do |text, file|
|
149
|
-
assert_equal text,
|
164
|
+
assert_equal text, file_contents(file).strip
|
150
165
|
end
|
151
166
|
|
152
167
|
Then /^I should not see "(.*)" in "(.*)"$/ do |text, file|
|
153
|
-
assert_no_match Regexp.new(text),
|
168
|
+
assert_no_match Regexp.new(text), file_contents(file)
|
154
169
|
end
|
155
170
|
|
156
171
|
Then /^I should see escaped "(.*)" in "(.*)"$/ do |text, file|
|
157
|
-
|
172
|
+
assert_match Regexp.new(Regexp.escape(text)), file_contents(file)
|
158
173
|
end
|
159
174
|
|
160
|
-
Then /^the "(.*)" file should exist$/ do |file|
|
161
|
-
assert File.file?(file)
|
175
|
+
Then /^the "(.*)" file should +exist$/ do |file|
|
176
|
+
assert File.file?(file), "The file \"#{file}\" does not exist"
|
162
177
|
end
|
163
178
|
|
164
179
|
Then /^the "(.*)" file should not exist$/ do |file|
|
165
|
-
assert !File.exists?(file)
|
180
|
+
assert !File.exists?(file), "The file \"#{file}\" exists"
|
166
181
|
end
|
167
182
|
|
168
183
|
Then /^I should see today's time in "(.*)"$/ do |file|
|
169
|
-
assert_match Regexp.new(
|
184
|
+
assert_match Regexp.new(seconds_agnostic_time(Time.now)), file_contents(file)
|
170
185
|
end
|
171
186
|
|
172
187
|
Then /^I should see today's date in "(.*)"$/ do |file|
|
173
|
-
assert_match Regexp.new(Date.today.to_s),
|
188
|
+
assert_match Regexp.new(Date.today.to_s), file_contents(file)
|
174
189
|
end
|
data/features/support/env.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
if RUBY_VERSION > '1.9'
|
2
|
+
require 'coveralls'
|
3
|
+
Coveralls.wear_merged!
|
4
|
+
end
|
5
|
+
|
1
6
|
require 'fileutils'
|
2
7
|
require 'rr'
|
3
8
|
require 'test/unit'
|
@@ -35,5 +40,36 @@ def location(folder, direction)
|
|
35
40
|
[before || '.', after || '.']
|
36
41
|
end
|
37
42
|
|
43
|
+
def file_contents(path)
|
44
|
+
File.open(path) do |file|
|
45
|
+
file.readlines.join # avoid differences with \n and \r\n line endings
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def seconds_agnostic_datetime(datetime = Time.now)
|
50
|
+
pieces = datetime.to_s.split(" ")
|
51
|
+
if pieces.size == 6 # Ruby 1.8.7
|
52
|
+
date = pieces[0..2].join(" ")
|
53
|
+
time = seconds_agnostic_time(pieces[3])
|
54
|
+
zone = pieces[4..5].join(" ")
|
55
|
+
else # Ruby 1.9.1 or greater
|
56
|
+
date, time, zone = pieces
|
57
|
+
time = seconds_agnostic_time(time)
|
58
|
+
end
|
59
|
+
[
|
60
|
+
Regexp.escape(date),
|
61
|
+
"#{time}:\\d{2}",
|
62
|
+
Regexp.escape(zone)
|
63
|
+
].join("\\ ")
|
64
|
+
end
|
65
|
+
|
66
|
+
def seconds_agnostic_time(time)
|
67
|
+
if time.is_a? Time
|
68
|
+
time = time.strftime("%H:%M:%S")
|
69
|
+
end
|
70
|
+
hour, minutes, _ = time.split(":")
|
71
|
+
"#{hour}:#{minutes}"
|
72
|
+
end
|
73
|
+
|
38
74
|
# work around "invalid option: --format" cucumber bug (see #296)
|
39
75
|
Test::Unit.run = true if RUBY_VERSION < '1.9'
|
data/jekyll.gemspec
CHANGED
@@ -4,9 +4,9 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.rubygems_version = '1.3.5'
|
5
5
|
|
6
6
|
s.name = 'jekyll'
|
7
|
-
s.version = '1.
|
7
|
+
s.version = '1.3.0.rc'
|
8
8
|
s.license = 'MIT'
|
9
|
-
s.date = '2013-
|
9
|
+
s.date = '2013-10-29'
|
10
10
|
s.rubyforge_project = 'jekyll'
|
11
11
|
|
12
12
|
s.summary = "A simple, blog aware, static site generator."
|
@@ -25,27 +25,30 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
s.add_runtime_dependency('liquid', "~> 2.5.2")
|
27
27
|
s.add_runtime_dependency('classifier', "~> 1.3")
|
28
|
-
s.add_runtime_dependency('
|
29
|
-
s.add_runtime_dependency('maruku', "~> 0.
|
28
|
+
s.add_runtime_dependency('listen', "~> 1.3")
|
29
|
+
s.add_runtime_dependency('maruku', "~> 0.6.0")
|
30
30
|
s.add_runtime_dependency('pygments.rb', "~> 0.5.0")
|
31
31
|
s.add_runtime_dependency('commander', "~> 4.1.3")
|
32
|
-
s.add_runtime_dependency('safe_yaml', "~> 0.7
|
32
|
+
s.add_runtime_dependency('safe_yaml', "~> 0.9.7")
|
33
33
|
s.add_runtime_dependency('colorator', "~> 0.1")
|
34
34
|
s.add_runtime_dependency('redcarpet', "~> 2.3.0")
|
35
35
|
|
36
|
-
s.add_development_dependency('rake', "~> 10.
|
36
|
+
s.add_development_dependency('rake', "~> 10.1")
|
37
37
|
s.add_development_dependency('rdoc', "~> 3.11")
|
38
38
|
s.add_development_dependency('redgreen', "~> 1.2")
|
39
39
|
s.add_development_dependency('shoulda', "~> 3.3.2")
|
40
|
-
s.add_development_dependency('rr', "~> 1.
|
41
|
-
s.add_development_dependency('cucumber', "~> 1.
|
40
|
+
s.add_development_dependency('rr', "~> 1.1")
|
41
|
+
s.add_development_dependency('cucumber', "~> 1.3")
|
42
42
|
s.add_development_dependency('RedCloth', "~> 4.2")
|
43
|
-
s.add_development_dependency('kramdown', "~> 1.
|
43
|
+
s.add_development_dependency('kramdown', "~> 1.2")
|
44
44
|
s.add_development_dependency('rdiscount', "~> 1.6")
|
45
|
-
s.add_development_dependency('launchy', "~> 2.
|
45
|
+
s.add_development_dependency('launchy', "~> 2.3")
|
46
46
|
s.add_development_dependency('simplecov', "~> 0.7")
|
47
47
|
s.add_development_dependency('simplecov-gem-adapter', "~> 1.0.1")
|
48
|
+
s.add_development_dependency('coveralls', "~> 0.7.0")
|
49
|
+
s.add_development_dependency('mime-types', "~> 1.5")
|
48
50
|
s.add_development_dependency('activesupport', '~> 3.2.13')
|
51
|
+
s.add_development_dependency('jekyll_test_plugin')
|
49
52
|
|
50
53
|
# = MANIFEST =
|
51
54
|
s.files = %w[
|
@@ -58,6 +61,7 @@ Gem::Specification.new do |s|
|
|
58
61
|
bin/jekyll
|
59
62
|
cucumber.yml
|
60
63
|
features/create_sites.feature
|
64
|
+
features/data.feature
|
61
65
|
features/drafts.feature
|
62
66
|
features/embed_filters.feature
|
63
67
|
features/include_tag.feature
|
@@ -150,12 +154,14 @@ Gem::Specification.new do |s|
|
|
150
154
|
site/_posts/2013-07-25-jekyll-1-1-2-released.markdown
|
151
155
|
site/_posts/2013-09-06-jekyll-1-2-0-released.markdown
|
152
156
|
site/_posts/2013-09-14-jekyll-1-2-1-released.markdown
|
157
|
+
site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown
|
153
158
|
site/css/gridism.css
|
154
159
|
site/css/normalize.css
|
155
160
|
site/css/pygments.css
|
156
161
|
site/css/style.css
|
157
162
|
site/docs/configuration.md
|
158
163
|
site/docs/contributing.md
|
164
|
+
site/docs/datafiles.md
|
159
165
|
site/docs/deployment-methods.md
|
160
166
|
site/docs/drafts.md
|
161
167
|
site/docs/extras.md
|
@@ -202,9 +208,13 @@ Gem::Specification.new do |s|
|
|
202
208
|
test/helper.rb
|
203
209
|
test/source/+/foo.md
|
204
210
|
test/source/.htaccess
|
211
|
+
test/source/_data/languages.yml
|
212
|
+
test/source/_data/members.yaml
|
213
|
+
test/source/_data/products.yml
|
205
214
|
test/source/_includes/params.html
|
206
215
|
test/source/_includes/sig.markdown
|
207
216
|
test/source/_layouts/default.html
|
217
|
+
test/source/_layouts/post/simple.html
|
208
218
|
test/source/_layouts/simple.html
|
209
219
|
test/source/_plugins/dummy.rb
|
210
220
|
test/source/_posts/2008-02-02-not-published.textile
|
@@ -250,7 +260,9 @@ Gem::Specification.new do |s|
|
|
250
260
|
test/source/deal.with.dots.html
|
251
261
|
test/source/foo/_posts/bar/2008-12-12-topical-post.textile
|
252
262
|
test/source/index.html
|
263
|
+
test/source/products.yml
|
253
264
|
test/source/sitemap.xml
|
265
|
+
test/source/symlink-test/_data
|
254
266
|
test/source/symlink-test/symlinked-dir
|
255
267
|
test/source/symlink-test/symlinked-file
|
256
268
|
test/source/win/_posts/2009-05-24-yaml-linebreak.markdown
|