jekyll 2.2.0 → 2.3.0

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

Potentially problematic release.


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

Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/README.markdown +1 -1
  3. data/lib/jekyll.rb +0 -1
  4. data/lib/jekyll/collection.rb +18 -3
  5. data/lib/jekyll/command.rb +0 -25
  6. data/lib/jekyll/commands/build.rb +7 -2
  7. data/lib/jekyll/commands/help.rb +33 -0
  8. data/lib/jekyll/configuration.rb +36 -28
  9. data/lib/jekyll/converters/markdown/kramdown_parser.rb +1 -1
  10. data/lib/jekyll/convertible.rb +43 -20
  11. data/lib/jekyll/deprecator.rb +15 -8
  12. data/lib/jekyll/document.rb +21 -4
  13. data/lib/jekyll/filters.rb +27 -1
  14. data/lib/jekyll/frontmatter_defaults.rb +46 -12
  15. data/lib/jekyll/plugin.rb +10 -1
  16. data/lib/jekyll/post.rb +6 -13
  17. data/lib/jekyll/related_posts.rb +2 -2
  18. data/lib/jekyll/renderer.rb +7 -2
  19. data/lib/jekyll/site.rb +5 -7
  20. data/lib/jekyll/static_file.rb +24 -4
  21. data/lib/jekyll/tags/include.rb +3 -1
  22. data/lib/jekyll/tags/post_url.rb +2 -2
  23. data/lib/jekyll/utils.rb +88 -69
  24. data/lib/jekyll/version.rb +1 -1
  25. data/lib/site_template/_config.yml +6 -4
  26. data/lib/site_template/_includes/footer.html +43 -49
  27. data/lib/site_template/_includes/head.html +3 -4
  28. data/lib/site_template/_includes/header.html +9 -10
  29. data/lib/site_template/_layouts/default.html +6 -5
  30. data/lib/site_template/_layouts/page.html +3 -3
  31. data/lib/site_template/_layouts/post.html +4 -4
  32. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +6 -5
  33. data/lib/site_template/_sass/_base.scss +203 -0
  34. data/lib/site_template/_sass/_layout.scss +236 -0
  35. data/lib/site_template/_sass/_syntax-highlighting.scss +67 -0
  36. data/lib/site_template/css/main.scss +49 -0
  37. data/lib/site_template/feed.xml +1 -1
  38. data/lib/site_template/index.html +7 -4
  39. metadata +24 -431
  40. data/.gitignore +0 -15
  41. data/.travis.yml +0 -27
  42. data/CONTRIBUTING.markdown +0 -91
  43. data/Gemfile +0 -2
  44. data/History.markdown +0 -1310
  45. data/Rakefile +0 -268
  46. data/cucumber.yml +0 -3
  47. data/docs/jp/CONTRIBUTING.jp.markdown +0 -93
  48. data/docs/jp/README.jp.markdown +0 -68
  49. data/features/collections.feature +0 -145
  50. data/features/create_sites.feature +0 -158
  51. data/features/data.feature +0 -105
  52. data/features/drafts.feature +0 -46
  53. data/features/embed_filters.feature +0 -107
  54. data/features/frontmatter_defaults.feature +0 -136
  55. data/features/include_tag.feature +0 -68
  56. data/features/markdown.feature +0 -67
  57. data/features/pagination.feature +0 -82
  58. data/features/permalinks.feature +0 -85
  59. data/features/post_data.feature +0 -261
  60. data/features/post_excerpts.feature +0 -50
  61. data/features/rendering.feature +0 -34
  62. data/features/site_configuration.feature +0 -283
  63. data/features/site_data.feature +0 -107
  64. data/features/step_definitions/jekyll_steps.rb +0 -201
  65. data/features/support/env.rb +0 -65
  66. data/jekyll.gemspec +0 -66
  67. data/lib/site_template/css/main.css +0 -410
  68. data/script/bootstrap +0 -4
  69. data/script/branding +0 -11
  70. data/script/cibuild +0 -7
  71. data/script/console +0 -38
  72. data/script/proof +0 -22
  73. data/script/rebund +0 -140
  74. data/script/test +0 -17
  75. data/site/.gitignore +0 -4
  76. data/site/CNAME +0 -1
  77. data/site/README +0 -1
  78. data/site/_config.yml +0 -9
  79. data/site/_data/docs.yml +0 -46
  80. data/site/_includes/analytics.html +0 -30
  81. data/site/_includes/anchor_links.html +0 -32
  82. data/site/_includes/css/font-awesome.css +0 -44
  83. data/site/_includes/css/gridism.css +0 -110
  84. data/site/_includes/css/normalize.css +0 -1
  85. data/site/_includes/css/pygments.css +0 -72
  86. data/site/_includes/css/style.css +0 -1045
  87. data/site/_includes/docs_contents.html +0 -8
  88. data/site/_includes/docs_contents_mobile.html +0 -10
  89. data/site/_includes/docs_option.html +0 -11
  90. data/site/_includes/docs_ul.html +0 -20
  91. data/site/_includes/footer.html +0 -15
  92. data/site/_includes/header.html +0 -18
  93. data/site/_includes/news_contents.html +0 -33
  94. data/site/_includes/news_contents_mobile.html +0 -11
  95. data/site/_includes/news_item.html +0 -24
  96. data/site/_includes/primary-nav-items.html +0 -17
  97. data/site/_includes/section_nav.html +0 -22
  98. data/site/_includes/top.html +0 -17
  99. data/site/_layouts/default.html +0 -13
  100. data/site/_layouts/docs.html +0 -23
  101. data/site/_layouts/news.html +0 -19
  102. data/site/_layouts/news_item.html +0 -27
  103. data/site/_posts/2013-05-06-jekyll-1-0-0-released.markdown +0 -23
  104. data/site/_posts/2013-05-08-jekyll-1-0-1-released.markdown +0 -27
  105. data/site/_posts/2013-05-12-jekyll-1-0-2-released.markdown +0 -28
  106. data/site/_posts/2013-06-07-jekyll-1-0-3-released.markdown +0 -25
  107. data/site/_posts/2013-07-14-jekyll-1-1-0-released.markdown +0 -27
  108. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +0 -31
  109. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +0 -20
  110. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +0 -20
  111. data/site/_posts/2013-09-06-jekyll-1-2-0-released.markdown +0 -23
  112. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +0 -19
  113. data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +0 -19
  114. data/site/_posts/2013-11-04-jekyll-1-3-0-released.markdown +0 -43
  115. data/site/_posts/2013-11-26-jekyll-1-3-1-released.markdown +0 -21
  116. data/site/_posts/2013-12-07-jekyll-1-4-0-released.markdown +0 -30
  117. data/site/_posts/2013-12-09-jekyll-1-4-1-released.markdown +0 -20
  118. data/site/_posts/2013-12-16-jekyll-1-4-2-released.markdown +0 -18
  119. data/site/_posts/2014-01-13-jekyll-1-4-3-released.markdown +0 -26
  120. data/site/_posts/2014-03-24-jekyll-1-5-0-released.markdown +0 -19
  121. data/site/_posts/2014-03-27-jekyll-1-5-1-released.markdown +0 -26
  122. data/site/_posts/2014-05-06-jekyll-turns-2-0-0.markdown +0 -31
  123. data/site/_posts/2014-05-08-jekyll-2-0-3-released.markdown +0 -18
  124. data/site/_posts/2014-06-04-jekyll-stickers-1-dollar-stickermule.markdown +0 -19
  125. data/site/_posts/2014-06-28-jekyll-turns-21-i-mean-2-1-0.markdown +0 -31
  126. data/site/_posts/2014-07-01-jekyll-2-1-1-released.markdown +0 -30
  127. data/site/_posts/2014-07-29-jekyll-2-2-0-released.markdown +0 -19
  128. data/site/css/screen.css +0 -31
  129. data/site/docs/assets.md +0 -66
  130. data/site/docs/collections.md +0 -259
  131. data/site/docs/configuration.md +0 -536
  132. data/site/docs/continuous-integration.md +0 -177
  133. data/site/docs/contributing.md +0 -133
  134. data/site/docs/datafiles.md +0 -108
  135. data/site/docs/deployment-methods.md +0 -127
  136. data/site/docs/drafts.md +0 -21
  137. data/site/docs/extras.md +0 -18
  138. data/site/docs/frontmatter.md +0 -191
  139. data/site/docs/github-pages.md +0 -91
  140. data/site/docs/history.md +0 -1514
  141. data/site/docs/index.md +0 -58
  142. data/site/docs/installation.md +0 -106
  143. data/site/docs/migrations.md +0 -11
  144. data/site/docs/pages.md +0 -86
  145. data/site/docs/pagination.md +0 -212
  146. data/site/docs/permalinks.md +0 -188
  147. data/site/docs/plugins.md +0 -561
  148. data/site/docs/posts.md +0 -211
  149. data/site/docs/quickstart.md +0 -26
  150. data/site/docs/resources.md +0 -43
  151. data/site/docs/sites.md +0 -29
  152. data/site/docs/structure.md +0 -190
  153. data/site/docs/templates.md +0 -376
  154. data/site/docs/troubleshooting.md +0 -147
  155. data/site/docs/upgrading.md +0 -146
  156. data/site/docs/usage.md +0 -74
  157. data/site/docs/variables.md +0 -382
  158. data/site/docs/windows.md +0 -44
  159. data/site/favicon.ico +0 -0
  160. data/site/feed.xml +0 -48
  161. data/site/fonts/FontAwesome.otf +0 -0
  162. data/site/fonts/fontawesome-webfont.eot +0 -0
  163. data/site/fonts/fontawesome-webfont.svg +0 -504
  164. data/site/fonts/fontawesome-webfont.ttf +0 -0
  165. data/site/fonts/fontawesome-webfont.woff +0 -0
  166. data/site/freenode.txt +0 -1
  167. data/site/img/article-footer.png +0 -0
  168. data/site/img/footer-arrow.png +0 -0
  169. data/site/img/footer-logo.png +0 -0
  170. data/site/img/jekyll-sticker.jpg +0 -0
  171. data/site/img/logo-2x.png +0 -0
  172. data/site/img/logo-rss.png +0 -0
  173. data/site/img/octojekyll.png +0 -0
  174. data/site/index.html +0 -90
  175. data/site/js/html5shiv.min.js +0 -4
  176. data/site/js/respond.min.js +0 -5
  177. data/site/news/index.html +0 -10
  178. data/site/news/releases/index.html +0 -10
  179. data/test/fixtures/broken_front_matter1.erb +0 -5
  180. data/test/fixtures/broken_front_matter2.erb +0 -4
  181. data/test/fixtures/broken_front_matter3.erb +0 -7
  182. data/test/fixtures/exploit_front_matter.erb +0 -4
  183. data/test/fixtures/front_matter.erb +0 -4
  184. data/test/helper.rb +0 -80
  185. data/test/source/+/%# +.md +0 -6
  186. data/test/source/+/foo.md +0 -7
  187. data/test/source/.htaccess +0 -8
  188. data/test/source/_config.dev.toml +0 -2
  189. data/test/source/_data/categories/dairy.yaml +0 -6
  190. data/test/source/_data/languages.yml +0 -2
  191. data/test/source/_data/members.json +0 -12
  192. data/test/source/_data/members.yaml +0 -7
  193. data/test/source/_data/products.yml +0 -4
  194. data/test/source/_drafts/draft-properties.text +0 -11
  195. data/test/source/_includes/include.html +0 -1
  196. data/test/source/_includes/params.html +0 -7
  197. data/test/source/_includes/sig.markdown +0 -3
  198. data/test/source/_layouts/default.html +0 -27
  199. data/test/source/_layouts/post/simple.html +0 -1
  200. data/test/source/_layouts/simple.html +0 -1
  201. data/test/source/_methods/_do_not_read_me.md +0 -5
  202. data/test/source/_methods/configuration.md +0 -8
  203. data/test/source/_methods/sanitized_path.md +0 -5
  204. data/test/source/_methods/site/_dont_include_me_either.md +0 -5
  205. data/test/source/_methods/site/generate.md +0 -6
  206. data/test/source/_methods/site/initialize.md +0 -4
  207. data/test/source/_methods/um_hi.md +0 -6
  208. data/test/source/_plugins/dummy.rb +0 -8
  209. data/test/source/_posts/2008-02-02-not-published.textile +0 -8
  210. data/test/source/_posts/2008-02-02-published.textile +0 -8
  211. data/test/source/_posts/2008-10-18-foo-bar.textile +0 -8
  212. data/test/source/_posts/2008-11-21-complex.textile +0 -8
  213. data/test/source/_posts/2008-12-03-permalinked-post.textile +0 -9
  214. data/test/source/_posts/2008-12-13-include.markdown +0 -8
  215. data/test/source/_posts/2009-01-27-array-categories.textile +0 -10
  216. data/test/source/_posts/2009-01-27-categories.textile +0 -7
  217. data/test/source/_posts/2009-01-27-category.textile +0 -7
  218. data/test/source/_posts/2009-01-27-empty-categories.textile +0 -7
  219. data/test/source/_posts/2009-01-27-empty-category.textile +0 -7
  220. data/test/source/_posts/2009-01-27-no-category.textile +0 -6
  221. data/test/source/_posts/2009-03-12-hash-#1.markdown +0 -6
  222. data/test/source/_posts/2009-05-18-empty-tag.textile +0 -6
  223. data/test/source/_posts/2009-05-18-empty-tags.textile +0 -6
  224. data/test/source/_posts/2009-05-18-tag.textile +0 -6
  225. data/test/source/_posts/2009-05-18-tags.textile +0 -9
  226. data/test/source/_posts/2009-06-22-empty-yaml.textile +0 -3
  227. data/test/source/_posts/2009-06-22-no-yaml.textile +0 -1
  228. data/test/source/_posts/2010-01-08-triple-dash.markdown +0 -5
  229. data/test/source/_posts/2010-01-09-date-override.textile +0 -7
  230. data/test/source/_posts/2010-01-09-time-override.textile +0 -7
  231. data/test/source/_posts/2010-01-09-timezone-override.textile +0 -7
  232. data/test/source/_posts/2010-01-16-override-data.textile +0 -4
  233. data/test/source/_posts/2011-04-12-md-extension.md +0 -7
  234. data/test/source/_posts/2011-04-12-text-extension.text +0 -0
  235. data/test/source/_posts/2013-01-02-post-excerpt.markdown +0 -14
  236. data/test/source/_posts/2013-01-12-nil-layout.textile +0 -6
  237. data/test/source/_posts/2013-01-12-no-layout.textile +0 -5
  238. data/test/source/_posts/2013-03-19-not-a-post.markdown/.gitkeep +0 -0
  239. data/test/source/_posts/2013-04-11-custom-excerpt.markdown +0 -10
  240. data/test/source/_posts/2013-05-10-number-category.textile +0 -7
  241. data/test/source/_posts/2013-07-22-post-excerpt-with-layout.markdown +0 -23
  242. data/test/source/_posts/2013-08-01-mkdn-extension.mkdn +0 -0
  243. data/test/source/_posts/2013-12-17-include-variable-filters.markdown +0 -21
  244. data/test/source/_posts/2013-12-20-properties.text +0 -11
  245. data/test/source/_posts/2014-01-06-permalink-traversal.md +0 -5
  246. data/test/source/_posts/2014-03-03-yaml-with-dots.md +0 -5
  247. data/test/source/_posts/2014-03-22-escape-+ %20[].markdown +0 -6
  248. data/test/source/_posts/es/2008-11-21-nested.textile +0 -8
  249. data/test/source/_sass/_grid.scss +0 -1
  250. data/test/source/_slides/example-slide-1.html +0 -4
  251. data/test/source/_slides/example-slide-2.html +0 -7
  252. data/test/source/_slides/example-slide-3.html +0 -5
  253. data/test/source/_with.dots/all.dots/2.4.0.md +0 -5
  254. data/test/source/_with.dots/file.with.dots.md +0 -0
  255. data/test/source/about.html +0 -6
  256. data/test/source/category/_posts/2008-9-23-categories.textile +0 -6
  257. data/test/source/contacts.html +0 -5
  258. data/test/source/contacts/bar.html +0 -5
  259. data/test/source/contacts/index.html +0 -5
  260. data/test/source/css/main.scss +0 -4
  261. data/test/source/css/screen.css +0 -76
  262. data/test/source/deal.with.dots.html +0 -7
  263. data/test/source/environment.html +0 -5
  264. data/test/source/exploit.md +0 -5
  265. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +0 -8
  266. data/test/source/index.html +0 -22
  267. data/test/source/js/coffeescript.coffee +0 -10
  268. data/test/source/pgp.key +0 -2
  269. data/test/source/products.yml +0 -4
  270. data/test/source/properties.html +0 -8
  271. data/test/source/sitemap.xml +0 -32
  272. data/test/source/static_files.html +0 -4
  273. data/test/source/symlink-test/symlinked-file +0 -22
  274. data/test/source/unpublished.html +0 -7
  275. data/test/source/win/_posts/2009-05-24-yaml-linebreak.markdown +0 -7
  276. data/test/source/z_category/_posts/2008-9-23-categories.textile +0 -6
  277. data/test/suite.rb +0 -11
  278. data/test/test_cleaner.rb +0 -77
  279. data/test/test_coffeescript.rb +0 -49
  280. data/test/test_collections.rb +0 -224
  281. data/test/test_command.rb +0 -53
  282. data/test/test_configuration.rb +0 -201
  283. data/test/test_convertible.rb +0 -49
  284. data/test/test_document.rb +0 -193
  285. data/test/test_draft.rb +0 -56
  286. data/test/test_entry_filter.rb +0 -124
  287. data/test/test_excerpt.rb +0 -131
  288. data/test/test_filters.rb +0 -207
  289. data/test/test_generated_site.rb +0 -97
  290. data/test/test_kramdown.rb +0 -62
  291. data/test/test_layout_reader.rb +0 -34
  292. data/test/test_liquid_extensions.rb +0 -31
  293. data/test/test_log_adapter.rb +0 -59
  294. data/test/test_new_command.rb +0 -104
  295. data/test/test_page.rb +0 -254
  296. data/test/test_path_sanitization.rb +0 -18
  297. data/test/test_post.rb +0 -741
  298. data/test/test_rdiscount.rb +0 -22
  299. data/test/test_redcarpet.rb +0 -77
  300. data/test/test_redcloth.rb +0 -86
  301. data/test/test_related_posts.rb +0 -47
  302. data/test/test_sass.rb +0 -26
  303. data/test/test_site.rb +0 -452
  304. data/test/test_tags.rb +0 -509
  305. data/test/test_url.rb +0 -28
  306. data/test/test_utils.rb +0 -67
