mojombo-jekyll 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.5.3 / 2009-07-14
2
+ * Bug Fixes
3
+ * Solving the permalink bug where non-html files wouldn't work [github.com/jeffrydegrande]
4
+
1
5
  == 0.5.2 / 2009-06-24
2
6
  * Enhancements
3
7
  * Added --paginate option to the executable along with a paginator object for the payload [github.com/calavera]
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 5
4
- :patch: 2
4
+ :patch: 3
data/lib/jekyll/page.rb CHANGED
@@ -57,7 +57,7 @@ module Jekyll
57
57
  def url
58
58
  return permalink if permalink
59
59
 
60
- @url ||= template.gsub(':name', basename)
60
+ @url ||= (ext == '.html') ? template.gsub(':name', basename) : "/#{name}"
61
61
  end
62
62
 
63
63
  # Extract information from the page filename
@@ -91,7 +91,7 @@ module Jekyll
91
91
 
92
92
  # The url needs to be unescaped in order to preserve the correct filename
93
93
  path = File.join(dest, CGI.unescape(self.url))
94
- if self.url[/\.html$/].nil?
94
+ if self.ext == '.html' && self.url[/\.html$/].nil?
95
95
  FileUtils.mkdir_p(path)
96
96
  path = File.join(path, "index.html")
97
97
  end
@@ -0,0 +1,23 @@
1
+ ---
2
+ layout: nil
3
+ ---
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <urlset
6
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
7
+
8
+ <url>
9
+ <loc>http://example.com</loc>
10
+ <lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
11
+ <changefreq>daily</changefreq>
12
+ <priority>1.0</priority>
13
+ </url>
14
+
15
+ {% for post in site.posts %}
16
+ <url>
17
+ <loc>http://example.com/{{ post.url }}/</loc>
18
+ <lastmod>{{ site.time }}</lastmod>
19
+ <changefreq>monthly</changefreq>
20
+ <priority>0.2</priority>
21
+ </url>
22
+ {% endfor %}
23
+ </urlset>
data/test/test_page.rb CHANGED
@@ -81,6 +81,17 @@ class TestPage < Test::Unit::TestCase
81
81
  assert File.exists?(File.join(dest_dir, 'contacts', 'index.html'))
82
82
  end
83
83
 
84
+ should "write properly with extension different from html" do
85
+ page = setup_page("sitemap.xml")
86
+ page.site.permalink_style = :pretty
87
+ do_render(page)
88
+ page.write(dest_dir)
89
+
90
+ assert_equal("/sitemap.xml", page.url)
91
+ assert_nil(page.url[/\.html$/])
92
+ assert File.directory?(dest_dir)
93
+ assert File.exists?(File.join(dest_dir,'sitemap.xml'))
94
+ end
84
95
  end
85
96
 
86
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mojombo-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-24 00:00:00 -07:00
12
+ date: 2009-07-14 00:00:00 -07:00
13
13
  default_executable: jekyll
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -81,22 +81,11 @@ extensions: []
81
81
  extra_rdoc_files:
82
82
  - README.textile
83
83
  files:
84
- - .gitignore
85
84
  - History.txt
86
85
  - README.textile
87
86
  - Rakefile
88
87
  - VERSION.yml
89
88
  - bin/jekyll
90
- - features/create_sites.feature
91
- - features/embed_filters.feature
92
- - features/pagination.feature
93
- - features/permalinks.feature
94
- - features/post_data.feature
95
- - features/site_configuration.feature
96
- - features/site_data.feature
97
- - features/step_definitions/jekyll_steps.rb
98
- - features/support/env.rb
99
- - jekyll.gemspec
100
89
  - lib/jekyll.rb
101
90
  - lib/jekyll/albino.rb
102
91
  - lib/jekyll/converters/csv.rb
@@ -139,6 +128,7 @@ files:
139
128
  - test/source/css/screen.css
140
129
  - test/source/foo/_posts/bar/2008-12-12-topical-post.textile
141
130
  - test/source/index.html
131
+ - test/source/sitemap.xml
142
132
  - test/source/win/_posts/2009-05-24-yaml-linebreak.markdown
143
133
  - test/source/z_category/_posts/2008-9-23-categories.textile
144
134
  - test/suite.rb
@@ -177,13 +167,13 @@ signing_key:
177
167
  specification_version: 3
178
168
  summary: Jekyll is a simple, blog aware, static site generator.
179
169
  test_files:
180
- - test/helper.rb
181
- - test/suite.rb
182
- - test/test_configuration.rb
183
- - test/test_filters.rb
184
- - test/test_generated_site.rb
185
170
  - test/test_page.rb
186
- - test/test_pager.rb
187
171
  - test/test_post.rb
188
- - test/test_site.rb
172
+ - test/test_pager.rb
173
+ - test/test_configuration.rb
189
174
  - test/test_tags.rb
