monad 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.markdown +91 -0
  3. data/Gemfile +1 -1
  4. data/History.markdown +772 -0
  5. data/{README.md → README.markdown} +5 -2
  6. data/Rakefile +163 -1
  7. data/bin/monad +86 -30
  8. data/features/create_sites.feature +54 -25
  9. data/features/data.feature +65 -0
  10. data/features/data_sources.feature +10 -10
  11. data/features/drafts.feature +5 -5
  12. data/features/embed_filters.feature +10 -10
  13. data/features/include_tag.feature +48 -0
  14. data/features/markdown.feature +5 -5
  15. data/features/pagination.feature +38 -10
  16. data/features/permalinks.feature +31 -11
  17. data/features/post_data.feature +41 -41
  18. data/features/post_excerpts.feature +50 -0
  19. data/features/site_configuration.feature +47 -26
  20. data/features/site_data.feature +30 -24
  21. data/features/step_definitions/{monad_steps.rb → jekyll_steps.rb} +66 -52
  22. data/features/support/env.rb +27 -8
  23. data/lib/jekyll.rb +99 -0
  24. data/lib/jekyll/cleaner.rb +73 -0
  25. data/lib/{monad → jekyll}/command.rb +6 -6
  26. data/lib/{monad → jekyll}/commands/build.rb +9 -9
  27. data/lib/jekyll/commands/doctor.rb +67 -0
  28. data/lib/jekyll/commands/new.rb +67 -0
  29. data/lib/jekyll/commands/serve.rb +65 -0
  30. data/lib/{monad → jekyll}/configuration.rb +60 -18
  31. data/lib/{monad → jekyll}/converter.rb +1 -1
  32. data/lib/{monad → jekyll}/converters/identity.rb +1 -1
  33. data/lib/{monad → jekyll}/converters/markdown.rb +2 -2
  34. data/lib/jekyll/converters/markdown/kramdown_parser.rb +29 -0
  35. data/lib/{monad → jekyll}/converters/markdown/maruku_parser.rb +12 -8
  36. data/lib/{monad → jekyll}/converters/markdown/rdiscount_parser.rb +4 -2
  37. data/lib/{monad → jekyll}/converters/markdown/redcarpet_parser.rb +1 -1
  38. data/lib/{monad → jekyll}/converters/textile.rb +1 -1
  39. data/lib/{monad → jekyll}/convertible.rb +39 -17
  40. data/lib/{monad → jekyll}/core_ext.rb +22 -4
  41. data/lib/jekyll/deprecator.rb +36 -0
  42. data/lib/{monad → jekyll}/draft.rb +1 -1
  43. data/lib/{monad → jekyll}/drivers/json_driver.rb +1 -1
  44. data/lib/{monad → jekyll}/drivers/yaml_driver.rb +1 -1
  45. data/lib/{monad → jekyll}/errors.rb +1 -1
  46. data/lib/jekyll/excerpt.rb +113 -0
  47. data/lib/{monad → jekyll}/filters.rb +16 -6
  48. data/lib/{monad → jekyll}/generator.rb +1 -1
  49. data/lib/jekyll/generators/pagination.rb +214 -0
  50. data/lib/{monad → jekyll}/layout.rb +4 -1
  51. data/lib/{monad → jekyll}/mime.types +0 -0
  52. data/lib/{monad → jekyll}/page.rb +36 -39
  53. data/lib/{monad → jekyll}/plugin.rb +1 -1
  54. data/lib/{monad → jekyll}/post.rb +58 -123
  55. data/lib/jekyll/related_posts.rb +59 -0
  56. data/lib/{monad → jekyll}/site.rb +120 -123
  57. data/lib/{monad → jekyll}/static_file.rb +1 -1
  58. data/lib/jekyll/stevenson.rb +89 -0
  59. data/lib/jekyll/tags/gist.rb +48 -0
  60. data/lib/{monad → jekyll}/tags/highlight.rb +3 -3
  61. data/lib/jekyll/tags/include.rb +135 -0
  62. data/lib/{monad → jekyll}/tags/post_url.rb +8 -6
  63. data/lib/jekyll/url.rb +67 -0
  64. data/lib/monad.rb +36 -27
  65. data/lib/site_template/_config.yml +2 -1
  66. data/lib/site_template/_layouts/default.html +21 -23
  67. data/lib/site_template/_layouts/post.html +1 -1
  68. data/lib/site_template/_posts/{0000-00-00-welcome-to-monad.markdown.erb → 0000-00-00-welcome-to-jekyll.markdown.erb} +6 -6
  69. data/lib/site_template/css/main.css +22 -27
  70. data/lib/site_template/index.html +2 -2
  71. data/monad.gemspec +153 -52
  72. data/site/.gitignore +4 -0
  73. data/site/CNAME +1 -0
  74. data/site/README +1 -0
  75. data/site/_config.yml +6 -0
  76. data/site/_includes/analytics.html +32 -0
  77. data/site/_includes/docs_contents.html +16 -0
  78. data/site/_includes/docs_contents_mobile.html +23 -0
  79. data/site/_includes/docs_option.html +11 -0
  80. data/site/_includes/docs_ul.html +20 -0
  81. data/site/_includes/footer.html +15 -0
  82. data/site/_includes/header.html +18 -0
  83. data/site/_includes/news_contents.html +23 -0
  84. data/site/_includes/news_contents_mobile.html +11 -0
  85. data/site/_includes/news_item.html +24 -0
  86. data/site/_includes/primary-nav-items.html +14 -0
  87. data/site/_includes/section_nav.html +22 -0
  88. data/site/_includes/top.html +17 -0
  89. data/site/_layouts/default.html +12 -0
  90. data/site/_layouts/docs.html +23 -0
  91. data/site/_layouts/news.html +19 -0
  92. data/site/_layouts/news_item.html +27 -0
  93. data/site/_posts/2013-05-06-jekyll-1-0-0-released.markdown +23 -0
  94. data/site/_posts/2013-05-08-jekyll-1-0-1-released.markdown +27 -0
  95. data/site/_posts/2013-05-12-jekyll-1-0-2-released.markdown +28 -0
  96. data/site/_posts/2013-06-07-jekyll-1-0-3-released.markdown +25 -0
  97. data/site/_posts/2013-07-14-jekyll-1-1-0-released.markdown +27 -0
  98. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +31 -0
  99. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +20 -0
  100. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +20 -0
  101. data/site/_posts/2013-09-06-jekyll-1-2-0-released.markdown +23 -0
  102. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +19 -0
  103. data/site/css/gridism.css +110 -0
  104. data/site/css/normalize.css +1 -0
  105. data/site/css/pygments.css +70 -0
  106. data/site/css/style.css +946 -0
  107. data/site/docs/configuration.md +373 -0
  108. data/site/docs/contributing.md +128 -0
  109. data/site/docs/datafiles.md +63 -0
  110. data/site/docs/deployment-methods.md +109 -0
  111. data/site/docs/drafts.md +20 -0
  112. data/site/docs/extras.md +56 -0
  113. data/site/docs/frontmatter.md +180 -0
  114. data/site/docs/github-pages.md +91 -0
  115. data/site/docs/heroku.md +9 -0
  116. data/site/docs/history.md +722 -0
  117. data/site/docs/index.md +52 -0
  118. data/site/docs/installation.md +76 -0
  119. data/site/docs/migrations.md +257 -0
  120. data/site/docs/pages.md +86 -0
  121. data/site/docs/pagination.md +211 -0
  122. data/site/docs/permalinks.md +180 -0
  123. data/site/docs/plugins.md +508 -0
  124. data/site/docs/posts.md +181 -0
  125. data/site/docs/quickstart.md +32 -0
  126. data/site/docs/resources.md +46 -0
  127. data/site/docs/sites.md +29 -0
  128. data/site/docs/structure.md +190 -0
  129. data/site/docs/templates.md +319 -0
  130. data/site/docs/troubleshooting.md +150 -0
  131. data/site/docs/upgrading.md +146 -0
  132. data/site/docs/usage.md +63 -0
  133. data/site/docs/variables.md +322 -0
  134. data/site/favicon.png +0 -0
  135. data/site/feed.xml +36 -0
  136. data/site/freenode.txt +1 -0
  137. data/site/img/article-footer.png +0 -0
  138. data/site/img/footer-arrow.png +0 -0
  139. data/site/img/footer-logo.png +0 -0
  140. data/site/img/logo-2x.png +0 -0
  141. data/site/img/octojekyll.png +0 -0
  142. data/site/img/tube.png +0 -0
  143. data/site/img/tube1x.png +0 -0
  144. data/site/index.html +90 -0
  145. data/site/js/modernizr-2.5.3.min.js +4 -0
  146. data/site/news/index.html +10 -0
  147. data/site/news/releases/index.html +10 -0
  148. data/test/helper.rb +6 -3
  149. data/test/source/+/foo.md +7 -0
  150. data/test/source/_data/languages.yml +2 -0
  151. data/test/source/_data/members.yaml +7 -0
  152. data/test/source/_data/products.yml +4 -0
  153. data/test/source/_includes/params.html +7 -0
  154. data/test/source/_layouts/default.html +1 -1
  155. data/test/source/_layouts/post/simple.html +1 -0
  156. data/test/source/_plugins/dummy.rb +1 -1
  157. data/test/source/_posts/2013-01-02-post-excerpt.markdown +1 -1
  158. data/test/source/_posts/2013-07-22-post-excerpt-with-layout.markdown +23 -0
  159. data/test/source/_posts/2013-08-01-mkdn-extension.mkdn +0 -0
  160. data/test/source/deal.with.dots.html +1 -1
  161. data/test/source/products.yml +4 -0
  162. data/test/test_configuration.rb +46 -11
  163. data/test/test_convertible.rb +2 -2
  164. data/test/test_excerpt.rb +78 -0
  165. data/test/test_filters.rb +4 -4
  166. data/test/test_generated_site.rb +13 -13
  167. data/test/test_json_driver.rb +9 -9
  168. data/test/test_kramdown.rb +32 -5
  169. data/test/test_new_command.rb +8 -8
  170. data/test/test_page.rb +12 -3
  171. data/test/test_pager.rb +34 -33
  172. data/test/test_post.rb +34 -26
  173. data/test/test_redcloth.rb +3 -3
  174. data/test/test_related_posts.rb +47 -0
  175. data/test/test_site.rb +102 -44
  176. data/test/test_tags.rb +168 -23
  177. data/test/test_url.rb +28 -0
  178. data/test/test_yaml_driver.rb +6 -6
  179. metadata +215 -137
  180. data/lib/monad/commands/doctor.rb +0 -29
  181. data/lib/monad/commands/new.rb +0 -50
  182. data/lib/monad/commands/serve.rb +0 -33
  183. data/lib/monad/converters/markdown/kramdown_parser.rb +0 -44
  184. data/lib/monad/deprecator.rb +0 -32
  185. data/lib/monad/generators/pagination.rb +0 -143
  186. data/lib/monad/logger.rb +0 -54
  187. data/lib/monad/tags/gist.rb +0 -30
  188. data/lib/monad/tags/include.rb +0 -37