@@ -1,201 +0,0 @@
1
- def file_content_from_hash(input_hash)
2
- matter_hash = input_hash.reject { |k, v| k == "content" }
3
- matter = matter_hash.map { |k, v| "#{k}: #{v}\n" }.join.chomp
4
-
5
- content = if input_hash['input'] && input_hash['filter']
6
- "{{ #{input_hash['input']} | #{input_hash['filter']} }}"
7
- else
8
- input_hash['content']
9
- end
10
-
11
- <<EOF
12
- ---
13
- #{matter}
14
- ---
15
- #{content}
16
- EOF
17
- end
18
-
19
- Before do
20
- FileUtils.mkdir_p(TEST_DIR) unless File.exist?(TEST_DIR)
21
- Dir.chdir(TEST_DIR)
22
- end
23
-
24
- After do
25
- FileUtils.rm_rf(TEST_DIR) if File.exists?(TEST_DIR)
26
- FileUtils.rm(JEKYLL_COMMAND_OUTPUT_FILE) if File.exists?(JEKYLL_COMMAND_OUTPUT_FILE)
27
- end
28
-
29
- World(Test::Unit::Assertions)
30
-
31
- Given /^I have a blank site in "(.*)"$/ do |path|
32
- FileUtils.mkdir_p(path) unless File.exist?(path)
33
- end
34
-
35
- Given /^I do not have a "(.*)" directory$/ do |path|
36
- File.directory?("#{TEST_DIR}/#{path}")
37
- end
38
-
39
- # Like "I have a foo file" but gives a yaml front matter so jekyll actually processes it
40
- Given /^I have an? "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text|
41
- File.open(file, 'w') do |f|
42
- f.write <<EOF
43
- ---
44
- #{key || 'layout'}: #{value || 'nil'}
45
- ---
46
- #{text}
47
- EOF
48
- end
49
- end
50
-
51
- Given /^I have an? "(.*)" file that contains "(.*)"$/ do |file, text|
52
- File.open(file, 'w') do |f|
53
- f.write(text)
54
- end
55
- end
56
-
57
- Given /^I have an? (.*) (layout|theme) that contains "(.*)"$/ do |name, type, text|
58
- folder = if type == 'layout'
59
- '_layouts'
60
- else
61
- '_theme'
62
- end
63
- destination_file = File.join(folder, name + '.html')
64
- destination_path = File.dirname(destination_file)
65
- unless File.exist?(destination_path)
66
- FileUtils.mkdir_p(destination_path)
67
- end
68
- File.open(destination_file, 'w') do |f|
69
- f.write(text)
70
- end
71
- end
72
-
73
- Given /^I have an? "(.*)" file with content:$/ do |file, text|
74
- File.open(file, 'w') do |f|
75
- f.write(text)
76
- end
77
- end
78
-
79
- Given /^I have an? (.*) directory$/ do |dir|
80
- FileUtils.mkdir_p(dir)
81
- end
82
-
83
- Given /^I have the following (draft|page|post)s?(?: (in|under) "([^"]+)")?:$/ do |status, direction, folder, table|
84
- table.hashes.each do |input_hash|
85
- title = slug(input_hash['title'])
86
- ext = input_hash['type'] || 'textile'
87
- before, after = location(folder, direction)
88
-
89
- case status
90
- when "draft"
91
- dest_folder = '_drafts'
92
- filename = "#{title}.#{ext}"
93
- when "page"
94
- dest_folder = ''
95
- filename = "#{title}.#{ext}"
96
- when "post"
97
- parsed_date = Time.xmlschema(input_hash['date']) rescue Time.parse(input_hash['date'])
98
- dest_folder = '_posts'
99
- filename = "#{parsed_date.strftime('%Y-%m-%d')}-#{title}.#{ext}"
100
- end
101
-
102
- path = File.join(before, dest_folder, after, filename)
103
- File.open(path, 'w') do |f|
104
- f.write file_content_from_hash(input_hash)
105
- end
106
- end
107
- end
108
-
109
- Given /^I have a configuration file with "(.*)" set to "(.*)"$/ do |key, value|
110
- File.open('_config.yml', 'w') do |f|
111
- f.write("#{key}: #{value}\n")
112
- end
113
- end
114
-
115
- Given /^I have a configuration file with:$/ do |table|
116
- File.open('_config.yml', 'w') do |f|
117
- table.hashes.each do |row|
118
- f.write("#{row["key"]}: #{row["value"]}\n")
119
- end
120
- end
121
- end
122
-
123
- Given /^I have a configuration file with "([^\"]*)" set to:$/ do |key, table|
124
- File.open('_config.yml', 'w') do |f|
125
- f.write("#{key}:\n")
126
- table.hashes.each do |row|
127
- f.write("- #{row["value"]}\n")
128
- end
129
- end
130
- end
131
-
132
- Given /^I have fixture collections$/ do
133
- FileUtils.cp_r File.join(JEKYLL_SOURCE_DIR, "test", "source", "_methods"), source_dir
134
- end
135
-
136
- ##################
137
- #
138
- # Changing stuff
139
- #
140
- ##################
141
-
142
- When /^I run jekyll(.*)$/ do |args|
143
- status = run_jekyll(args)
144
- if args.include?("--verbose") || ENV['DEBUG']
145
- puts jekyll_run_output
146
- end
147
- end
148
-
149
- When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
150
- File.open(file, 'a') do |f|
151
- f.write(text)
152
- end
153
- end
154
-
155
- When /^I delete the file "(.*)"$/ do |file|
156
- File.delete(file)
157
- end
158
-
159
- Then /^the (.*) directory should +exist$/ do |dir|
160
- assert File.directory?(dir), "The directory \"#{dir}\" does not exist"
161
- end
162
-
163
- Then /^the (.*) directory should not exist$/ do |dir|
164
- assert !File.directory?(dir), "The directory \"#{dir}\" exists"
165
- end
166
-
167
- Then /^I should see "(.*)" in "(.*)"$/ do |text, file|
168
- assert_match Regexp.new(text, Regexp::MULTILINE), file_contents(file)
169
- end
170
-
171
- Then /^I should see exactly "(.*)" in "(.*)"$/ do |text, file|
172
- assert_equal text, file_contents(file).strip
173
- end
174
-
175
- Then /^I should not see "(.*)" in "(.*)"$/ do |text, file|
176
- assert_no_match Regexp.new(text, Regexp::MULTILINE), file_contents(file)
177
- end
178
-
179
- Then /^I should see escaped "(.*)" in "(.*)"$/ do |text, file|
180
- assert_match Regexp.new(Regexp.escape(text)), file_contents(file)
181
- end
182
-
183
- Then /^the "(.*)" file should +exist$/ do |file|
184
- assert File.file?(file), "The file \"#{file}\" does not exist"
185
- end
186
-
187
- Then /^the "(.*)" file should not exist$/ do |file|
188
- assert !File.exist?(file), "The file \"#{file}\" exists"
189
- end
190
-
191
- Then /^I should see today's time in "(.*)"$/ do |file|
192
- assert_match Regexp.new(seconds_agnostic_time(Time.now)), file_contents(file)
193
- end
194
-
195
- Then /^I should see today's date in "(.*)"$/ do |file|
196
- assert_match Regexp.new(Date.today.to_s), file_contents(file)
197
- end
198
-
199
- Then /^I should see "(.*)" in the build output$/ do |text|
200
- assert_match Regexp.new(text), jekyll_run_output
201
- end
@@ -1,65 +0,0 @@
1
- require 'fileutils'
2
- require 'rr'
3
- require 'test/unit'
4
- require 'time'
5
-
6
- JEKYLL_SOURCE_DIR = File.dirname(File.dirname(File.dirname(__FILE__)))
7
- TEST_DIR = File.expand_path(File.join('..', '..', 'tmp', 'jekyll'), File.dirname(__FILE__))
8
- JEKYLL_PATH = File.join(File.dirname(__FILE__), '..', '..', 'bin', 'jekyll')
9
- JEKYLL_COMMAND_OUTPUT_FILE = File.join(File.dirname(TEST_DIR), 'jekyll_output.txt')
10
-
11
- def source_dir(*files)
12
- File.join(TEST_DIR, *files)
13
- end
14
-
15
- def jekyll_output_file
16
- JEKYLL_COMMAND_OUTPUT_FILE
17
- end
18
-
19
- def jekyll_run_output
20
- File.read(jekyll_output_file)
21
- end
22
-
23
- def run_jekyll(args)
24
- system "#{JEKYLL_PATH} #{args} --trace > #{jekyll_output_file} 2>&1"
25
- end
26
-
27
- def slug(title)
28
- if title
29
- title.downcase.gsub(/[^\w]/, " ").strip.gsub(/\s+/, '-')
30
- else
31
- Time.now.strftime("%s%9N") # nanoseconds since the Epoch
32
- end
33
- end
34
-
35
- def location(folder, direction)
36
- if folder
37
- before = folder if direction == "in"
38
- after = folder if direction == "under"
39
- end
40
- [before || '.', after || '.']
41
- end
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
- date, time, zone = datetime.to_s.split(" ")
51
- time = seconds_agnostic_time(time)
52
- [
53
- Regexp.escape(date),
54
- "#{time}:\\d{2}",
55
- Regexp.escape(zone)
56
- ].join("\\ ")
57
- end
58
-
59
- def seconds_agnostic_time(time)
60
- if time.is_a? Time
61
- time = time.strftime("%H:%M:%S")
62
- end
63
- hour, minutes, _ = time.split(":")
64
- "#{hour}:#{minutes}"
65
- end
@@ -1,66 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'jekyll/version'
5
-
6
- Gem::Specification.new do |s|
7
- s.specification_version = 2 if s.respond_to? :specification_version=
8
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
- s.rubygems_version = '2.2.2'
10
- s.required_ruby_version = '>= 1.9.3'
11
-
12
- s.name = 'jekyll'
13
- s.version = Jekyll::VERSION
14
- s.license = 'MIT'
15
-
16
- s.summary = "A simple, blog aware, static site generator."
17
- s.description = "Jekyll is a simple, blog aware, static site generator."
18
-
19
- s.authors = ["Tom Preston-Werner"]
20
- s.email = 'tom@mojombo.com'
21
- s.homepage = 'https://github.com/jekyll/jekyll'
22
-
23
- s.files = `git ls-files`.split($/)
24
- s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
26
- s.require_paths = ["lib"]
27
-
28
- s.rdoc_options = ["--charset=UTF-8"]
29
- s.extra_rdoc_files = %w[README.markdown LICENSE]
30
-
31
- s.add_runtime_dependency('liquid', "~> 2.6.1")
32
- s.add_runtime_dependency('kramdown', "~> 1.3")
33
- s.add_runtime_dependency('mercenary', "~> 0.3.3")
34
- s.add_runtime_dependency('safe_yaml', "~> 1.0")
35
- s.add_runtime_dependency('colorator', "~> 0.1")
36
-
37
- # Before 3.0 drops, phase the following gems out as dev dependencies
38
- # and gracefully handle their absence.
39
- s.add_runtime_dependency('classifier', "~> 1.3")
40
- s.add_runtime_dependency('pygments.rb', "~> 0.6.0")
41
- s.add_runtime_dependency('redcarpet', "~> 3.1")
42
- s.add_runtime_dependency('toml', '~> 0.1.0')
43
- s.add_runtime_dependency('jekyll-paginate', '~> 1.0')
44
- s.add_runtime_dependency('jekyll-gist', '~> 1.0')
45
- s.add_runtime_dependency('jekyll-coffeescript', '~> 1.0')
46
- s.add_runtime_dependency('jekyll-sass-converter', '~> 1.0')
47
- s.add_runtime_dependency('jekyll-watch', '~> 1.0')
48
-
49
- s.add_development_dependency('rake', "~> 10.1")
50
- s.add_development_dependency('rdoc', "~> 3.11")
51
- s.add_development_dependency('redgreen', "~> 1.2")
52
- s.add_development_dependency('shoulda', "~> 3.5")
53
- s.add_development_dependency('rr', "~> 1.1")
54
- s.add_development_dependency('cucumber', "1.3.11")
55
- s.add_development_dependency('RedCloth', "~> 4.2")
56
- s.add_development_dependency('maruku', "~> 0.7.0")
57
- s.add_development_dependency('rdiscount', "~> 1.6")
58
- s.add_development_dependency('launchy', "~> 2.3")
59
- s.add_development_dependency('simplecov', "~> 0.7")
60
- s.add_development_dependency('simplecov-gem-adapter', "~> 1.0.1")
61
- s.add_development_dependency('mime-types', "~> 1.5")
62
- s.add_development_dependency('activesupport', '~> 3.2.13')
63
- s.add_development_dependency('jekyll_test_plugin')
64
- s.add_development_dependency('jekyll_test_plugin_malicious')
65
- s.add_development_dependency('rouge', '~> 1.3')
66
- end
@@ -1,410 +0,0 @@
1
- /* Base */
2
- /* ----------------------------------------------------------*/
3
-
4
- * {
5
- margin: 0;
6
- padding: 0;
7
- }
8
-
9
- html, body { height: 100%; }
10
-
11
- body {
12
- font-family: Helvetica, Arial, sans-serif;
13
- font-size: 16px;
14
- line-height: 1.5;
15
- font-weight: 300;
16
- background-color: #fdfdfd;
17
- }
18
-
19
- h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: 400; }
20
-
21
- a { color: #2a7ae2; text-decoration: none; }
22
- a:hover { color: #000; text-decoration: underline; }
23
- a:visited { color: #205caa; }
24
-
25
- /* Utility */
26
-
27
- .wrap:before,
28
- .wrap:after { content:""; display:table; }
29
- .wrap:after { clear: both; }
30
- .wrap {
31
- max-width: 800px;
32
- padding: 0 30px;
33
- margin: 0 auto;
34
- zoom: 1;
35
- }
36
-
37
-
38
- /* Layout Styles */
39
- /* ----------------------------------------------------------*/
40
-
41
- /* Site header */
42
-
43
- .site-header {
44
- border-top: 5px solid #333;
45
- border-bottom: 1px solid #e8e8e8;
46
- min-height: 56px;
47
- background-color: white;
48
- }
49
-
50
- .site-title,
51
- .site-title:hover,
52
- .site-title:visited {
53
- display: block;
54
- color: #333;
55
- font-size: 26px;
56
- letter-spacing: -1px;
57
- float: left;
58
- line-height: 56px;
59
- position: relative;
60
- z-index: 1;
61
- }
62
-
63
- .site-nav {
64
- float: right;
65
- line-height: 56px;
66
- }
67
-
68
- .site-nav .menu-icon { display: none; }
69
-
70
- .site-nav .page-link {
71
- margin-left: 20px;
72
- color: #727272;
73
- letter-spacing: -.5px;
74
- }
75
-
76
- /* Site footer */
77
-
78
- .site-footer {
79
- border-top: 1px solid #e8e8e8;
80
- padding: 30px 0;
81
- }
82
-
83
- .footer-heading {
84
- font-size: 18px;
85
- font-weight: 300;
86
- letter-spacing: -.5px;
87
- margin-bottom: 15px;
88
- }
89
-
90
- .site-footer .column { float: left; margin-bottom: 15px; }
91
-
92
- .footer-col-1 {
93
- width: 270px; /*fallback*/
94
- width: -webkit-calc(35% - 10px);
95
- width: -moz-calc(35% - 10px);
96
- width: -o-calc(35% - 10px);
97
- width: calc(35% - 10px);
98
- margin-right: 10px
99
- }
100
- .footer-col-2 {
101
- width: 175px; /*fallback*/
102
- width: -webkit-calc(23.125% - 10px);
103
- width: -moz-calc(23.125% - 10px);
104
- width: -o-calc(23.125% - 10px);
105
- width: calc(23.125% - 10px);
106
- margin-right: 10px
107
- }
108
- .footer-col-3 {
109
- width: 335px; /*fallback*/
110
- width: -webkit-calc(41.875%);
111
- width: -moz-calc(41.875%);
112
- width: -o-calc(41.875%);
113
- width: calc(41.875%);
114
- }
115
-
116
- .site-footer ul { list-style: none; }
117
-
118
- .site-footer li,
119
- .site-footer p {
120
- font-size: 15px;
121
- letter-spacing: -.3px;
122
- color: #828282;
123
- }
124
-
125
- .github-icon-svg,
126
- .twitter-icon-svg {
127
- display: inline-block;
128
- width: 16px;
129
- height: 16px;
130
- position: relative;
131
- top: 3px;
132
- }
133
-
134
-
135
- /* Page Content styles */
136
- /* ----------------------------------------------------------*/
137
-
138
- .page-content {
139
- padding: 30px 0;
140
- background-color: #fff;
141
- }
142
-
143
-
144
- /* Home styles */
145
- /* ----------------------------------------------------------*/
146
-
147
- .home h1 { margin-bottom: 25px; }
148
-
149
- .posts { list-style-type: none; }
150
-
151
- .posts li { margin-bottom: 30px; }
152
-
153
- .posts .post-link {
154
- font-size: 24px;
155
- letter-spacing: -1px;
156
- line-height: 1;
157
- }
158
-
159
- .posts .post-date {
160
- display: block;
161
- font-size: 15px;
162
- color: #818181;
163
- }
164
-
165
-
166
- /* Post styles */
167
- /* ----------------------------------------------------------*/
168
-
169
- .post-header { margin: 10px 0 30px; }
170
-
171
- .post-header h1 {
172
- font-size: 42px;
173
- letter-spacing: -1.75px;
174
- line-height: 1;
175
- font-weight: 300;
176
- }
177
-
178
- .post-header .meta {
179
- font-size: 15px;
180
- color: #818181;
181
- margin-top: 5px;
182
- }
183
-
184
- .post-content { margin: 0 0 30px; }
185
-
186
- .post-content > * { margin: 20px 0; }
187
-
188
-
189
- .post-content h1,
190
- .post-content h2,
191
- .post-content h3,
192
- .post-content h4,
193
- .post-content h5,
194
- .post-content h6 {
195
- line-height: 1;
196
- font-weight: 300;
197
- margin: 40px 0 20px;
198
- }
199
-
200
- .post-content h2 {
201
- font-size: 32px;
202
- letter-spacing: -1.25px;
203
- }
204
-
205
- .post-content h3 {
206
- font-size: 26px;
207
- letter-spacing: -1px;
208
- }
209
-
210
- .post-content h4 {
211
- font-size: 20px;
212
- letter-spacing: -1px;
213
- }
214
-
215
- .post-content blockquote {
216
- border-left: 4px solid #e8e8e8;
217
- padding-left: 20px;
218
- font-size: 18px;
219
- opacity: .6;
220
- letter-spacing: -1px;
221
- font-style: italic;
222
- margin: 30px 0;
223
- }
224
-
225
- .post-content ul,
226
- .post-content ol { padding-left: 20px; }
227
-
228
- .post pre,
229
- .post code {
230
- border: 1px solid #d5d5e9;
231
- background-color: #eef;
232
- padding: 8px 12px;
233
- -webkit-border-radius: 3px;
234
- -moz-border-radius: 3px;
235
- border-radius: 3px;
236
- font-size: 15px;
237
- overflow:scroll;
238
- }
239
-
240
- .post code { padding: 1px 5px; }
241
-
242
- .post ul,
243
- .post ol { margin-left: 1.35em; }
244
-
245
- .post pre code {
246
- border: 0;
247
- padding-right: 0;
248
- padding-left: 0;
249
- }
250
-
251
- /* terminal */
252
- .post pre.terminal {
253
- border: 1px solid #000;
254
- background-color: #333;
255
- color: #FFF;
256
- -webkit-border-radius: 3px;
257
- -moz-border-radius: 3px;
258
- border-radius: 3px;
259
- }
260
-
261
- .post pre.terminal code { background-color: #333; }
262
-
263
- /* Syntax highlighting styles */
264
- /* ----------------------------------------------------------*/
265
-
266
- .highlight { background: #ffffff; }
267
- .highlight .c { color: #999988; font-style: italic } /* Comment */
268
- .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
269
- .highlight .k { font-weight: bold } /* Keyword */
270
- .highlight .o { font-weight: bold } /* Operator */
271
- .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
272
- .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
273
- .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
274
- .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
275
- .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
276
- .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
277
- .highlight .ge { font-style: italic } /* Generic.Emph */
278
- .highlight .gr { color: #aa0000 } /* Generic.Error */
279
- .highlight .gh { color: #999999 } /* Generic.Heading */
280
- .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
281
- .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
282
- .highlight .go { color: #888888 } /* Generic.Output */
283
- .highlight .gp { color: #555555 } /* Generic.Prompt */
284
- .highlight .gs { font-weight: bold } /* Generic.Strong */
285
- .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
286
- .highlight .gt { color: #aa0000 } /* Generic.Traceback */
287
- .highlight .kc { font-weight: bold } /* Keyword.Constant */
288
- .highlight .kd { font-weight: bold } /* Keyword.Declaration */
289
- .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
290
- .highlight .kr { font-weight: bold } /* Keyword.Reserved */
291
- .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
292
- .highlight .m { color: #009999 } /* Literal.Number */
293
- .highlight .s { color: #d14 } /* Literal.String */
294
- .highlight .na { color: #008080 } /* Name.Attribute */
295
- .highlight .nb { color: #0086B3 } /* Name.Builtin */
296
- .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
297
- .highlight .no { color: #008080 } /* Name.Constant */
298
- .highlight .ni { color: #800080 } /* Name.Entity */
299
- .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
300
- .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
301
- .highlight .nn { color: #555555 } /* Name.Namespace */
302
- .highlight .nt { color: #000080 } /* Name.Tag */
303
- .highlight .nv { color: #008080 } /* Name.Variable */
304
- .highlight .ow { font-weight: bold } /* Operator.Word */
305
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
306
- .highlight .mf { color: #009999 } /* Literal.Number.Float */
307
- .highlight .mh { color: #009999 } /* Literal.Number.Hex */
308
- .highlight .mi { color: #009999 } /* Literal.Number.Integer */
309
- .highlight .mo { color: #009999 } /* Literal.Number.Oct */
310
- .highlight .sb { color: #d14 } /* Literal.String.Backtick */
311
- .highlight .sc { color: #d14 } /* Literal.String.Char */
312
- .highlight .sd { color: #d14 } /* Literal.String.Doc */
313
- .highlight .s2 { color: #d14 } /* Literal.String.Double */
314
- .highlight .se { color: #d14 } /* Literal.String.Escape */
315
- .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
316
- .highlight .si { color: #d14 } /* Literal.String.Interpol */
317
- .highlight .sx { color: #d14 } /* Literal.String.Other */
318
- .highlight .sr { color: #009926 } /* Literal.String.Regex */
319
- .highlight .s1 { color: #d14 } /* Literal.String.Single */
320
- .highlight .ss { color: #990073 } /* Literal.String.Symbol */
321
- .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
322
- .highlight .vc { color: #008080 } /* Name.Variable.Class */
323
- .highlight .vg { color: #008080 } /* Name.Variable.Global */
324
- .highlight .vi { color: #008080 } /* Name.Variable.Instance */
325
- .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
326
-
327
-
328
- /* media queries */
329
- /* ----------------------------------------------------------*/
330
-
331
-
332
- @media screen and (max-width: 750px) {
333
-
334
- .footer-col-1 { width: 50%; }
335
-
336
- .footer-col-2 {
337
- width: 45%; /*fallback*/
338
- width: -webkit-calc(50% - 10px);
339
- width: -moz-calc(50% - 10px);
340
- width: -o-calc(50% - 10px);
341
- width: calc(50% - 10px);
342
- margin-right: 0;
343
- }
344
-
345
- .site-footer .column.footer-col-3 {
346
- width: auto;
347
- float: none;
348
- clear: both;
349
- }
350
-
351
- }
352
-
353
- @media screen and (max-width: 600px) {
354
-
355
- .wrap { padding: 0 12px; }
356
-
357
- .site-nav {
358
- position: fixed;
359
- z-index: 10;
360
- top: 14px; right: 8px;
361
- background-color: white;
362
- -webkit-border-radius: 5px;
363
- -moz-border-radius: 5px;
364
- border-radius: 5px;
365
- border: 1px solid #e8e8e8;
366
- }
367
-
368
- .site-nav .menu-icon {
369
- display: block;
370
- font-size: 24px;
371
- color: #505050;
372
- float: right;
373
- width: 36px;
374
- text-align: center;
375
- line-height: 36px;
376
- }
377
-
378
- .site-nav .menu-icon svg { width: 18px; height: 16px; }
379
-
380
- .site-nav .trigger {
381
- clear: both;
382
- margin-bottom: 5px;
383
- display: none;
384
- }
385
-
386
- .site-nav:hover .trigger { display: block; }
387
-
388
- .site-nav .page-link {
389
- display: block;
390
- text-align: right;
391
- line-height: 1.25;
392
- padding: 5px 10px;
393
- margin: 0;
394
- }
395
-
396
- .post-header h1 { font-size: 36px; }
397
- .post-content h2 { font-size: 28px; }
398
- .post-content h3 { font-size: 22px; }
399
- .post-content h4 { font-size: 18px; }
400
- .post-content blockquote { padding-left: 10px; }
401
- .post-content ul,
402
- .post-content ol { padding-left: 10px; }
403
-
404
- .site-footer .column {
405
- float: none;
406
- clear: both;
407
- width: auto;
408
- margin: 0 0 15px; }
409
-
410
- }