175
+ - test/test_generated_site.rb
176
+ - test/suite.rb
177
+ - test/test_filters.rb
178
+ - test/helper.rb
179
+ - test/test_site.rb
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- test/dest
2
- *.gem
3
- pkg/
4
- *.swp
5
- *~
6
- _site/
@@ -1,46 +0,0 @@
1
- Feature: Create sites
2
- As a hacker who likes to blog
3
- I want to be able to make a static site
4
- In order to share my awesome ideas with the interwebs
5
-
6
- Scenario: Basic site
7
- Given I have an "index.html" file that contains "Basic Site"
8
- When I run jekyll
9
- Then the _site directory should exist
10
- And I should see "Basic Site" in "_site/index.html"
11
-
12
- Scenario: Basic site with a post
13
- Given I have a _posts directory
14
- And I have the following post:
15
- | title | date | content |
16
- | Hackers | 3/27/2009 | My First Exploit |
17
- When I run jekyll
18
- Then the _site directory should exist
19
- And I should see "My First Exploit" in "_site/2009/03/27/hackers.html"
20
-
21
- Scenario: Basic site with layout and a page
22
- Given I have a _layouts directory
23
- And I have an "index.html" page with layout "default" that contains "Basic Site with Layout"
24
- And I have a default layout that contains "Page Layout: {{ content }}"
25
- When I run jekyll
26
- Then the _site directory should exist
27
- And I should see "Page Layout: Basic Site with Layout" in "_site/index.html"
28
-
29
- Scenario: Basic site with layout and a post
30
- Given I have a _layouts directory
31
- And I have a _posts directory
32
- And I have the following post:
33
- | title | date | layout | content |
34
- | Wargames | 3/27/2009 | default | The only winning move is not to play. |
35
- And I have a default layout that contains "Post Layout: {{ content }}"
36
- When I run jekyll
37
- Then the _site directory should exist
38
- And I should see "Post Layout: <p>The only winning move is not to play.</p>" in "_site/2009/03/27/wargames.html"
39
-
40
- Scenario: Basic site with include tag
41
- Given I have a _includes directory
42
- And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}"
43
- And I have an "_includes/about.textile" file that contains "Generated by Jekyll"
44
- When I run jekyll
45
- Then the _site directory should exist
46
- And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"
@@ -1,60 +0,0 @@
1
- Feature: Embed filters
2
- As a hacker who likes to blog
3
- I want to be able to transform text inside a post or page
4
- In order to perform cool stuff in my posts
5
-
6
- Scenario: Convert date to XML schema
7
- Given I have a _posts directory
8
- And I have a _layouts directory
9
- And I have the following post:
10
- | title | date | layout | content |
11
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
12
- And I have a default layout that contains "{{ site.time | date_to_xmlschema }}"
13
- When I run jekyll
14
- Then the _site directory should exist
15
- And I should see today's date in "_site/2009/03/27/star-wars.html"
16
-
17
- Scenario: Escape text for XML
18
- Given I have a _posts directory
19
- And I have a _layouts directory
20
- And I have the following post:
21
- | title | date | layout | content |
22
- | Star & Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
23
- And I have a default layout that contains "{{ site.posts.first.title | xml_escape }}"
24
- When I run jekyll
25
- Then the _site directory should exist
26
- And I should see "Star &amp; Wars" in "_site/2009/03/27/star-wars.html"
27
-
28
- Scenario: Calculate number of words
29
- Given I have a _posts directory
30
- And I have a _layouts directory
31
- And I have the following post:
32
- | title | date | layout | content |
33
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
34
- And I have a default layout that contains "{{ site.posts.first.content | xml_escape }}"
35
- When I run jekyll
36
- Then the _site directory should exist
37
- And I should see "7" in "_site/2009/03/27/star-wars.html"
38
-
39
- Scenario: Convert an array into a sentence
40
- Given I have a _posts directory
41
- And I have a _layouts directory
42
- And I have the following post:
43
- | title | date | layout | tags | content |
44
- | Star Wars | 3/27/2009 | default | [scifi, movies, force] | These aren't the droids you're looking for. |
45
- And I have a default layout that contains "{{ site.posts.first.tags | array_to_sentence_string }}"
46
- When I run jekyll
47
- Then the _site directory should exist
48
- And I should see "scifi, movies, and force" in "_site/2009/03/27/star-wars.html"
49
-
50
- Scenario: Textilize a given string
51
- Given I have a _posts directory
52
- And I have a _layouts directory
53
- And I have the following post:
54
- | title | date | layout | content |
55
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
56
- And I have a default layout that contains "By {{ '_Obi-wan_' | textilize }}"
57
- When I run jekyll
58
- Then the _site directory should exist
59
- And I should see "By <p><em>Obi-wan</em></p>" in "_site/2009/03/27/star-wars.html"
60
-
@@ -1,40 +0,0 @@
1
- Feature: Site pagination
2
- In order to paginate my blog
3
- As a blog's user
4
- I want divide the posts in several pages
5
-
6
- Scenario Outline: Paginate with N posts per page
7
- Given I have a configuration file with "paginate" set to "<num>"
8
- And I have a _layouts directory
9
- And I have an "index.html" file that contains "Basic Site"
10
- And I have a _posts directory
11
- And I have the following post:
12
- | title | date | layout | content |
13
- | Wargames | 3/27/2009 | default | The only winning move is not to play. |
14
- | Wargames2 | 4/27/2009 | default | The only winning move is not to play2. |
15
- | Wargames3 | 5/27/2009 | default | The only winning move is not to play2. |
16
- When I run jekyll
17
- Then the _site/page2 directory should exist
18
- And the _site/page2/index.html file should exist
19
-
20
- Examples:
21
- | num |
22
- | 1 |
23
- | 2 |
24
-
25
- Scenario: Correct liquid paginator replacements
26
- Given I have a configuration file with "paginate" set to "1"
27
- And I have a _layouts directory
28
- And I have an "index.html" file that contains "{{ paginator.page }}"
29
- And I have a _posts directory
30
- And I have the following post:
31
- | title | date | layout | content |
32
- | Wargames | 3/27/2009 | default | The only winning move is not to play. |
33
- | Wargames2 | 4/27/2009 | default | The only winning move is not to play2. |
34
- When I run jekyll
35
- Then the _site/index.html file should exist
36
- And I should see "1" in "_site/index.html"
37
- Then the _site/page2 directory should exist
38
- And the _site/page2/index.html file should exist
39
- And I should see "2" in "_site/page2/index.html"
40
-
@@ -1,63 +0,0 @@
1
- Feature: Fancy permalinks
2
- As a hacker who likes to blog
3
- I want to be able to set permalinks
4
- In order to make my blog URLs awesome
5
-
6
- Scenario: Use none permalink schema
7
- Given I have a _posts directory
8
- And I have the following post:
9
- | title | date | content |
10
- | None Permalink Schema | 3/27/2009 | Totally nothing. |
11
- And I have a configuration file with "permalink" set to "none"
12
- When I run jekyll
13
- Then the _site directory should exist
14
- And I should see "Totally nothing." in "_site/none-permalink-schema.html"
15
-
16
- Scenario: Use pretty permalink schema
17
- Given I have a _posts directory
18
- And I have the following post:
19
- | title | date | content |
20
- | Pretty Permalink Schema | 3/27/2009 | Totally wordpress. |
21
- And I have a configuration file with "permalink" set to "pretty"
22
- When I run jekyll
23
- Then the _site directory should exist
24
- And I should see "Totally wordpress." in "_site/2009/03/27/pretty-permalink-schema/index.html"
25
-
26
- Scenario: Use pretty permalink schema for pages
27
- Given I have an "index.html" page that contains "Totally index"
28
- And I have an "awesome.html" page that contains "Totally awesome"
29
- And I have a configuration file with "permalink" set to "pretty"
30
- When I run jekyll
31
- Then the _site directory should exist
32
- And I should see "Totally index" in "_site/index.html"
33
- And I should see "Totally awesome" in "_site/awesome/index.html"
34
-
35
- Scenario: Use custom permalink schema with prefix
36
- Given I have a _posts directory
37
- And I have the following post:
38
- | title | category | date | content |
39
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
40
- And I have a configuration file with "permalink" set to "/blog/:year/:month/:day/:title"
41
- When I run jekyll
42
- Then the _site directory should exist
43
- And I should see "Totally custom." in "_site/blog/2009/03/27/custom-permalink-schema/index.html"
44
-
45
- Scenario: Use custom permalink schema with category
46
- Given I have a _posts directory
47
- And I have the following post:
48
- | title | category | date | content |
49
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
50
- And I have a configuration file with "permalink" set to "/:categories/:title.html"
51
- When I run jekyll
52
- Then the _site directory should exist
53
- And I should see "Totally custom." in "_site/stuff/custom-permalink-schema.html"
54
-
55
- Scenario: Use custom permalink schema with squished date
56
- Given I have a _posts directory
57
- And I have the following post:
58
- | title | category | date | content |
59
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
60
- And I have a configuration file with "permalink" set to "/:month-:day-:year/:title.html"
61
- When I run jekyll
62
- Then the _site directory should exist
63
- And I should see "Totally custom." in "_site/03-27-2009/custom-permalink-schema.html"
@@ -1,153 +0,0 @@
1
- Feature: Post data
2
- As a hacker who likes to blog
3
- I want to be able to embed data into my posts
4
- In order to make the posts slightly dynamic
5
-
6
- Scenario: Use post.title variable
7
- Given I have a _posts directory
8
- And I have a _layouts directory
9
- And I have the following post:
10
- | title | date | layout | content |
11
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
12
- And I have a simple layout that contains "Post title: {{ site.posts.first.title }}"
13
- When I run jekyll
14
- Then the _site directory should exist
15
- And I should see "Post title: Star Wars" in "_site/2009/03/27/star-wars.html"
16
-
17
- Scenario: Use post.url variable
18
- Given I have a _posts directory
19
- And I have a _layouts directory
20
- And I have the following post:
21
- | title | date | layout | content |
22
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
23
- And I have a simple layout that contains "Post url: {{ site.posts.first.url }}"
24
- When I run jekyll
25
- Then the _site directory should exist
26
- And I should see "Post url: /2009/03/27/star-wars.html" in "_site/2009/03/27/star-wars.html"
27
-
28
- Scenario: Use post.date variable
29
- Given I have a _posts directory
30
- And I have a _layouts directory
31
- And I have the following post:
32
- | title | date | layout | content |
33
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
34
- And I have a simple layout that contains "Post date: {{ site.posts.first.date }}"
35
- When I run jekyll
36
- Then the _site directory should exist
37
- And I should see "Post date: Fri Mar 27" in "_site/2009/03/27/star-wars.html"
38
-
39
- Scenario: Use post.id variable
40
- Given I have a _posts directory
41
- And I have a _layouts directory
42
- And I have the following post:
43
- | title | date | layout | content |
44
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
45
- And I have a simple layout that contains "Post id: {{ site.posts.first.id }}"
46
- When I run jekyll
47
- Then the _site directory should exist
48
- And I should see "Post id: /2009/03/27/star-wars" in "_site/2009/03/27/star-wars.html"
49
-
50
- Scenario: Use post.content variable
51
- Given I have a _posts directory
52
- And I have a _layouts directory
53
- And I have the following post:
54
- | title | date | layout | content |
55
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
56
- And I have a simple layout that contains "Post content: {{ site.posts.first.content }}"
57
- When I run jekyll
58
- Then the _site directory should exist
59
- And I should see "Post content: <p>Luke, I am your father.</p>" in "_site/2009/03/27/star-wars.html"
60
-
61
- Scenario: Use post.categories variable when category is in a folder
62
- Given I have a movies directory
63
- And I have a movies/_posts directory
64
- And I have a _layouts directory
65
- And I have the following post in "movies":
66
- | title | date | layout | content |
67
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
68
- And I have a simple layout that contains "Post category: {{ site.posts.first.categories }}"
69
- When I run jekyll
70
- Then the _site directory should exist
71
- And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
72
-
73
- Scenario: Use post.tags variable
74
- Given I have a _posts directory
75
- And I have a _layouts directory
76
- And I have the following post:
77
- | title | date | layout | tag | content |
78
- | Star Wars | 5/18/2009 | simple | twist | Luke, I am your father. |
79
- And I have a simple layout that contains "Post tags: {{ site.posts.first.tags }}"
80
- When I run jekyll
81
- Then the _site directory should exist
82
- And I should see "Post tags: twist" in "_site/2009/05/18/star-wars.html"
83
-
84
- Scenario: Use post.categories variable when categories are in folders
85
- Given I have a movies directory
86
- And I have a movies/scifi directory
87
- And I have a movies/scifi/_posts directory
88
- And I have a _layouts directory
89
- And I have the following post in "movies/scifi":
90
- | title | date | layout | content |
91
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
92
- And I have a simple layout that contains "Post categories: {{ site.posts.first.categories | array_to_sentence_string }}"
93
- When I run jekyll
94
- Then the _site directory should exist
95
- And I should see "Post categories: movies and scifi" in "_site/movies/scifi/2009/03/27/star-wars.html"
96
-
97
- Scenario: Use post.categories variable when category is in YAML
98
- Given I have a _posts directory
99
- And I have a _layouts directory
100
- And I have the following post:
101
- | title | date | layout | category | content |
102
- | Star Wars | 3/27/2009 | simple | movies | Luke, I am your father. |
103
- And I have a simple layout that contains "Post category: {{ site.posts.first.categories }}"
104
- When I run jekyll
105
- Then the _site directory should exist
106
- And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
107
-
108
- Scenario: Use post.categories variable when categories are in YAML
109
- Given I have a _posts directory
110
- And I have a _layouts directory
111
- And I have the following post:
112
- | title | date | layout | categories | content |
113
- | Star Wars | 3/27/2009 | simple | ['movies', 'scifi'] | Luke, I am your father. |
114
- And I have a simple layout that contains "Post categories: {{ site.posts.first.categories | array_to_sentence_string }}"
115
- When I run jekyll
116
- Then the _site directory should exist
117
- And I should see "Post categories: movies and scifi" in "_site/movies/scifi/2009/03/27/star-wars.html"
118
-
119
- Scenario: Disable a post from being published
120
- Given I have a _posts directory
121
- And I have an "index.html" file that contains "Published!"
122
- And I have the following post:
123
- | title | date | layout | published | content |
124
- | Star Wars | 3/27/2009 | simple | false | Luke, I am your father. |
125
- When I run jekyll
126
- Then the _site directory should exist
127
- And the "_site/2009/03/27/star-wars.html" file should not exist
128
- And I should see "Published!" in "_site/index.html"
129
-
130
- Scenario: Use a custom variable
131
- Given I have a _posts directory
132
- And I have a _layouts directory
133
- And I have the following post:
134
- | title | date | layout | author | content |
135
- | Star Wars | 3/27/2009 | simple | Darth Vader | Luke, I am your father. |
136
- And I have a simple layout that contains "Post author: {{ site.posts.first.author }}"
137
- When I run jekyll
138
- Then the _site directory should exist
139
- And I should see "Post author: Darth Vader" in "_site/2009/03/27/star-wars.html"
140
-
141
- Scenario: Previous and next posts title
142
- Given I have a _posts directory
143
- And I have a _layouts directory
144
- And I have the following posts:
145
- | title | date | layout | author | content |
146
- | Star Wars | 3/27/2009 | ordered | Darth Vader | Luke, I am your father. |
147
- | Some like it hot | 4/27/2009 | ordered | Osgood | Nobody is perfect. |
148
- | Terminator | 5/27/2009 | ordered | Arnold | Sayonara, baby |
149
- And I have a ordered layout that contains "Previous post: {{ page.previous.title }} and next post: {{ page.next.title }}"
150
- When I run jekyll
151
- Then the _site directory should exist
152
- And I should see "next post: Some like it hot" in "_site/2009/03/27/star-wars.html"
153
- And I should see "Previous post: Some like it hot" in "_site/2009/05/27/terminator.html"
@@ -1,63 +0,0 @@
1
- Feature: Site configuration
2
- As a hacker who likes to blog
3
- I want to be able to configure jekyll
4
- In order to make setting up a site easier
5
-
6
- Scenario: Change destination directory
7
- Given I have a blank site in "_sourcedir"
8
- And I have an "_sourcedir/index.html" file that contains "Changing source directory"
9
- And I have a configuration file with "source" set to "_sourcedir"
10
- When I run jekyll
11
- Then the _site directory should exist
12
- And I should see "Changing source directory" in "_site/index.html"
13
-
14
- Scenario: Change destination directory
15
- Given I have an "index.html" file that contains "Changing destination directory"
16
- And I have a configuration file with "destination" set to "_mysite"
17
- When I run jekyll
18
- Then the _mysite directory should exist
19
- And I should see "Changing destination directory" in "_mysite/index.html"
20
-
21
- Scenario: Exclude files inline
22
- Given I have an "Rakefile" file that contains "I want to be excluded"
23
- And I have an "README" file that contains "I want to be excluded"
24
- And I have an "index.html" file that contains "I want to be included"
25
- And I have a configuration file with "exclude" set to "Rakefile", "README"
26
- When I run jekyll
27
- Then I should see "I want to be included" in "_site/index.html"
28
- And the "_site/Rakefile" file should not exist
29
- And the "_site/README" file should not exist
30
-
31
- Scenario: Exclude files with YAML array
32
- Given I have an "Rakefile" file that contains "I want to be excluded"
33
- And I have an "README" file that contains "I want to be excluded"
34
- And I have an "index.html" file that contains "I want to be included"
35
- And I have a configuration file with "exclude" set to:
36
- | Value |
37
- | README |
38
- | Rakefile |
39
- When I run jekyll
40
- Then I should see "I want to be included" in "_site/index.html"
41
- And the "_site/Rakefile" file should not exist
42
- And the "_site/README" file should not exist
43
-
44
- Scenario: Use RDiscount for markup
45
- Given I have an "index.markdown" page that contains "[Google](http://google.com)"
46
- And I have a configuration file with "markdown" set to "rdiscount"
47
- When I run jekyll
48
- Then the _site directory should exist
49
- And I should see "<a href="http://google.com">Google</a>" in "_site/index.html"
50
-
51
- Scenario: Use Maruku for markup
52
- Given I have an "index.markdown" page that contains "[Google](http://google.com)"
53
- And I have a configuration file with "markdown" set to "maruku"
54
- When I run jekyll
55
- Then the _site directory should exist
56
- And I should see "<a href='http://google.com'>Google</a>" in "_site/index.html"
57
-
58
- Scenario: Highlight code with pygments
59
- Given I have an "index.html" file that contains "{% highlight ruby %} puts 'Hello world!' {% endhighlight %}"
60
- And I have a configuration file with "pygments" set to "true"
61
- When I run jekyll
62
- Then the _site directory should exist
63
- And I should see "puts 'Hello world!'" in "_site/index.html"
@@ -1,82 +0,0 @@
1
- Feature: Site data
2
- As a hacker who likes to blog
3
- I want to be able to embed data into my site
4
- In order to make the site slightly dynamic
5
-
6
- Scenario: Use page variable in a page
7
- Given I have an "contact.html" page with title "Contact" that contains "{{ page.title }}: email@me.com"
8
- When I run jekyll
9
- Then the _site directory should exist
10
- And I should see "Contact: email@me.com" in "_site/contact.html"
11
-
12
- Scenario: Use site.time variable
13
- Given I have an "index.html" page that contains "{{ site.time }}"
14
- When I run jekyll
15
- Then the _site directory should exist
16
- And I should see today's time in "_site/index.html"
17
-
18
- Scenario: Use site.posts variable for latest post
19
- Given I have a _posts directory
20
- And I have an "index.html" page that contains "{{ site.posts.first.title }}: {{ site.posts.first.url }}"
21
- And I have the following posts:
22
- | title | date | content |
23
- | First Post | 3/25/2009 | My First Post |
24
- | Second Post | 3/26/2009 | My Second Post |
25
- | Third Post | 3/27/2009 | My Third Post |
26
- When I run jekyll
27
- Then the _site directory should exist
28
- And I should see "Third Post: /2009/03/27/third-post.html" in "_site/index.html"
29
-
30
- Scenario: Use site.posts variable in a loop
31
- Given I have a _posts directory
32
- And I have an "index.html" page that contains "{% for post in site.posts %} {{ post.title }} {% endfor %}"
33
- And I have the following posts:
34
- | title | date | content |
35
- | First Post | 3/25/2009 | My First Post |
36
- | Second Post | 3/26/2009 | My Second Post |
37
- | Third Post | 3/27/2009 | My Third Post |
38
- When I run jekyll
39
- Then the _site directory should exist
40
- And I should see "Third Post Second Post First Post" in "_site/index.html"
41
-
42
- Scenario: Use site.categories.code variable
43
- Given I have a _posts directory
44
- And I have an "index.html" page that contains "{% for post in site.categories.code %} {{ post.title }} {% endfor %}"
45
- And I have the following posts:
46
- | title | date | category | content |
47
- | Awesome Hack | 3/26/2009 | code | puts 'Hello World' |
48
- | Delicious Beer | 3/26/2009 | food | 1) Yuengling |
49
- When I run jekyll
50
- Then the _site directory should exist
51
- And I should see "Awesome Hack" in "_site/index.html"
52
-
53
- Scenario: Use site.tags variable
54
- Given I have a _posts directory
55
- And I have an "index.html" page that contains "{% for post in site.tags.beer %} {{ post.content }} {% endfor %}"
56
- And I have the following posts:
57
- | title | date | tag | content |
58
- | Delicious Beer | 3/26/2009 | beer | 1) Yuengling |
59
- When I run jekyll
60
- Then the _site directory should exist
61
- And I should see "Yuengling" in "_site/index.html"
62
-
63
- Scenario: Order Posts by name when on the same date
64
- Given I have a _posts directory
65
- And I have an "index.html" page that contains "{% for post in site.posts %}{{ post.title }}:{{ post.previous.title}},{{ post.next.title}} {% endfor %}"
66
- And I have the following posts:
67
- | title | date | content |
68
- | first | 2/26/2009 | first |
69
- | A | 3/26/2009 | A |
70
- | B | 3/26/2009 | B |
71
- | C | 3/26/2009 | C |
72
- | last | 4/26/2009 | last |
73
- When I run jekyll
74
- Then the _site directory should exist
75
- And I should see "last:C, C:B,last B:A,C A:first,B first:,A" in "_site/index.html"
76
-
77
- Scenario: Use configuration date in site payload
78
- Given I have an "index.html" page that contains "{{ site.url }}"
79
- And I have a configuration file with "url" set to "http://mysite.com"
80
- When I run jekyll
81
- Then the _site directory should exist
82
- And I should see "http://mysite.com" in "_site/index.html"
@@ -1,136 +0,0 @@
1
- Before do
2
- FileUtils.mkdir(TEST_DIR)
3
- Dir.chdir(TEST_DIR)
4
- end
5
-
6
- After do
7
- Dir.chdir(TEST_DIR)
8
- FileUtils.rm_rf(TEST_DIR)
9
- end
10
-
11
- Given /^I have a blank site in "(.*)"$/ do |path|
12
- FileUtils.mkdir(path)
13
- end
14
-
15
- # Like "I have a foo file" but gives a yaml front matter so jekyll actually processes it
16
- Given /^I have an "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text|
17
- File.open(file, 'w') do |f|
18
- f.write <<EOF
19
- ---
20
- #{key || 'layout'}: #{value || 'nil'}
21
- ---
22
- #{text}
23
- EOF
24
- f.close
25
- end
26
- end
27
-
28
- Given /^I have an "(.*)" file that contains "(.*)"$/ do |file, text|
29
- File.open(file, 'w') do |f|
30
- f.write(text)
31
- f.close
32
- end
33
- end
34
-
35
- Given /^I have a (.*) layout that contains "(.*)"$/ do |layout, text|
36
- File.open(File.join('_layouts', layout + '.html'), 'w') do |f|
37
- f.write(text)
38
- f.close
39
- end
40
- end
41
-
42
- Given /^I have a (.*) directory$/ do |dir|
43
- FileUtils.mkdir(dir)
44
- end
45
-
46
- Given /^I have the following posts?(?: (.*) "(.*)")?:$/ do |direction, folder, table|
47
- table.hashes.each do |post|
48
- date = Date.parse(post['date']).strftime('%Y-%m-%d')
49
- title = post['title'].downcase.gsub(/[^\w]/, " ").strip.gsub(/\s+/, '-')
50
-
51
- if direction && direction == "in"
52
- before = folder || '.'
53
- elsif direction && direction == "under"
54
- after = folder || '.'
55
- end
56
-
57
- path = File.join(before || '.', '_posts', after || '.', "#{date}-#{title}.#{post['type'] || 'textile'}")
58
-
59
- matter_hash = {}
60
- %w(title layout tag tags category categories published author).each do |key|
61
- matter_hash[key] = post[key] if post[key]
62
- end
63
- matter = matter_hash.map { |k, v| "#{k}: #{v}\n" }.join.chomp
64
-
65
- content = post['content']
66
- if post['input'] && post['filter']
67
- content = "{{ #{post['input']} | #{post['filter']} }}"
68
- end
69
-
70
- File.open(path, 'w') do |f|
71
- f.write <<EOF
72
- ---
73
- #{matter}
74
- ---
75
- #{content}
76
- EOF
77
- f.close
78
- end
79
- end
80
- end
81
-
82
- Given /^I have a configuration file with "(.*)" set to "(.*)"$/ do |key, value|
83
- File.open('_config.yml', 'w') do |f|
84
- f.write("#{key}: #{value}")
85
- f.close
86
- end
87
- end
88
-
89
- Given /^I have a configuration file with "([^\"]*)" set to:$/ do |key, table|
90
- File.open('_config.yml', 'w') do |f|
91
- f.write("#{key}:\n")
92
- table.hashes.each do |row|
93
- f.write("- #{row["Value"]}\n")
94
- end
95
- f.close
96
- end
97
- end
98
-
99
-
100
- When /^I run jekyll$/ do
101
- run_jekyll
102
- end
103
-
104
- When /^I debug jekyll$/ do
105
- run_jekyll(:debug => true)
106
- end
107
-
108
- When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
109
- File.open(file, 'a') do |f|
110
- f.write(text)
111
- end
112
- end
113
-
114
- Then /^the (.*) directory should exist$/ do |dir|
115
- assert File.directory?(dir)
116
- end
117
-
118
- Then /^the (.*) file should exist$/ do |file|
119
- assert File.file?(file)
120
- end
121
-
122
- Then /^I should see "(.*)" in "(.*)"$/ do |text, file|
123
- assert_match Regexp.new(text), File.open(file).readlines.join
124
- end
125
-
126
- Then /^the "(.*)" file should not exist$/ do |file|
127
- assert !File.exists?(file)
128
- end
129
-
130
- Then /^I should see today's time in "(.*)"$/ do |file|
131
- assert_match Regexp.new(Regexp.escape(Time.now.to_s)), File.open(file).readlines.join
132
- end
133
-
134
- Then /^I should see today's date in "(.*)"$/ do |file|
135
- assert_match Regexp.new(Date.today.to_s), File.open(file).readlines.join
136
- end
@@ -1,16 +0,0 @@
1
- require 'fileutils'
2
- require 'rr'
3
- require 'test/unit'
4
-
5
- World do
6
- include Test::Unit::Assertions
7
- end
8
-
9
- TEST_DIR = File.join('/', 'tmp', 'jekyll')
10
- JEKYLL_PATH = File.join(ENV['PWD'], 'bin', 'jekyll')
11
-
12
- def run_jekyll(opts = {})
13
- command = JEKYLL_PATH
14
- command << " >> /dev/null 2>&1" if opts[:debug].nil?
15
- system command
16
- end
data/jekyll.gemspec DELETED
@@ -1,134 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{jekyll}
5
- s.version = "0.5.2"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Tom Preston-Werner"]
9
- s.date = %q{2009-06-24}
10
- s.default_executable = %q{jekyll}
11
- s.description = %q{Jekyll is a simple, blog aware, static site generator.}
12
- s.email = %q{tom@mojombo.com}
13
- s.executables = ["jekyll"]
14
- s.extra_rdoc_files = [
15
- "README.textile"
16
- ]
17
- s.files = [
18
- ".gitignore",
19
- "History.txt",
20
- "README.textile",
21
- "Rakefile",
22
- "VERSION.yml",
23
- "bin/jekyll",
24
- "features/create_sites.feature",
25
- "features/embed_filters.feature",
26
- "features/pagination.feature",
27
- "features/permalinks.feature",
28
- "features/post_data.feature",
29
- "features/site_configuration.feature",
30
- "features/site_data.feature",
31
- "features/step_definitions/jekyll_steps.rb",
32
- "features/support/env.rb",
33
- "jekyll.gemspec",
34
- "lib/jekyll.rb",
35
- "lib/jekyll/albino.rb",
36
- "lib/jekyll/converters/csv.rb",
37
- "lib/jekyll/converters/mephisto.rb",
38
- "lib/jekyll/converters/mt.rb",
39
- "lib/jekyll/converters/textpattern.rb",
40
- "lib/jekyll/converters/typo.rb",
41
- "lib/jekyll/converters/wordpress.rb",
42
- "lib/jekyll/convertible.rb",
43
- "lib/jekyll/core_ext.rb",
44
- "lib/jekyll/filters.rb",
45
- "lib/jekyll/layout.rb",
46
- "lib/jekyll/page.rb",
47
- "lib/jekyll/pager.rb",
48
- "lib/jekyll/post.rb",
49
- "lib/jekyll/site.rb",
50
- "lib/jekyll/tags/highlight.rb",
51
- "lib/jekyll/tags/include.rb",
52
- "test/helper.rb",
53
- "test/source/_includes/sig.markdown",
54
- "test/source/_layouts/default.html",
55
- "test/source/_layouts/simple.html",
56
- "test/source/_posts/2008-02-02-not-published.textile",
57
- "test/source/_posts/2008-02-02-published.textile",
58
- "test/source/_posts/2008-10-18-foo-bar.textile",
59
- "test/source/_posts/2008-11-21-complex.textile",
60
- "test/source/_posts/2008-12-03-permalinked-post.textile",
61
- "test/source/_posts/2008-12-13-include.markdown",
62
- "test/source/_posts/2009-01-27-array-categories.textile",
63
- "test/source/_posts/2009-01-27-categories.textile",
64
- "test/source/_posts/2009-01-27-category.textile",
65
- "test/source/_posts/2009-03-12-hash-#1.markdown",
66
- "test/source/_posts/2009-05-18-tag.textile",
67
- "test/source/_posts/2009-05-18-tags.textile",
68
- "test/source/_posts/2009-06-22-empty-yaml.textile",
69
- "test/source/_posts/2009-06-22-no-yaml.textile",
70
- "test/source/about.html",
71
- "test/source/category/_posts/2008-9-23-categories.textile",
72
- "test/source/contacts.html",
73
- "test/source/css/screen.css",
74
- "test/source/foo/_posts/bar/2008-12-12-topical-post.textile",
75
- "test/source/index.html",
76
- "test/source/win/_posts/2009-05-24-yaml-linebreak.markdown",
77
- "test/source/z_category/_posts/2008-9-23-categories.textile",
78
- "test/suite.rb",
79
- "test/test_configuration.rb",
80
- "test/test_filters.rb",
81
- "test/test_generated_site.rb",
82
- "test/test_page.rb",
83
- "test/test_pager.rb",
84
- "test/test_post.rb",
85
- "test/test_site.rb",
86
- "test/test_tags.rb"
87
- ]
88
- s.homepage = %q{http://github.com/mojombo/jekyll}
89
- s.rdoc_options = ["--charset=UTF-8"]
90
- s.require_paths = ["lib"]
91
- s.rubyforge_project = %q{jekyll}
92
- s.rubygems_version = %q{1.3.4}
93
- s.summary = %q{Jekyll is a simple, blog aware, static site generator.}
94
- s.test_files = [
95
- "test/helper.rb",
96
- "test/suite.rb",
97
- "test/test_configuration.rb",
98
- "test/test_filters.rb",
99
- "test/test_generated_site.rb",
100
- "test/test_page.rb",
101
- "test/test_pager.rb",
102
- "test/test_post.rb",
103
- "test/test_site.rb",
104
- "test/test_tags.rb"
105
- ]
106
-
107
- if s.respond_to? :specification_version then
108
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
109
- s.specification_version = 3
110
-
111
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
112
- s.add_runtime_dependency(%q<RedCloth>, [">= 4.2.1"])
113
- s.add_runtime_dependency(%q<liquid>, [">= 1.9.0"])
114
- s.add_runtime_dependency(%q<classifier>, [">= 1.3.1"])
115
- s.add_runtime_dependency(%q<maruku>, [">= 0.5.9"])
116
- s.add_runtime_dependency(%q<directory_watcher>, [">= 1.1.1"])
117
- s.add_runtime_dependency(%q<open4>, [">= 0.9.6"])
118
- else
119
- s.add_dependency(%q<RedCloth>, [">= 4.2.1"])
120
- s.add_dependency(%q<liquid>, [">= 1.9.0"])
121
- s.add_dependency(%q<classifier>, [">= 1.3.1"])
122
- s.add_dependency(%q<maruku>, [">= 0.5.9"])
123
- s.add_dependency(%q<directory_watcher>, [">= 1.1.1"])
124
- s.add_dependency(%q<open4>, [">= 0.9.6"])
125
- end
126
- else
127
- s.add_dependency(%q<RedCloth>, [">= 4.2.1"])
128
- s.add_dependency(%q<liquid>, [">= 1.9.0"])
129
- s.add_dependency(%q<classifier>, [">= 1.3.1"])
130
- s.add_dependency(%q<maruku>, [">= 0.5.9"])
131
- s.add_dependency(%q<directory_watcher>, [">= 1.1.1"])
132
- s.add_dependency(%q<open4>, [">= 0.9.6"])
133
- end
134
- end