@@ -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
+
@@ -13,7 +13,7 @@ Feature: Data Sources
13
13
  """
14
14
 
15
15
  And I have an "index.html" page that contains "{{ site.jsonip.ip }}"
16
- When I run monad
16
+ When I run jekyll
17
17
  Then the "_site/index.html" file should exist
18
18
  And I should see "\d+\.\d+\.\d+\.\d+" in "_site/index.html"
19
19
 
@@ -22,14 +22,14 @@ Feature: Data Sources
22
22
  """
23
23
  data_sources:
24
24
  - name: languages
25
- path: _data/languages.yaml
25
+ path: _database/languages.yaml
26
26
  type: yaml
27
27
  """
28
28
 
29
29
  And I have an "index.html" page that contains "{% for language in site.languages %}{{language}}{% endfor %}"
30
- And I have a _data directory
31
- And I have a "_data/languages.yaml" file that contains "[java, ruby]"
32
- When I run monad
30
+ And I have a _database directory
31
+ And I have a "_database/languages.yaml" file that contains "[java, ruby]"
32
+ When I run jekyll
33
33
  Then the "_site/index.html" file should exist
34
34
  And I should see "java" in "_site/index.html"
35
35
  And I should see "ruby" in "_site/index.html"
@@ -39,7 +39,7 @@ Feature: Data Sources
39
39
  """
40
40
  data_sources:
41
41
  - name: languages
42
- path: _data/languages.json
42
+ path: _database/languages.json
43
43
  type: json_fs
44
44
  """
45
45
 
@@ -48,7 +48,7 @@ Feature: Data Sources
48
48
  """
49
49
  require 'json'
50
50
 
51
- module Monad
51
+ module Jekyll
52
52
  module Drivers
53
53
  class JsonFsDriver
54
54
  def initialize(options)
@@ -63,13 +63,13 @@ Feature: Data Sources
63
63
  end
64
64
  """
65
65
 
66
- And I have a _data directory
67
- And I have a "_data/languages.json" file with content:
66
+ And I have a _database directory
67
+ And I have a "_database/languages.json" file with content:
68
68
  """
69
69
  ["java", "ruby"]
70
70
  """
71
71
  And I have an "index.html" page that contains "{% for language in site.languages %}{{language}}{% endfor %}"
72
- When I run monad
72
+ When I run jekyll
73
73
  Then the "_site/index.html" file should exist
74
74
  And I should see "java" in "_site/index.html"
75
75
  And I should see "ruby" in "_site/index.html"
@@ -2,14 +2,14 @@ Feature: Draft Posts
2
2
  As a hacker who likes to blog
3
3
  I want to be able to preview drafts locally
4
4
  In order to see if they look alright before publishing
5
-
5
+
6
6
  Scenario: Preview a draft
7
7
  Given I have a configuration file with "permalink" set to "none"
8
8
  And I have a _drafts directory
9
9
  And I have the following draft:
10
10
  | title | date | layout | content |
11
- | Recipe | 3/27/2009 | default | Not baked yet. |
12
- When I run monad with drafts
11
+ | Recipe | 2009-03-27 | default | Not baked yet. |
12
+ When I run jekyll with drafts
13
13
  Then the _site directory should exist
14
14
  And I should see "Not baked yet." in "_site/recipe.html"
15
15
 
@@ -19,7 +19,7 @@ Feature: Draft Posts
19
19
  And I have a _drafts directory
20
20
  And I have the following draft:
21
21
  | title | date | layout | content |
22
- | Recipe | 3/27/2009 | default | Not baked yet. |
23
- When I run monad
22
+ | Recipe | 2009-03-27 | default | Not baked yet. |
23
+ When I run jekyll
24
24
  Then the _site directory should exist
25
25
  And the "_site/recipe.html" file should not exist
@@ -8,9 +8,9 @@ Feature: Embed filters
8
8
  And I have a _layouts directory
9
9
  And I have the following post:
10
10
  | title | date | layout | content |
11
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
11
+ | Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
12
12
  And I have a default layout that contains "{{ site.time | date_to_xmlschema }}"
13
- When I run monad
13
+ When I run jekyll
14
14
  Then the _site directory should exist
15
15
  And I should see today's date in "_site/2009/03/27/star-wars.html"
16
16
 
@@ -19,9 +19,9 @@ Feature: Embed filters
19
19
  And I have a _layouts directory
20
20
  And I have the following post:
21
21
  | title | date | layout | content |
22
- | Star & Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
22
+ | Star & Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
23
23
  And I have a default layout that contains "{{ page.title | xml_escape }}"
24
- When I run monad
24
+ When I run jekyll
25
25
  Then the _site directory should exist
26
26
  And I should see "Star & Wars" in "_site/2009/03/27/star-wars.html"
27
27
 
@@ -30,9 +30,9 @@ Feature: Embed filters
30
30
  And I have a _layouts directory
31
31
  And I have the following post:
32
32
  | title | date | layout | content |
33
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
33
+ | Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
34
34
  And I have a default layout that contains "{{ content | xml_escape }}"
35
- When I run monad
35
+ When I run jekyll
36
36
  Then the _site directory should exist
37
37
  And I should see "7" in "_site/2009/03/27/star-wars.html"
38
38
 
@@ -41,9 +41,9 @@ Feature: Embed filters
41
41
  And I have a _layouts directory
42
42
  And I have the following post:
43
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. |
44
+ | Star Wars | 2009-03-27 | default | [scifi, movies, force] | These aren't the droids you're looking for. |
45
45
  And I have a default layout that contains "{{ page.tags | array_to_sentence_string }}"
46
- When I run monad
46
+ When I run jekyll
47
47
  Then the _site directory should exist
48
48
  And I should see "scifi, movies, and force" in "_site/2009/03/27/star-wars.html"
49
49
 
@@ -52,9 +52,9 @@ Feature: Embed filters
52
52
  And I have a _layouts directory
53
53
  And I have the following post:
54
54
  | title | date | layout | content |
55
- | Star Wars | 3/27/2009 | default | These aren't the droids you're looking for. |
55
+ | Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
56
56
  And I have a default layout that contains "By {{ '_Obi-wan_' | textilize }}"
57
- When I run monad
57
+ When I run jekyll
58
58
  Then the _site directory should exist
59
59
  And I should see "By <p><em>Obi-wan</em></p>" in "_site/2009/03/27/star-wars.html"
60
60
 
@@ -0,0 +1,48 @@
1
+ Feature: Include tags
2
+ In order to share their content across several pages
3
+ As a hacker who likes to blog
4
+ I want to be able to include files in my blog posts
5
+
6
+ Scenario: Include a file with parameters
7
+ Given I have an _includes directory
8
+ And I have an "_includes/header.html" file that contains "<header>My awesome blog header: {{include.param}}</header>"
9
+ And I have an "_includes/params.html" file that contains "Parameters:<ul>{% for param in include %}<li>{{param[0]}} = {{param[1]}}</li>{% endfor %}</ul>"
10
+ And I have an "_includes/ignore.html" file that contains "<footer>My blog footer</footer>"
11
+ And I have a _posts directory
12
+ And I have the following post:
13
+ | title | date | layout | content |
14
+ | Include Files | 2013-03-21 | default | {% include header.html param="myparam" %} |
15
+ | Ignore params if unused | 2013-03-21 | default | {% include ignore.html date="today" %} |
16
+ | List multiple parameters | 2013-03-21 | default | {% include params.html date="today" start="tomorrow" %} |
17
+ | Dont keep parameters | 2013-03-21 | default | {% include ignore.html param="test" %}\n{% include header.html %} |
18
+ | Allow params with spaces and quotes | 2013-04-07 | default | {% include params.html cool="param with spaces" super="\"quoted\"" single='has "quotes"' escaped='\'single\' quotes' %} |
19
+ | Parameter syntax | 2013-04-12 | default | {% include params.html param1_or_2="value" %} |
20
+ | Pass a variable | 2013-06-22 | default | {% assign var = 'some text' %}{% include params.html local=var layout=page.layout %} |
21
+ When I run jekyll
22
+ Then the _site directory should exist
23
+ And I should see "<header>My awesome blog header: myparam</header>" in "_site/2013/03/21/include-files.html"
24
+ And I should not see "myparam" in "_site/2013/03/21/ignore-params-if-unused.html"
25
+ And I should see "<li>date = today</li>" in "_site/2013/03/21/list-multiple-parameters.html"
26
+ And I should see "<li>start = tomorrow</li>" in "_site/2013/03/21/list-multiple-parameters.html"
27
+ And I should not see "<header>My awesome blog header: myparam</header>" in "_site/2013/03/21/dont-keep-parameters.html"
28
+ But I should see "<header>My awesome blog header: </header>" in "_site/2013/03/21/dont-keep-parameters.html"
29
+ And I should see "<li>cool = param with spaces</li>" in "_site/2013/04/07/allow-params-with-spaces-and-quotes.html"
30
+ And I should see "<li>super = &#8220;quoted&#8221;</li>" in "_site/2013/04/07/allow-params-with-spaces-and-quotes.html"
31
+ And I should see "<li>single = has &#8220;quotes&#8221;</li>" in "_site/2013/04/07/allow-params-with-spaces-and-quotes.html"
32
+ And I should see "<li>escaped = &#8216;single&#8217; quotes</li>" in "_site/2013/04/07/allow-params-with-spaces-and-quotes.html"
33
+ And I should see "<li>param1_or_2 = value</li>" in "_site/2013/04/12/parameter-syntax.html"
34
+ And I should see "<li>local = some text</li>" in "_site/2013/06/22/pass-a-variable.html"
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"
@@ -9,8 +9,8 @@ Feature: Markdown
9
9
  And I have a _posts directory
10
10
  And I have the following post:
11
11
  | title | date | content | type |
12
- | Hackers | 3/27/2009 | # My Title | markdown |
13
- When I run monad
12
+ | Hackers | 2009-03-27 | # My Title | markdown |
13
+ When I run jekyll
14
14
  Then the _site directory should exist
15
15
  And I should see "Index" in "_site/index.html"
16
16
  And I should see "<h1 id='my_title'>My Title</h1>" in "_site/2009/03/27/hackers.html"
@@ -22,9 +22,9 @@ Feature: Markdown
22
22
  And I have a _posts directory
23
23
  And I have the following post:
24
24
  | title | date | content | type |
25
- | Hackers | 3/27/2009 | # My Title | markdown |
26
- When I run monad
25
+ | Hackers | 2009-03-27 | # My Title | markdown |
26
+ When I run jekyll
27
27
  Then the _site directory should exist
28
28
  And I should see "Index" in "_site/index.html"
29
29
  And I should see "<h1 id='my_title'>My Title</h1>" in "_site/index.html"
30
-
30
+
@@ -10,11 +10,11 @@ Feature: Site pagination
10
10
  And I have a _posts directory
11
11
  And I have the following posts:
12
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 play3. |
16
- | Wargames4 | 6/27/2009 | default | The only winning move is not to play4. |
17
- When I run monad
13
+ | Wargames | 2009-03-27 | default | The only winning move is not to play. |
14
+ | Wargames2 | 2009-04-27 | default | The only winning move is not to play2. |
15
+ | Wargames3 | 2009-05-27 | default | The only winning move is not to play3. |
16
+ | Wargames4 | 2009-06-27 | default | The only winning move is not to play4. |
17
+ When I run jekyll
18
18
  Then the _site/page<exist> directory should exist
19
19
  And the "_site/page<exist>/index.html" file should exist
20
20
  And I should see "<posts>" in "_site/page<exist>/index.html"
@@ -37,11 +37,11 @@ Feature: Site pagination
37
37
  And I have a _posts directory
38
38
  And I have the following posts:
39
39
  | title | date | layout | content |
40
- | Wargames | 3/27/2009 | default | The only winning move is not to play. |
41
- | Wargames2 | 4/27/2009 | default | The only winning move is not to play2. |
42
- | Wargames3 | 5/27/2009 | default | The only winning move is not to play3. |
43
- | Wargames4 | 6/27/2009 | default | The only winning move is not to play4. |
44
- When I run monad
40
+ | Wargames | 2009-03-27 | default | The only winning move is not to play. |
41
+ | Wargames2 | 2009-04-27 | default | The only winning move is not to play2. |
42
+ | Wargames3 | 2009-05-27 | default | The only winning move is not to play3. |
43
+ | Wargames4 | 2009-06-27 | default | The only winning move is not to play4. |
44
+ When I run jekyll
45
45
  Then the _site/blog/page-<exist> directory should exist
46
46
  And the "_site/blog/page-<exist>/index.html" file should exist
47
47
  And I should see "<posts>" in "_site/blog/page-<exist>/index.html"
@@ -52,3 +52,31 @@ Feature: Site pagination
52
52
  | 2 | 1 | 5 |
53
53
  | 3 | 1 | 6 |
54
54
  | 4 | 1 | 7 |
55
+
56
+ Scenario Outline: Setting a custom pagination path without an index.html in it
57
+ Given I have a configuration file with:
58
+ | key | value |
59
+ | paginate | 1 |
60
+ | paginate_path | /blog/page/:num |
61
+ | permalink | /blog/:year/:month/:day/:title |
62
+ And I have a blog directory
63
+ And I have an "blog/index.html" page that contains "{{ paginator.posts.size }}"
64
+ And I have an "index.html" page that contains "Don't pick me!"
65
+ And I have a _posts directory
66
+ And I have the following posts:
67
+ | title | date | layout | content |
68
+ | Wargames | 2009-03-27 | default | The only winning move is not to play. |
69
+ | Wargames2 | 2009-04-27 | default | The only winning move is not to play2. |
70
+ | Wargames3 | 2009-05-27 | default | The only winning move is not to play3. |
71
+ | Wargames4 | 2009-06-27 | default | The only winning move is not to play4. |
72
+ When I run jekyll
73
+ Then the _site/blog/page/<exist> directory should exist
74
+ And the "_site/blog/page/<exist>/index.html" file should exist
75
+ And I should see "<posts>" in "_site/blog/page/<exist>/index.html"
76
+ And the "_site/blog/page/<not_exist>/index.html" file should not exist
77
+
78
+ Examples:
79
+ | exist | posts | not_exist |
80
+ | 2 | 1 | 5 |
81
+ | 3 | 1 | 6 |
82
+ | 4 | 1 | 7 |
@@ -7,9 +7,9 @@ Feature: Fancy permalinks
7
7
  Given I have a _posts directory
8
8
  And I have the following post:
9
9
  | title | date | content |
10
- | None Permalink Schema | 3/27/2009 | Totally nothing. |
10
+ | None Permalink Schema | 2009-03-27 | Totally nothing. |
11
11
  And I have a configuration file with "permalink" set to "none"
12
- When I run monad
12
+ When I run jekyll
13
13
  Then the _site directory should exist
14
14
  And I should see "Totally nothing." in "_site/none-permalink-schema.html"
15
15
 
@@ -17,9 +17,9 @@ Feature: Fancy permalinks
17
17
  Given I have a _posts directory
18
18
  And I have the following post:
19
19
  | title | date | content |
20
- | Pretty Permalink Schema | 3/27/2009 | Totally wordpress. |
20
+ | Pretty Permalink Schema | 2009-03-27 | Totally wordpress. |
21
21
  And I have a configuration file with "permalink" set to "pretty"
22
- When I run monad
22
+ When I run jekyll
23
23
  Then the _site directory should exist
24
24
  And I should see "Totally wordpress." in "_site/2009/03/27/pretty-permalink-schema/index.html"
25
25
 
@@ -28,7 +28,7 @@ Feature: Fancy permalinks
28
28
  And I have an "awesome.html" page that contains "Totally awesome"
29
29
  And I have an "sitemap.xml" page that contains "Totally uhm, sitemap"
30
30
  And I have a configuration file with "permalink" set to "pretty"
31
- When I run monad
31
+ When I run jekyll
32
32
  Then the _site directory should exist
33
33
  And I should see "Totally index" in "_site/index.html"
34
34
  And I should see "Totally awesome" in "_site/awesome/index.html"
@@ -38,9 +38,9 @@ Feature: Fancy permalinks
38
38
  Given I have a _posts directory
39
39
  And I have the following post:
40
40
  | title | category | date | content |
41
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
41
+ | Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
42
42
  And I have a configuration file with "permalink" set to "/blog/:year/:month/:day/:title"
43
- When I run monad
43
+ When I run jekyll
44
44
  Then the _site directory should exist
45
45
  And I should see "Totally custom." in "_site/blog/2009/03/27/custom-permalink-schema/index.html"
46
46
 
@@ -48,9 +48,9 @@ Feature: Fancy permalinks
48
48
  Given I have a _posts directory
49
49
  And I have the following post:
50
50
  | title | category | date | content |
51
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
51
+ | Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
52
52
  And I have a configuration file with "permalink" set to "/:categories/:title.html"
53
- When I run monad
53
+ When I run jekyll
54
54
  Then the _site directory should exist
55
55
  And I should see "Totally custom." in "_site/stuff/custom-permalink-schema.html"
56
56
 
@@ -58,8 +58,28 @@ Feature: Fancy permalinks
58
58
  Given I have a _posts directory
59
59
  And I have the following post:
60
60
  | title | category | date | content |
61
- | Custom Permalink Schema | stuff | 3/27/2009 | Totally custom. |
61
+ | Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
62
62
  And I have a configuration file with "permalink" set to "/:month-:day-:year/:title.html"
63
- When I run monad
63
+ When I run jekyll
64
64
  Then the _site directory should exist
65
65
  And I should see "Totally custom." in "_site/03-27-2009/custom-permalink-schema.html"
66
+
67
+ Scenario: Use per-post permalink
68
+ Given I have a _posts directory
69
+ And I have the following post:
70
+ | title | date | permalink | content |
71
+ | Some post | 2013-04-14 | /custom/posts/1 | bla bla |
72
+ When I run jekyll
73
+ Then the _site directory should exist
74
+ And the _site/custom/posts/1 directory should exist
75
+ And I should see "bla bla" in "_site/custom/posts/1/index.html"
76
+
77
+ Scenario: Use per-post ending in .html
78
+ Given I have a _posts directory
79
+ And I have the following post:
80
+ | title | date | permalink | content |
81
+ | Some post | 2013-04-14 | /custom/posts/some.html | bla bla |
82
+ When I run jekyll
83
+ Then the _site directory should exist
84
+ And the _site/custom/posts directory should exist
85
+ And I should see "bla bla" in "_site/custom/posts/some.html"
@@ -8,9 +8,9 @@ Feature: Post data
8
8
  And I have a _layouts directory
9
9
  And I have the following post:
10
10
  | title | date | layout | content |
11
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
11
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
12
12
  And I have a simple layout that contains "Post title: {{ page.title }}"
13
- When I run monad
13
+ When I run jekyll
14
14
  Then the _site directory should exist
15
15
  And I should see "Post title: Star Wars" in "_site/2009/03/27/star-wars.html"
16
16
 
@@ -19,9 +19,9 @@ Feature: Post data
19
19
  And I have a _layouts directory
20
20
  And I have the following post:
21
21
  | title | date | layout | content |
22
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
22
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
23
23
  And I have a simple layout that contains "Post url: {{ page.url }}"
24
- When I run monad
24
+ When I run jekyll
25
25
  Then the _site directory should exist
26
26
  And I should see "Post url: /2009/03/27/star-wars.html" in "_site/2009/03/27/star-wars.html"
27
27
 
@@ -30,9 +30,9 @@ Feature: Post data
30
30
  And I have a _layouts directory
31
31
  And I have the following post:
32
32
  | title | date | layout | content |
33
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
33
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
34
34
  And I have a simple layout that contains "Post date: {{ page.date | date_to_string }}"
35
- When I run monad
35
+ When I run jekyll
36
36
  Then the _site directory should exist
37
37
  And I should see "Post date: 27 Mar 2009" in "_site/2009/03/27/star-wars.html"
38
38
 
@@ -41,9 +41,9 @@ Feature: Post data
41
41
  And I have a _layouts directory
42
42
  And I have the following post:
43
43
  | title | date | layout | content |
44
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
44
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
45
45
  And I have a simple layout that contains "Post id: {{ page.id }}"
46
- When I run monad
46
+ When I run jekyll
47
47
  Then the _site directory should exist
48
48
  And I should see "Post id: /2009/03/27/star-wars" in "_site/2009/03/27/star-wars.html"
49
49
 
@@ -52,9 +52,9 @@ Feature: Post data
52
52
  And I have a _layouts directory
53
53
  And I have the following post:
54
54
  | title | date | layout | content |
55
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
55
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
56
56
  And I have a simple layout that contains "Post content: {{ content }}"
57
- When I run monad
57
+ When I run jekyll
58
58
  Then the _site directory should exist
59
59
  And I should see "Post content: <p>Luke, I am your father.</p>" in "_site/2009/03/27/star-wars.html"
60
60
 
@@ -64,9 +64,9 @@ Feature: Post data
64
64
  And I have a _layouts directory
65
65
  And I have the following post in "movies":
66
66
  | title | date | layout | content |
67
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
67
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
68
68
  And I have a simple layout that contains "Post category: {{ page.categories }}"
69
- When I run monad
69
+ When I run jekyll
70
70
  Then the _site directory should exist
71
71
  And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
72
72
 
@@ -75,9 +75,9 @@ Feature: Post data
75
75
  And I have a _layouts directory
76
76
  And I have the following post:
77
77
  | title | date | layout | tag | content |
78
- | Star Wars | 5/18/2009 | simple | twist | Luke, I am your father. |
78
+ | Star Wars | 2009-05-18 | simple | twist | Luke, I am your father. |
79
79
  And I have a simple layout that contains "Post tags: {{ page.tags }}"
80
- When I run monad
80
+ When I run jekyll
81
81
  Then the _site directory should exist
82
82
  And I should see "Post tags: twist" in "_site/2009/05/18/star-wars.html"
83
83
 
@@ -88,9 +88,9 @@ Feature: Post data
88
88
  And I have a _layouts directory
89
89
  And I have the following post in "scifi/movies":
90
90
  | title | date | layout | content |
91
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
91
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
92
92
  And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
93
- When I run monad
93
+ When I run jekyll
94
94
  Then the _site directory should exist
95
95
  And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
96
96
 
@@ -101,9 +101,9 @@ Feature: Post data
101
101
  And I have a _layouts directory
102
102
  And I have the following post in "scifi/Movies":
103
103
  | title | date | layout | content |
104
- | Star Wars | 3/27/2009 | simple | Luke, I am your father. |
104
+ | Star Wars | 2009-03-27 | simple | Luke, I am your father. |
105
105
  And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
106
- When I run monad
106
+ When I run jekyll
107
107
  Then the _site directory should exist
108
108
  And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
109
109
 
@@ -112,31 +112,31 @@ Feature: Post data
112
112
  And I have a _layouts directory
113
113
  And I have the following post:
114
114
  | title | date | layout | category | content |
115
- | Star Wars | 3/27/2009 | simple | movies | Luke, I am your father. |
115
+ | Star Wars | 2009-03-27 | simple | movies | Luke, I am your father. |
116
116
  And I have a simple layout that contains "Post category: {{ page.categories }}"
117
- When I run monad
117
+ When I run jekyll
118
118
  Then the _site directory should exist
119
119
  And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
120
-
120
+
121
121
  Scenario: Use post.categories variable when category is in YAML and is mixed-case
122
122
  Given I have a _posts directory
123
123
  And I have a _layouts directory
124
124
  And I have the following post:
125
125
  | title | date | layout | category | content |
126
- | Star Wars | 3/27/2009 | simple | Movies | Luke, I am your father. |
126
+ | Star Wars | 2009-03-27 | simple | Movies | Luke, I am your father. |
127
127
  And I have a simple layout that contains "Post category: {{ page.categories }}"
128
- When I run monad
128
+ When I run jekyll
129
129
  Then the _site directory should exist
130
130
  And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
131
-
131
+
132
132
  Scenario: Use post.categories variable when category is in YAML
133
133
  Given I have a _posts directory
134
134
  And I have a _layouts directory
135
135
  And I have the following post:
136
136
  | title | date | layout | category | content |
137
- | Star Wars | 3/27/2009 | simple | movies | Luke, I am your father. |
137
+ | Star Wars | 2009-03-27 | simple | movies | Luke, I am your father. |
138
138
  And I have a simple layout that contains "Post category: {{ page.categories }}"
139
- When I run monad
139
+ When I run jekyll
140
140
  Then the _site directory should exist
141
141
  And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
142
142
 
@@ -145,10 +145,10 @@ Feature: Post data
145
145
  And I have a _layouts directory
146
146
  And I have the following posts:
147
147
  | title | date | layout | categories | content |
148
- | Star Wars | 3/27/2009 | simple | ['scifi', 'Movies'] | Luke, I am your father. |
149
- | Star Trek | 3/17/2013 | simple | ['SciFi', 'movies'] | Jean Luc, I am your father. |
148
+ | Star Wars | 2009-03-27 | simple | ['scifi', 'Movies'] | Luke, I am your father. |
149
+ | Star Trek | 2013-03-17 | simple | ['SciFi', 'movies'] | Jean Luc, I am your father. |
150
150
  And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
151
- When I run monad
151
+ When I run jekyll
152
152
  Then the _site directory should exist
153
153
  And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
154
154
  And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2013/03/17/star-trek.html"
@@ -157,8 +157,8 @@ Feature: Post data
157
157
  Given I have a <dir>/_posts directory
158
158
  And I have the following post in "<dir>":
159
159
  | title | type | date | content |
160
- | my-post | html | 4/12/2013 | Source path: {{ page.path }} |
161
- When I run monad
160
+ | my-post | html | 2013-04-12 | Source path: {{ page.path }} |
161
+ When I run jekyll
162
162
  Then the _site directory should exist
163
163
  And I should see "Source path: <path_prefix>_posts/2013-04-12-my-post.html" in "_site/<dir>/2013/04/12/my-post.html"
164
164
 
@@ -172,8 +172,8 @@ Feature: Post data
172
172
  Given I have a _posts directory
173
173
  And I have the following post:
174
174
  | title | date | path | content |
175
- | override | 4/12/2013 | override-path.html | Custom path: {{ page.path }} |
176
- When I run monad
175
+ | override | 2013-04-12 | override-path.html | Custom path: {{ page.path }} |
176
+ When I run jekyll
177
177
  Then the _site directory should exist
178
178
  And I should see "Custom path: override-path.html" in "_site/2013/04/12/override.html"
179
179
 
@@ -182,8 +182,8 @@ Feature: Post data
182
182
  And I have an "index.html" file that contains "Published!"
183
183
  And I have the following post:
184
184
  | title | date | layout | published | content |
185
- | Star Wars | 3/27/2009 | simple | false | Luke, I am your father. |
186
- When I run monad
185
+ | Star Wars | 2009-03-27 | simple | false | Luke, I am your father. |
186
+ When I run jekyll
187
187
  Then the _site directory should exist
188
188
  And the "_site/2009/03/27/star-wars.html" file should not exist
189
189
  And I should see "Published!" in "_site/index.html"
@@ -193,9 +193,9 @@ Feature: Post data
193
193
  And I have a _layouts directory
194
194
  And I have the following post:
195
195
  | title | date | layout | author | content |
196
- | Star Wars | 3/27/2009 | simple | Darth Vader | Luke, I am your father. |
196
+ | Star Wars | 2009-03-27 | simple | Darth Vader | Luke, I am your father. |
197
197
  And I have a simple layout that contains "Post author: {{ page.author }}"
198
- When I run monad
198
+ When I run jekyll
199
199
  Then the _site directory should exist
200
200
  And I should see "Post author: Darth Vader" in "_site/2009/03/27/star-wars.html"
201
201
 
@@ -204,11 +204,11 @@ Feature: Post data
204
204
  And I have a _layouts directory
205
205
  And I have the following posts:
206
206
  | title | date | layout | author | content |
207
- | Star Wars | 3/27/2009 | ordered | Darth Vader | Luke, I am your father. |
208
- | Some like it hot | 4/27/2009 | ordered | Osgood | Nobody is perfect. |
209
- | Terminator | 5/27/2009 | ordered | Arnold | Sayonara, baby |
207
+ | Star Wars | 2009-03-27 | ordered | Darth Vader | Luke, I am your father. |
208
+ | Some like it hot | 2009-04-27 | ordered | Osgood | Nobody is perfect. |
209
+ | Terminator | 2009-05-27 | ordered | Arnold | Sayonara, baby |
210
210
  And I have a ordered layout that contains "Previous post: {{ page.previous.title }} and next post: {{ page.next.title }}"
211
- When I run monad
211
+ When I run jekyll
212
212
  Then the _site directory should exist
213
213
  And I should see "next post: Some like it hot" in "_site/2009/03/27/star-wars.html"
214
214
  And I should see "Previous post: Some like it hot" in "_site/2009/05/27/terminator.html"