From 98405edf61a02b4a8697a05ec2320c9337d844c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= GitHub Pages are powered by Jekyll behind the scenes, so if you’re looking for a zero-hassle, zero-cost solution, GitHub Pages are a great way to host your Jekyll-powered website for free. (“|“)Pit(’|’)hy(”|”)<\/p>/, @markdown.convert(%{"Pit'hy"}).strip
+ context "when asked to convert smart quotes" do
+ should "convert" do
+ assert_match %r! (“|“)Pit(’|’)hy(”|”)<\/p>!, @markdown.convert(%{"Pit'hy"}).strip
+ end
- override = { 'kramdown' => { 'smart_quotes' => 'lsaquo,rsaquo,laquo,raquo' } }
- markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, override))
- assert_match / («|«)Pit(›|›)hy(»|»)<\/p>/, markdown.convert(%{"Pit'hy"}).strip
+ should "support custom types" do
+ override = {
+ 'kramdown' => {
+ 'smart_quotes' => 'lsaquo,rsaquo,laquo,raquo'
+ }
+ }
+
+ markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, override))
+ assert_match %r! («|«)Pit(›|›)hy(»|»)<\/p>!, \
+ markdown.convert(%{"Pit'hy"}).strip
+ end
end
should "render fenced code blocks with syntax highlighting" do
- assert_equal "ProTip™: Use GitHub Pages for zero-hassle Jekyll hosting
Some Header
", @markdown.convert('# Some Header #').strip
end
- should "convert quotes to smart quotes" do
- assert_match /
\nputs \"Hello world\"\n
Sample
+Pick a random value from an array.
+
+ {% raw %}{{ site.pages | sample }}{% endraw %}
+
Sample
-Pick a random value from an array.
+Pick a random value from an array. Optional: pick multiple values.
{% raw %}{{ site.pages | sample }}{% endraw %}
+ {% raw %}{{ site.pages | sample:2 }}{% endraw %}
+
--skip-initial-build
X.509 (SSL) Private Key
+SSL Private Key.
+--ssl-key
X.509 (SSL) Certificate
+SSL Public certificate.
+--ssl-cert
Process and render draft posts.
show_drafts: BOOL
--drafts
Whatever: foo.bar
" in "_site/methods/configuration.html" @@ -45,7 +45,7 @@ Feature: Collections And I should see "Whatever: foo.bar
" in "_site/methods/configuration/index.html" Scenario: Rendered document in a layout - Given I have an "index.html" page that contains "Collections: {{ site.collections }}" + Given I have an "index.html" page that contains "Collections: output => {{ site.collections[0].output }} label => {{ site.collections[0].label }} foo => {{ site.collections[0].foo }}" And I have a default layout that contains "Run your generators! default
" in "_site/methods/site/generate.html" And I should see "+ While incremental regeneration will work for the most common cases, it will + not work correctly in every scenario. Please be extremely cautious when + using the feature, and report any problems not listed below by + opening an issue on GitHub. +
++ Clean URLs can also be achieved using the permalink Front Matter variable. In the example above, using the first method, you can get URL http://example.com/other for the file other.md by adding this to the top of the file. +
+ --- + permalink: /other/ + --- ++ +
#{code.chomp}#{code.chomp}/, "") end end diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index 45a204228bc..92d2528c0ed 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -38,9 +38,9 @@ def read_directories(dir = '') base = site.in_source_dir(dir) dot = Dir.chdir(base) { filter_entries(Dir.entries('.'), base) } - dot_dirs = dot.select{ |file| File.directory?(@site.in_source_dir(base,file)) } + dot_dirs = dot.select{ |file| File.directory?(@site.in_source_dir(base, file)) } dot_files = (dot - dot_dirs) - dot_pages = dot_files.select{ |file| Utils.has_yaml_header?(@site.in_source_dir(base,file)) } + dot_pages = dot_files.select{ |file| Utils.has_yaml_header?(@site.in_source_dir(base, file)) } dot_static_files = dot_files - dot_pages retrieve_posts(dir) @@ -69,7 +69,7 @@ def retrieve_posts(dir) # Returns nothing. def retrieve_dirs(base, dir, dot_dirs) dot_dirs.map { |file| - dir_path = site.in_source_dir(dir,file) + dir_path = site.in_source_dir(dir, file) rel_path = File.join(dir, file) @site.reader.read_directories(rel_path) unless @site.dest.sub(/\/$/, '') == dir_path } From 663a2d3279ac8ac569a3b5ec6f48c71ff93481ff Mon Sep 17 00:00:00 2001 From: Pat Hawks") + code = code.sub(/<\/pre>/, "") - code = code.sub(/<\/pre>/,"
#{code.chomp}/, "") + code end end diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 7d7e6bb4aa6..42881309282 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -278,7 +278,7 @@ def read(opts = {}) def post_read if DATE_FILENAME_MATCHER =~ relative_path - m, cats, date, slug, ext = *relative_path.match(DATE_FILENAME_MATCHER) + _, _, date, slug, ext = *relative_path.match(DATE_FILENAME_MATCHER) merge_data!({ "slug" => slug, "ext" => ext From be3666fcf05b3f61208df606911000071e7d895f Mon Sep 17 00:00:00 2001 From: Pat Hawks") code = code.sub(/<\/pre>/, "Date: Mon, 4 Jan 2016 11:51:14 -0800 Subject: [PATCH 0188/4996] Rubocop: Do not use unless with else - Rewrite these with the positive case first --- lib/jekyll.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 6c5d8f103b0..8b92a045f61 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -156,10 +156,10 @@ def sanitized_path(base_directory, questionable_path) clean_path = File.expand_path(questionable_path, "/") clean_path = clean_path.sub(/\A\w\:\//, '/') - unless clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/')) - File.join(base_directory, clean_path) - else + if clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/')) clean_path + else + File.join(base_directory, clean_path) end end From 086e85ca9eab3c5a6f78babd3452428afa88089b Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:01:23 -0800 Subject: [PATCH 0189/4996] Rubocop: Style/PerlBackrefs - Avoid the use of Perl-style backrefs --- lib/jekyll/convertible.rb | 2 +- lib/jekyll/document.rb | 2 +- lib/jekyll/tags/highlight.rb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index b510d306555..d9298f4f621 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -47,7 +47,7 @@ def read_yaml(base, name, opts = {}) merged_file_read_opts(opts)) if content =~ /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m self.content = $POSTMATCH - self.data = SafeYAML.load($1) + self.data = SafeYAML.load(Regexp.last_match(1)) end rescue SyntaxError => e Jekyll.logger.warn "YAML Exception reading #{File.join(base, name)}: #{e.message}" diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 42881309282..8d7c92f49dd 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -263,7 +263,7 @@ def read(opts = {}) self.content = File.read(path, merged_file_read_opts(opts)) if content =~ YAML_FRONT_MATTER_REGEXP self.content = $POSTMATCH - data_file = SafeYAML.load($1) + data_file = SafeYAML.load(Regexp.last_match(1)) merge_data!(data_file) if data_file end diff --git a/lib/jekyll/tags/highlight.rb b/lib/jekyll/tags/highlight.rb index 5881fa58ea9..a7dbd5193bc 100644 --- a/lib/jekyll/tags/highlight.rb +++ b/lib/jekyll/tags/highlight.rb @@ -13,11 +13,11 @@ class HighlightBlock < Liquid::Block def initialize(tag_name, markup, tokens) super if markup.strip =~ SYNTAX - @lang = $1.downcase + @lang = Regexp.last_match(1).downcase @highlight_options = {} - if defined?($2) && $2 != '' + if defined?(Regexp.last_match(2)) && Regexp.last_match(2) != '' # Split along 3 possible forms -- key=" ", key=value, or key - $2.scan(/(?:\w="[^"]*"|\w=\w|\w)+/) do |opt| + Regexp.last_match(2).scan(/(?:\w="[^"]*"|\w=\w|\w)+/) do |opt| key, value = opt.split('=') # If a quoted list, convert to array if value && value.include?("\"") From 6711234d5fba1419e89ae442519e4bbb7c89985e Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:05:54 -0800 Subject: [PATCH 0190/4996] Rubocop: Style/BlockDelimiters - Avoid using {...} for multi-line blocks --- lib/jekyll/convertible.rb | 8 ++++---- lib/jekyll/filters.rb | 4 ++-- lib/jekyll/reader.rb | 4 ++-- lib/jekyll/site.rb | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index d9298f4f621..c61807f983e 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -87,9 +87,9 @@ def output_ext if converters.all? { |c| c.is_a?(Jekyll::Converters::Identity) } ext else - converters.map { |c| + converters.map do |c| c.output_ext(ext) unless c.is_a?(Jekyll::Converters::Identity) - }.compact.last + end.compact.last end end @@ -122,9 +122,9 @@ def render_liquid(content, payload, info, path) # # Returns the Hash representation of this Convertible. def to_liquid(attrs = nil) - further_data = Hash[(attrs || self.class::ATTRIBUTES_FOR_LIQUID).map { |attribute| + further_data = Hash[(attrs || self.class::ATTRIBUTES_FOR_LIQUID).map do |attribute| [attribute, send(attribute)] - }] + end] defaults = site.frontmatter_defaults.all(relative_path, type) Utils.deep_merge_hashes defaults, Utils.deep_merge_hashes(data, further_data) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 734457cb682..9b2cad9daf7 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -238,7 +238,7 @@ def sort(input, property = nil, nils = "first") "'#{nils}' is not a valid nils order. It must be 'first' or 'last'.") end - input.sort { |apple, orange| + input.sort do |apple, orange| apple_property = item_property(apple, property) orange_property = item_property(orange, property) @@ -249,7 +249,7 @@ def sort(input, property = nil, nils = "first") else apple_property <=> orange_property end - } + end end end diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index 2926971b773..c9ded560936 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -68,11 +68,11 @@ def retrieve_posts(dir) # # Returns nothing. def retrieve_dirs(_base, dir, dot_dirs) - dot_dirs.map { |file| + dot_dirs.map do |file| dir_path = site.in_source_dir(dir, file) rel_path = File.join(dir, file) @site.reader.read_directories(rel_path) unless @site.dest.sub(/\/$/, '') == dir_path - } + end end # Retrieve all the pages from the current directory, diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 3ed60c121a2..fcd4bf778c8 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -196,9 +196,9 @@ def cleanup # # Returns nothing. def write - each_site_file { |item| + each_site_file do |item| item.write(dest) if regenerator.regenerate?(item) - } + end regenerator.write_metadata Jekyll::Hooks.trigger :site, :post_write, self end From 04e635b10cc991a742e210079be776cda133f34b Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:06:40 -0800 Subject: [PATCH 0191/4996] Rubocop: Style/SpaceInsideRangeLiteral - Space inside range literal --- lib/jekyll/document.rb | 2 +- lib/jekyll/page.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 8d7c92f49dd..3b41076ceff 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -113,7 +113,7 @@ def basename # Returns the cleaned relative path of the document. def cleaned_relative_path @cleaned_relative_path ||= - relative_path[0 .. -extname.length - 1].sub(collection.relative_directory, "") + relative_path[0..-extname.length - 1].sub(collection.relative_directory, "") end # Determine whether the document is a YAML file. diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index 019cb0956c2..78f7e041ab5 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -106,7 +106,7 @@ def url_placeholders # Returns nothing. def process(name) self.ext = File.extname(name) - self.basename = name[0 .. -ext.length - 1] + self.basename = name[0..-ext.length - 1] end # Add any necessary layouts to this post From c1c8b6dbf733ccacfe1b260e7c23927aeb7aa34f Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:07:34 -0800 Subject: [PATCH 0192/4996] Rubocop: Style/SpaceInsideHashLiteralBraces --- lib/jekyll/document.rb | 2 +- lib/jekyll/filters.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 3b41076ceff..38ced6751a8 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -283,7 +283,7 @@ def post_read "slug" => slug, "ext" => ext }) - merge_data!({"date" => date}) if data['date'].nil? || data['date'].to_i == site.time.to_i + merge_data!({ "date" => date }) if data['date'].nil? || data['date'].to_i == site.time.to_i data['title'] ||= slug.split('-').select(&:capitalize).join(' ') end populate_categories diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 9b2cad9daf7..36760d65391 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -194,7 +194,7 @@ def group_by(input, property) input.group_by do |item| item_property(item, property).to_s end.inject([]) do |memo, i| - memo << {"name" => i.first, "items" => i.last} + memo << { "name" => i.first, "items" => i.last } end else input From c273d91df13227f04908198ff91df01cf7c2d284 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:08:02 -0800 Subject: [PATCH 0193/4996] cucumber: fix issue where an undefined step would cause an exception --- features/step_definitions/jekyll_steps.rb | 4 ++-- features/support/overview.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb index 9164d549b28..b38397fbe55 100644 --- a/features/step_definitions/jekyll_steps.rb +++ b/features/step_definitions/jekyll_steps.rb @@ -150,14 +150,14 @@ def file_content_from_hash(input_hash) When /^I run jekyll(.*)$/ do |args| status = run_jekyll(args) if args.include?("--verbose") || ENV['DEBUG'] - puts jekyll_run_output + STDERR.puts "\n#{jekyll_run_output}\n" end end When /^I run bundle(.*)$/ do |args| status = run_bundle(args) if args.include?("--verbose") || ENV['DEBUG'] - puts jekyll_run_output + STDERR.puts "\n#{jekyll_run_output}\n" end end diff --git a/features/support/overview.rb b/features/support/overview.rb index 9550969b39c..9045eafbf5a 100644 --- a/features/support/overview.rb +++ b/features/support/overview.rb @@ -25,6 +25,7 @@ def initialize(runtime, path_or_io, options) @indent = 0 @prefixes = options[:prefixes] || {} @delayed_messages = [] + @snippets_input = [] end def before_features(features) @@ -115,6 +116,10 @@ def exception(exception, status) @io.flush end + def after_test_step(test_step, result) + collect_snippet_data(test_step, result) + end + private def print_feature_element_name(keyword, name, file_colon_line, source_indent) From cce848d3d81b1b6a992911289bf634bb9abffdea Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:12:17 -0800 Subject: [PATCH 0194/4996] Rubocop: Avoid single-line method definitions --- lib/jekyll/drops/url_drop.rb | 54 ++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/lib/jekyll/drops/url_drop.rb b/lib/jekyll/drops/url_drop.rb index 32aae194239..2815edf7557 100644 --- a/lib/jekyll/drops/url_drop.rb +++ b/lib/jekyll/drops/url_drop.rb @@ -35,17 +35,49 @@ def categories category_set.to_a.join('/') end - def year; @obj.date.strftime("%Y"); end - def month; @obj.date.strftime("%m"); end - def day; @obj.date.strftime("%d"); end - def hour; @obj.date.strftime("%H"); end - def minute; @obj.date.strftime("%M"); end - def second; @obj.date.strftime("%S"); end - def i_day; @obj.date.strftime("%-d"); end - def i_month; @obj.date.strftime("%-m"); end - def short_month; @obj.date.strftime("%b"); end - def short_year; @obj.date.strftime("%y"); end - def y_day; @obj.date.strftime("%j"); end + def year + @obj.date.strftime("%Y") + end + + def month + @obj.date.strftime("%m") + end + + def day + @obj.date.strftime("%d") + end + + def hour + @obj.date.strftime("%H") + end + + def minute + @obj.date.strftime("%M") + end + + def second + @obj.date.strftime("%S") + end + + def i_day + @obj.date.strftime("%-d") + end + + def i_month + @obj.date.strftime("%-m") + end + + def short_month + @obj.date.strftime("%b") + end + + def short_year + @obj.date.strftime("%y") + end + + def y_day + @obj.date.strftime("%j") + end end end end From ab3d906e04dc21bc8385829e2d356f0f4a814ac2 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:14:00 -0800 Subject: [PATCH 0195/4996] Rubocop: Style/ParenthesesAroundCondition - Don't use parentheses around the condition of an if --- lib/jekyll/plugin_manager.rb | 2 +- lib/jekyll/regenerator.rb | 2 +- lib/jekyll/utils.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/plugin_manager.rb b/lib/jekyll/plugin_manager.rb index d4ad99515fc..502c4a731b1 100644 --- a/lib/jekyll/plugin_manager.rb +++ b/lib/jekyll/plugin_manager.rb @@ -76,7 +76,7 @@ def require_plugin_files # # Returns an Array of plugin search paths def plugins_path - if (site.config['plugins_dir'] == Jekyll::Configuration::DEFAULTS['plugins_dir']) + if site.config['plugins_dir'] == Jekyll::Configuration::DEFAULTS['plugins_dir'] [site.in_source_dir(site.config['plugins_dir'])] else Array(site.config['plugins_dir']).map { |d| File.expand_path(d) } diff --git a/lib/jekyll/regenerator.rb b/lib/jekyll/regenerator.rb index bb9284aa11f..205223509a9 100644 --- a/lib/jekyll/regenerator.rb +++ b/lib/jekyll/regenerator.rb @@ -115,7 +115,7 @@ def modified?(path) # # Returns nothing. def add_dependency(path, dependency) - return if (metadata[path].nil? || @disabled) + return if metadata[path].nil? || @disabled unless metadata[path]["deps"].include? dependency metadata[path]["deps"] << dependency diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb index 1d81e0f0435..6b6e8f1cd91 100644 --- a/lib/jekyll/utils.rb +++ b/lib/jekyll/utils.rb @@ -62,7 +62,7 @@ def pluralized_array_from_hash(hash, singular_key, plural_key) end def value_from_singular_key(hash, key) - hash[key] if (hash.key?(key) || (hash.default_proc && hash[key])) + hash[key] if hash.key?(key) || (hash.default_proc && hash[key]) end def value_from_plural_key(hash, key) From 060904d8096a691e73d87fd4784993f358036bdb Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Mon, 4 Jan 2016 12:16:36 -0800 Subject: [PATCH 0196/4996] Rubocop: Style/TrailingWhitespace - Trailing whitespace detected Rubocop: Style/EmptyLines - Extra blank line detected Rubocop: Style/EmptyLinesAroundBlockBody - Extra empty line detected at block body beginning --- lib/jekyll/tags/post_url.rb | 1 - lib/jekyll/utils/ansi.rb | 2 +- lib/jekyll/utils/platforms.rb | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/jekyll/tags/post_url.rb b/lib/jekyll/tags/post_url.rb index 5b3df093f8c..6c4c9f8eb6e 100644 --- a/lib/jekyll/tags/post_url.rb +++ b/lib/jekyll/tags/post_url.rb @@ -66,7 +66,6 @@ def render(context) # New matching method did not match, fall back to old method # with deprecation warning if this matches - site.posts.docs.each do |p| next unless @post.deprecated_equality p Jekyll::Deprecator.deprecation_message "A call to '{{ post_url #{@post.name} }}' did not match " \ diff --git a/lib/jekyll/utils/ansi.rb b/lib/jekyll/utils/ansi.rb index 05f38429b3f..933b4323018 100644 --- a/lib/jekyll/utils/ansi.rb +++ b/lib/jekyll/utils/ansi.rb @@ -33,7 +33,7 @@ def strip(str) def has?(str) !!(str =~ MATCH) end - + # Reset the color back to the default color so that you do not leak any # colors when you move onto the next line. This is probably normally # used as part of a wrapper so that we don't leak colors. diff --git a/lib/jekyll/utils/platforms.rb b/lib/jekyll/utils/platforms.rb index abc1598cb42..d431021f767 100644 --- a/lib/jekyll/utils/platforms.rb +++ b/lib/jekyll/utils/platforms.rb @@ -19,7 +19,6 @@ module Platforms { :windows? => /mswin|mingw|cygwin/, :linux? => /linux/, \ :osx? => /darwin|mac os/, :unix? => /solaris|bsd/ }.each do |k, v| - define_method k do !!( RbConfig::CONFIG["host_os"] =~ v From eaade1e49aad40a216ce9ad4900cfe7fd2681652 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:32:15 -0800 Subject: [PATCH 0197/4996] Update history to reflect merge of #4301 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index cb91e071f05..42e152d9d48 100644 --- a/History.markdown +++ b/History.markdown @@ -38,6 +38,7 @@ * Change TestDoctorCommand to JekyllUnitTest... (#4263) * Create namespaced rake tasks in separate `.rake` files under `lib/tasks` (#4282) * markdown: refactor for greater readability & efficiency (#3771) + * Fix many Rubocop style errors (#4301) ### Site Enhancements From 87978e79f43278366d1ee002e6bc3c5046f473eb Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:36:04 -0800 Subject: [PATCH 0198/4996] features/step_definitions: use $stderr instead of STDERR Fixes https://github.com/jekyll/jekyll/commit/c273d91df13227f04908198ff91df01cf7c2d284#commitcomment-15251676 --- features/step_definitions/jekyll_steps.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb index b38397fbe55..c9ae0567b2f 100644 --- a/features/step_definitions/jekyll_steps.rb +++ b/features/step_definitions/jekyll_steps.rb @@ -150,14 +150,14 @@ def file_content_from_hash(input_hash) When /^I run jekyll(.*)$/ do |args| status = run_jekyll(args) if args.include?("--verbose") || ENV['DEBUG'] - STDERR.puts "\n#{jekyll_run_output}\n" + $stderr.puts "\n#{jekyll_run_output}\n" end end When /^I run bundle(.*)$/ do |args| status = run_bundle(args) if args.include?("--verbose") || ENV['DEBUG'] - STDERR.puts "\n#{jekyll_run_output}\n" + $stderr.puts "\n#{jekyll_run_output}\n" end end From 735194ccaf7f7b9079f31ea09aa4fb8ad856b3c3 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:00:18 -0800 Subject: [PATCH 0199/4996] Convertible/Page/Renderer: use payload hash accessor & setter syntax --- lib/jekyll/convertible.rb | 12 ++++++------ lib/jekyll/page.rb | 4 ++-- lib/jekyll/renderer.rb | 18 +++++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index c61807f983e..746f4bd1529 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -210,8 +210,8 @@ def render_all_layouts(layouts, payload, info) while layout Jekyll.logger.debug "Rendering Layout:", path - payload.content = output - payload.layout = layout.data + payload["content"] = output + payload["layout"] = Utils.deep_merge_hashes(payload["layout"] || {}, layout.data) self.output = render_liquid(layout.content, payload, @@ -236,7 +236,7 @@ def render_all_layouts(layouts, payload, info) # Add any necessary layouts to this convertible document. # - # payload - The site payload Hash. + # payload - The site payload Drop or Hash. # layouts - A Hash of {"name" => "layout"}. # # Returns nothing. @@ -245,11 +245,11 @@ def do_layout(payload, layouts) Jekyll.logger.debug "Pre-Render Hooks:", self.relative_path Jekyll::Hooks.trigger hook_owner, :pre_render, self, payload - info = { :filters => [Jekyll::Filters], :registers => { :site => site, :page => payload.page } } + info = { :filters => [Jekyll::Filters], :registers => { :site => site, :page => payload["page"] } } # render and transform content (this becomes the final content of the object) - payload.highlighter_prefix = converters.first.highlighter_prefix - payload.highlighter_suffix = converters.first.highlighter_suffix + payload["highlighter_prefix"] = converters.first.highlighter_prefix + payload["highlighter_suffix"] = converters.first.highlighter_suffix if render_with_liquid? Jekyll.logger.debug "Rendering Liquid:", self.relative_path diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index 78f7e041ab5..1d29e354979 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -116,8 +116,8 @@ def process(name) # # Returns nothing. def render(layouts, site_payload) - site_payload.page = to_liquid - site_payload.paginator = pager.to_liquid + site_payload["page"] = to_liquid + site_payload["paginator"] = pager.to_liquid do_layout(site_payload, layouts) end diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index f9c1b88c630..c17ba4b2785 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -32,23 +32,23 @@ def output_ext def run Jekyll.logger.debug "Rendering:", document.relative_path - payload.page = document.to_liquid + payload["page"] = document.to_liquid if document.collection.label == 'posts' && document.is_a?(Document) - payload.site['related_posts'] = document.related_posts + payload['site']['related_posts'] = document.related_posts end Jekyll.logger.debug "Pre-Render Hooks:", document.relative_path document.trigger_hooks(:pre_render, payload) info = { - :filters => [Jekyll::Filters], - :registers => { :site => site, :page => payload.page } + :filters => [Jekyll::Filters], + :registers => { :site => site, :page => payload['page'] } } # render and transform content (this becomes the final content of the object) - payload.highlighter_prefix = converters.first.highlighter_prefix - payload.highlighter_suffix = converters.first.highlighter_suffix + payload['highlighter_prefix'] = converters.first.highlighter_prefix + payload['highlighter_suffix'] = converters.first.highlighter_suffix output = document.content @@ -132,9 +132,9 @@ def place_in_layouts(content, payload, info) used = Set.new([layout]) while layout - payload.content = output - payload.page = document.to_liquid - payload.layout = layout.data + payload['content'] = output + payload['page'] = document.to_liquid + payload['layout'] = Utils.deep_merge_hashes(payload['layout'] || {}, layout.data) output = render_liquid( layout.content, From 2756503e7b32f9fa819e2652fa4932a6cc700401 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:18:02 -0800 Subject: [PATCH 0200/4996] features/hooks: use hash syntax to access page --- features/hooks.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/hooks.feature b/features/hooks.feature index b561c00c77e..5252d562160 100644 --- a/features/hooks.feature +++ b/features/hooks.feature @@ -89,7 +89,7 @@ Feature: Hooks And I have a "_plugins/ext.rb" file with content: """ Jekyll::Hooks.register :pages, :pre_render do |page, payload| - payload.page['myparam'] = 'special' if page.name == 'page1.html' + payload['page']['myparam'] = 'special' if page.name == 'page1.html' end """ And I have a "page1.html" page that contains "{{ page.myparam }}" From 06c45df8c3181fa2967dcc7952939e90b11af23a Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:09:19 -0800 Subject: [PATCH 0201/4996] Drop: hash syntax should use setter method for a property if it's defined --- lib/jekyll/drops/drop.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb index c194a5baada..af249996d2e 100644 --- a/lib/jekyll/drops/drop.rb +++ b/lib/jekyll/drops/drop.rb @@ -62,7 +62,9 @@ def [](key) # and the key matches a method in which case it raises a # DropMutationException. def []=(key, val) - if self.class.mutable + if respond_to?("#{key}=") + public_send("#{key}=", val) + elsif self.class.mutable @mutations[key] = val elsif respond_to? key raise Errors::DropMutationException, "Key #{key} cannot be set in the drop." From 62d7f5ecade234b07fe51fda22ed4ffd1e391bcc Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:10:05 -0800 Subject: [PATCH 0202/4996] Add feature test for layout data Fixes issue defined here: https://github.com/jekyll/jekyll/issues/4246#issuecomment-168367510 --- features/layout_data.feature | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 features/layout_data.feature diff --git a/features/layout_data.feature b/features/layout_data.feature new file mode 100644 index 00000000000..a06502c89b2 --- /dev/null +++ b/features/layout_data.feature @@ -0,0 +1,18 @@ +Feature: Layout data + As a hacker who likes to avoid repetition + I want to be able to embed data into my layouts + In order to make the layouts slightly dynamic + + Scenario: Use custom layout data + Given I have a _layouts directory + And I have a "_layouts/custom.html" file with content: + """ + --- + foo: my custom data + --- + {{ content }} foo: {{ layout.foo }} + """ + And I have an "index.html" page with layout "custom" that contains "page content" + When I run jekyll build + Then the "_site/index.html" file should exist + And I should see "page content\n foo: my custom data" in "_site/index.html" From 95a3c54ddb374a757cec468caed3d413dd2ea9e9 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 12:41:40 -0800 Subject: [PATCH 0203/4996] drop: only check mutable if the key is a method --- lib/jekyll/drops/drop.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb index af249996d2e..b4a07fc7c1b 100644 --- a/lib/jekyll/drops/drop.rb +++ b/lib/jekyll/drops/drop.rb @@ -64,10 +64,12 @@ def [](key) def []=(key, val) if respond_to?("#{key}=") public_send("#{key}=", val) - elsif self.class.mutable - @mutations[key] = val elsif respond_to? key - raise Errors::DropMutationException, "Key #{key} cannot be set in the drop." + if self.class.mutable + @mutations[key] = val + else + raise Errors::DropMutationException, "Key #{key} cannot be set in the drop." + end else fallback_data[key] = val end From e10c483ec3734fbf2eeff1a1edb71f6f23c5f205 Mon Sep 17 00:00:00 2001 From: Jordon Bedwell Date: Mon, 4 Jan 2016 14:44:13 -0600 Subject: [PATCH 0204/4996] Adjust Rubocop to fit in a bit better. --- .rubocop.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index 345bec1df0f..aa9f765f279 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,17 +2,22 @@ Metrics/MethodLength: { Max: 24 } Metrics/ClassLength: { Max: 240 } Metrics/ModuleLength: { Max: 240 } Metrics/LineLength: { Max: 112 } +Metrics/CyclomaticComplexity: { Max: 8 } +Metrics/PerceivedComplexity: { Max: 8 } +Metrics/ParameterLists: { Max: 4 } +Metrics/MethodLength: { Max: 24 } +Metrics/AbcSize: { Max: 20 } Style/IndentHash: { EnforcedStyle: consistent } Style/HashSyntax: { EnforcedStyle: hash_rockets } Style/SignalException: { EnforcedStyle: only_raise } Style/AlignParameters: { EnforcedStyle: with_fixed_indentation } Style/StringLiteralsInInterpolation: { EnforcedStyle: double_quotes } -Style/RegexpLiteral: { EnforcedStyle: slashes, AllowInnerSlashes: true } Style/MultilineMethodCallIndentation: { EnforcedStyle: indented } Style/MultilineOperationIndentation: { EnforcedStyle: indented } Style/FirstParameterIndentation: { EnforcedStyle: consistent } Style/StringLiterals: { EnforcedStyle: double_quotes } +Style/RegexpLiteral: { EnforcedStyle: slashes } Style/IndentArray: { EnforcedStyle: consistent } Style/ExtraSpacing: { AllowForAlignment: true } @@ -43,6 +48,7 @@ Style/FileName: { Enabled: false } Lint/UselessAccessModifier: { Enabled: false } Style/SpaceAroundOperators: { Enabled: false } Style/RedundantReturn: { Enabled: false } +Style/SingleLineMethods: { Enabled: false } AllCops: TargetRubyVersion: 2.0 From a62e085ea051617c0669aa22b732882d8eec8720 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 13:04:38 -0800 Subject: [PATCH 0205/4996] Update history to reflect merge of #4311 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 42e152d9d48..993ed5e9386 100644 --- a/History.markdown +++ b/History.markdown @@ -29,6 +29,7 @@ * Rename `@options` so that it does not impact Liquid. (#4173) * utils/drops: update Drop to support `Utils.deep_merge_hashes` (#4289) * Make sure jekyll/drops/drop is loaded first. (#4292) + * Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility (#4311) ### Development Fixes From ee2db21202db086936c478504068c3cda98a9c1f Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 13:05:19 -0800 Subject: [PATCH 0206/4996] Update history to reflect merge of #4312 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 993ed5e9386..b317e8d3c65 100644 --- a/History.markdown +++ b/History.markdown @@ -30,6 +30,7 @@ * utils/drops: update Drop to support `Utils.deep_merge_hashes` (#4289) * Make sure jekyll/drops/drop is loaded first. (#4292) * Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility (#4311) + * Drop: fix hash setter precendence (#4312) ### Development Fixes From ed815b0d2c302f91e4985137afd674cf102cec37 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 13:07:33 -0800 Subject: [PATCH 0207/4996] Update history to reflect merge of #4296 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index b317e8d3c65..9e5185268d0 100644 --- a/History.markdown +++ b/History.markdown @@ -62,6 +62,7 @@ * Add `jekyll-commonmark` to list of third-party plugins (#4299) * Add documentation for incremental regeneration (#4293) * Add note about removal of relative permalink support in upgrading docs (#4303) + * Add Pro Tip to use front matter variable to create clean URLs (#4296) ## 3.0.1 / 2015-11-17 From 1ea667474b8c82bcaccda08dc4e58b46649b3ae4 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 13:24:14 -0800 Subject: [PATCH 0208/4996] Clean up the permalink front matter protip Ref #4296. --- site/_docs/pages.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/site/_docs/pages.md b/site/_docs/pages.md index a2080868e03..59b827e2013 100644 --- a/site/_docs/pages.md +++ b/site/_docs/pages.md @@ -91,11 +91,10 @@ simple and it works. In the end the decision is yours! From cb5bc1093e2e7c3db63a76c096ce86a4c2eef02c Mon Sep 17 00:00:00 2001 From: Parker MooreProTip™: Use permalink Front Matter Variable
- Clean URLs can also be achieved using the permalink Front Matter variable. In the example above, using the first method, you can get URL http://example.com/other for the file other.md by adding this to the top of the file. -
- --- - permalink: /other/ - --- -+ Clean URLs can also be achieved using thepermalinkfront + matter variable. In the example above, using the first method, you can + get URLhttp://example.com/otherfor the file +other.mdby setting this at the top of the file: +permalink: /otherDate: Sun, 27 Dec 2015 10:56:47 -0500 Subject: [PATCH 0209/4996] utils: has_yaml_header? should accept files with extraneous spaces Occasionally, extra spaces at the end of the YAML front matter prologue are saved to a file and it goes missing without telling the user why. This should simply accept those changes without any detriment to the user, allowing anyone to add as many spaces as they like to the end of their front matter prologues. --- lib/jekyll/utils.rb | 4 +++- .../_posts/2015-12-27-extra-spaces.markdown | 3 +++ test/test_generated_site.rb | 2 +- test/test_utils.rb | 18 ++++++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 test/source/_posts/2015-12-27-extra-spaces.markdown diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb index 6b6e8f1cd91..b878d4d6b0e 100644 --- a/lib/jekyll/utils.rb +++ b/lib/jekyll/utils.rb @@ -120,7 +120,9 @@ def parse_date(input, msg = "Input could not be parsed.") # # Returns true if the YAML front matter is present. def has_yaml_header?(file) - !!(File.open(file, 'rb') { |f| f.read(5) } =~ /\A---\r?\n/) + !!(File.open(file, 'rb') { |f| f.readline } =~ /\A---\s*\r?\n/) + rescue EOFError + false end # Slugify a filename or title. diff --git a/test/source/_posts/2015-12-27-extra-spaces.markdown b/test/source/_posts/2015-12-27-extra-spaces.markdown new file mode 100644 index 00000000000..595a9cd9afe --- /dev/null +++ b/test/source/_posts/2015-12-27-extra-spaces.markdown @@ -0,0 +1,3 @@ +--- +extra: spaces +--- diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index 32999aba9b1..9a289dd3c8c 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -12,7 +12,7 @@ class TestGeneratedSite < JekyllUnitTest end should "ensure post count is as expected" do - assert_equal 48, @site.posts.size + assert_equal 49, @site.posts.size end should "insert site.posts into the index" do diff --git a/test/test_utils.rb b/test/test_utils.rb index bf7e8957aed..7d499f9ba15 100644 --- a/test/test_utils.rb +++ b/test/test_utils.rb @@ -259,4 +259,22 @@ class TestUtils < JekyllUnitTest end end + context "The \`Utils.has_yaml_header?\` method" do + should "accept files with yaml front matter" do + file = source_dir("_posts", "2008-10-18-foo-bar.markdown") + assert_equal "---\n", File.open(file, 'rb') { |f| f.read(4) } + assert Utils.has_yaml_header?(file) + end + should "accept files with extraneous spaces after yaml front matter" do + file = source_dir("_posts", "2015-12-27-extra-spaces.markdown") + assert_equal "--- \n", File.open(file, 'rb') { |f| f.read(6) } + assert Utils.has_yaml_header?(file) + end + should "reject pgp files and the like which resemble front matter" do + file = source_dir("pgp.key") + assert_equal "-----B", File.open(file, 'rb') { |f| f.read(6) } + refute Utils.has_yaml_header?(file) + end + end + end From 10a1b9451a270a24e3465c15aaaa115d2917db01 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 14:57:59 -0800 Subject: [PATCH 0210/4996] Update history to reflect merge of #4290 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 9e5185268d0..715b8bc3279 100644 --- a/History.markdown +++ b/History.markdown @@ -31,6 +31,7 @@ * Make sure jekyll/drops/drop is loaded first. (#4292) * Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility (#4311) * Drop: fix hash setter precendence (#4312) + * utils: `has_yaml_header?` should accept files with extraneous spaces (#4290) ### Development Fixes From 4fe9eecf053eb5d6047011372d8a195e88fb8614 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 11 Dec 2015 14:45:13 -0800 Subject: [PATCH 0211/4996] For blessed gems, shim their commands so users know how to use them. --- bin/jekyll | 14 ++++++++++---- lib/jekyll/external.rb | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/bin/jekyll b/bin/jekyll index 173a58d3842..96e157272ea 100755 --- a/bin/jekyll +++ b/bin/jekyll @@ -6,10 +6,6 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w( .. lib )) require 'jekyll' require 'mercenary' -Jekyll::External.require_if_present( - Jekyll::External.blessed_gems -) - Jekyll::PluginManager.require_from_bundler Jekyll::Deprecator.process(ARGV) @@ -26,6 +22,16 @@ Mercenary.program(:jekyll) do |p| p.option 'layouts_dir', '--layouts DIR', String, 'Layouts directory (defaults to ./_layouts)' p.option 'profile', '--profile', 'Generate a Liquid rendering profile' + Jekyll::External.require_if_present(Jekyll::External.blessed_gems) do |g| + cmd = g.split('-').last + p.command(cmd.to_sym) do |c| + c.syntax cmd + c.action do + Jekyll.logger.abort_with "You must install the '#{g}' gem to use the 'jekyll #{cmd}' command." + end + end + end + Jekyll::Command.subclasses.each { |c| c.init_with_program(p) } p.action do |args, _| diff --git a/lib/jekyll/external.rb b/lib/jekyll/external.rb index d213364bb68..2996d24b635 100644 --- a/lib/jekyll/external.rb +++ b/lib/jekyll/external.rb @@ -17,12 +17,13 @@ def blessed_gems # # names - a string gem name or array of gem names # - def require_if_present(names) + def require_if_present(names, &block) Array(names).each do |name| begin require name rescue LoadError Jekyll.logger.debug "Couldn't load #{name}. Skipping." + block.call(name) if block false end end From d37de5c8dfdcd10b4a2a48ae3498e954f4327c7e Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 16:17:48 -0800 Subject: [PATCH 0212/4996] If the subcommand cannot be found, suggest the installation of a gem. --- bin/jekyll | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bin/jekyll b/bin/jekyll index 96e157272ea..43364b9960c 100755 --- a/bin/jekyll +++ b/bin/jekyll @@ -40,8 +40,11 @@ Mercenary.program(:jekyll) do |p| puts p abort else - unless p.has_command?(args.first) - Jekyll.logger.abort_with "Invalid command. Use --help for more information" + subcommand = args.first + unless p.has_command? subcommand + Jekyll.logger.abort_with "fatal: 'jekyll #{args.first}' could not" \ + " be found. You may need to install the jekyll-#{args.first} gem" \ + " or a related gem to be able to use this subcommand." end end end From a9b80b2f06580efa144a09da0f139759db180630 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 16:21:53 -0800 Subject: [PATCH 0213/4996] features/layout_data: add scenario for inheriting layout data from child to parent Ref: https://github.com/jekyll/jekyll/pull/4312#discussion_r48781985 --- features/layout_data.feature | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/features/layout_data.feature b/features/layout_data.feature index a06502c89b2..789986651b4 100644 --- a/features/layout_data.feature +++ b/features/layout_data.feature @@ -16,3 +16,22 @@ Feature: Layout data When I run jekyll build Then the "_site/index.html" file should exist And I should see "page content\n foo: my custom data" in "_site/index.html" + + Scenario: Inherit custom layout data + Given I have a _layouts directory + And I have a "_layouts/custom.html" file with content: + """ + --- + layout: base + foo: my custom data + --- + {{ content }} + """ + And I have a "_layouts/base.html" file with content: + """ + {{ content }} foo: {{ layout.foo }} + """ + And I have an "index.html" page with layout "custom" that contains "page content" + When I run jekyll build + Then the "_site/index.html" file should exist + And I should see "page content\n foo: my custom data" in "_site/index.html" From 657b6b328cdb270894120cd68e46e4b87af9f017 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 16:26:02 -0800 Subject: [PATCH 0214/4996] Update history to reflect merge of #4307 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 715b8bc3279..343dc08c5e4 100644 --- a/History.markdown +++ b/History.markdown @@ -32,6 +32,7 @@ * Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility (#4311) * Drop: fix hash setter precendence (#4312) * utils: `has_yaml_header?` should accept files with extraneous spaces (#4290) + * Escape html from site.title and page.title in site template (#4307) ### Development Fixes From 935e5563e16eaa2ab15fdf0a01352516cddd7b47 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 16:31:06 -0800 Subject: [PATCH 0215/4996] Update history to reflect merge of #4254 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 343dc08c5e4..454ddc78e09 100644 --- a/History.markdown +++ b/History.markdown @@ -17,6 +17,7 @@ * Add a Jekyll doctor warning for URLs that only differ by case (#3171) * drops: create one base Drop class which can be set as mutable or not (#4285) * drops: provide `#to_h` to allow for hash introspection (#4281) + * Shim subcommands with indication of gem possibly required so users know how to use them (#4254) ### Bug Fixes From b6c283a4aee531a06ba6b3c9cde5e972889c7471 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 16:10:11 -0800 Subject: [PATCH 0216/4996] wip: allow custom extensions --- lib/jekyll/configuration.rb | 6 ++--- lib/jekyll/document.rb | 12 +++++++--- lib/jekyll/page.rb | 2 +- lib/jekyll/renderer.rb | 6 ++++- lib/jekyll/utils.rb | 5 ++++- test/source/_slides/example-slide-7.md | 6 +++++ test/source/dynamic_file.php | 4 ++++ test/test_document.rb | 31 ++++++++++++++++++++++---- test/test_filters.rb | 2 +- test/test_generated_site.rb | 5 +++-- test/test_page.rb | 9 ++++++++ test/test_site.rb | 1 + test/test_utils.rb | 1 - 13 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 test/source/_slides/example-slide-7.md create mode 100644 test/source/dynamic_file.php diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb index 0229e073e5c..0f8618a1b8b 100644 --- a/lib/jekyll/configuration.rb +++ b/lib/jekyll/configuration.rb @@ -298,11 +298,11 @@ def style_to_permalink(permalink_style) when :pretty "/:categories/:year/:month/:day/:title/" when :none - "/:categories/:title.html" + "/:categories/:title:output_ext" when :date - "/:categories/:year/:month/:day/:title.html" + "/:categories/:year/:month/:day/:title:output_ext" when :ordinal - "/:categories/:year/:y_day/:title.html" + "/:categories/:year/:y_day/:title:output_ext" else permalink_style.to_s end diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 38ced6751a8..c3fff329e17 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -4,7 +4,7 @@ module Jekyll class Document include Comparable - attr_reader :path, :site, :extname, :output_ext, :collection + attr_reader :path, :site, :extname, :collection attr_accessor :content, :output YAML_FRONT_MATTER_REGEXP = /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m @@ -23,7 +23,6 @@ def initialize(path, relations = {}) @site = relations[:site] @path = path @extname = File.extname(path) - @output_ext = Jekyll::Renderer.new(site, self).output_ext @collection = relations[:collection] @has_yaml_header = nil @@ -86,6 +85,13 @@ def relative_path @relative_path ||= Pathname.new(path).relative_path_from(Pathname.new(site.source)).to_s end + # The output extension of the document. + # + # Returns the output extension + def output_ext + @output_ext ||= Jekyll::Renderer.new(site, self).output_ext + end + # The base filename of the document, without the file extname. # # Returns the basename without the file extname. @@ -209,7 +215,7 @@ def destination(base_directory) dest = site.in_dest_dir(base_directory) path = site.in_dest_dir(dest, URL.unescape_path(url)) path = File.join(path, "index.html") if url.end_with?("/") - path << output_ext unless path.end_with?(output_ext) + path << output_ext unless path.end_with? output_ext path end diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index 1d29e354979..a3519f57f53 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -142,7 +142,7 @@ def relative_path def destination(dest) path = site.in_dest_dir(dest, URL.unescape_path(url)) path = File.join(path, "index") if url.end_with?("/") - path << output_ext unless path.end_with?(output_ext) + path << output_ext unless path.end_with? output_ext path end diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index c17ba4b2785..e6a41aead3c 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -22,7 +22,11 @@ def converters # # Returns the output extname including the leading period. def output_ext - @output_ext ||= converters.first.output_ext(document.extname) + @output_ext ||= if document.permalink + File.extname(document.permalink) + else + converters.first.output_ext(document.extname) + end end ###################### diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb index b878d4d6b0e..635b5d107d9 100644 --- a/lib/jekyll/utils.rb +++ b/lib/jekyll/utils.rb @@ -1,5 +1,8 @@ +require 'mime/types' + module Jekyll - module Utils extend self + module Utils + extend self autoload :Platforms, 'jekyll/utils/platforms' autoload :Ansi, "jekyll/utils/ansi" diff --git a/test/source/_slides/example-slide-7.md b/test/source/_slides/example-slide-7.md new file mode 100644 index 00000000000..a17c79fe8c3 --- /dev/null +++ b/test/source/_slides/example-slide-7.md @@ -0,0 +1,6 @@ +--- +am_i_convertible: yes +permalink: /slides/example-slide-7.php +--- + +Am I convertible? {{ page.am_i_convertible }} diff --git a/test/source/dynamic_file.php b/test/source/dynamic_file.php new file mode 100644 index 00000000000..823bb47fab0 --- /dev/null +++ b/test/source/dynamic_file.php @@ -0,0 +1,4 @@ +--- +--- + +I'm a Jekyll file! I should be output as dynamic_file.php, no .html to be found. diff --git a/test/test_document.rb b/test/test_document.rb index 6689e506652..7c6f7bef6b8 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -47,9 +47,7 @@ def assert_equal_value(key, one, other) context "with YAML ending in three dots" do setup do - @site = fixture_site({ - "collections" => ["methods"], - }) + @site = fixture_site({"collections" => ["methods"]}) @site.process @document = @site.collections["methods"].docs.last end @@ -195,6 +193,7 @@ def assert_equal_value(key, one, other) "permalink" => "/slides/test/:name" } }, + "permalink" => "pretty" }) @site.process @document = @site.collections["slides"].docs[0] @@ -245,7 +244,7 @@ def assert_equal_value(key, one, other) }) @site.permalink_style = :pretty @site.process - @document = @site.collections["slides"].docs[6] + @document = @site.collections["slides"].docs[7] @dest_file = dest_dir("slides/example-slide-Upper-Cased/index.html") end @@ -254,6 +253,29 @@ def assert_equal_value(key, one, other) end end + context "a document in a collection with cased file name" do + setup do + @site = fixture_site({ + "collections" => { + "slides" => { + "output" => true + } + } + }) + @site.process + @document = @site.collections["slides"].docs[6] + @dest_file = dest_dir("slides/example-slide-7.php") + end + + should "produce the permalink as the url" do + assert_equal "/slides/example-slide-7.php", @document.url + end + + should "be written to the proper directory" do + assert_equal @dest_file, @document.destination(dest_dir) + end + end + context "documents in a collection with custom title permalinks" do setup do @site = fixture_site({ @@ -273,6 +295,7 @@ def assert_equal_value(key, one, other) should "produce the right URL if they have a slug" do assert_equal "/slides/so-what-is-jekyll-exactly", @document.url end + should "produce the right destination file if they have a slug" do dest_file = dest_dir("slides/so-what-is-jekyll-exactly.html") assert_equal dest_file, @document.destination(dest_dir) diff --git a/test/test_filters.rb b/test/test_filters.rb index dc51252e68e..a2eb5bf0f7e 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -257,7 +257,7 @@ def to_liquid assert_equal 2, g["items"].size when "" assert g["items"].is_a?(Array), "The list of grouped items for '' is not an Array." - assert_equal 11, g["items"].size + assert_equal 12, g["items"].size end end end diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index 9a289dd3c8c..39a8b3d9669 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -39,8 +39,9 @@ class TestGeneratedSite < JekyllUnitTest end should "process other static files and generate correct permalinks" do - assert File.exist?(dest_dir('/about/index.html')) - assert File.exist?(dest_dir('/contacts.html')) + assert File.exist?(dest_dir('/about/index.html')), "about/index.html should exist" + assert File.exist?(dest_dir('/contacts.html')), "contacts.html should exist" + assert File.exist?(dest_dir('/dynamic_file.php')), "dynamic_file.php should exist" end should "print a nice list of static files" do diff --git a/test/test_page.rb b/test/test_page.rb index 16b9e06031c..904f5bd5d78 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -55,6 +55,15 @@ def do_render(page) assert_equal ".html", @page.ext end + should "deal properly with non-html extensions" do + @page = setup_page('dynamic_page.php') + @dest_file = dest_dir("dynamic_page.php") + assert_equal ".php", @page.ext + assert_equal "dynamic_page", @page.basename + assert_equal "/dynamic_page.php", @page.url + assert_equal @dest_file, @page.destination(dest_dir) + end + should "deal properly with dots" do @page = setup_page('deal.with.dots.html') @dest_file = dest_dir("deal.with.dots.html") diff --git a/test/test_site.rb b/test/test_site.rb index a638a3498ae..970084cf165 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -174,6 +174,7 @@ def generate(site) coffeescript.coffee contacts.html deal.with.dots.html + dynamic_file.php environment.html exploit.md foo.md diff --git a/test/test_utils.rb b/test/test_utils.rb index 7d499f9ba15..49844038229 100644 --- a/test/test_utils.rb +++ b/test/test_utils.rb @@ -276,5 +276,4 @@ class TestUtils < JekyllUnitTest refute Utils.has_yaml_header?(file) end end - end From dab53a697b8f58db9bef819dc9b6f5c3a592fe56 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 18:17:51 -0800 Subject: [PATCH 0217/4996] collection: tiny optimization to #url_template --- lib/jekyll/collection.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/jekyll/collection.rb b/lib/jekyll/collection.rb index ea6a81b6fc6..c76071712e7 100644 --- a/lib/jekyll/collection.rb +++ b/lib/jekyll/collection.rb @@ -186,9 +186,7 @@ def write? # # Returns the URL template to render collection's documents at. def url_template - metadata.fetch('permalink') do - Utils.add_permalink_suffix("/:collection/:path", site.permalink_style) - end + metadata['permalink'] ||= Utils.add_permalink_suffix("/:collection/:path", site.permalink_style) end # Extract options for this collection from the site configuration. From 9579924f8a7dc6f43829065021d63096b8a5dc3e Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 18:18:12 -0800 Subject: [PATCH 0218/4996] drop: tiny optimization to .mutable to create fewer objects --- lib/jekyll/drops/drop.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb index b4a07fc7c1b..a8342c14b44 100644 --- a/lib/jekyll/drops/drop.rb +++ b/lib/jekyll/drops/drop.rb @@ -15,8 +15,13 @@ class Drop < Liquid::Drop def self.mutable(is_mutable = nil) if is_mutable @is_mutable = is_mutable + else + @is_mutable = false end - @is_mutable || false + end + + def self.mutable? + @is_mutable end # Create a new Drop @@ -39,7 +44,7 @@ def initialize(obj) # # Returns the value for the given key, or nil if none exists def [](key) - if self.class.mutable && @mutations.key?(key) + if self.class.mutable? && @mutations.key?(key) @mutations[key] elsif respond_to? key public_send key @@ -65,7 +70,7 @@ def []=(key, val) if respond_to?("#{key}=") public_send("#{key}=", val) elsif respond_to? key - if self.class.mutable + if self.class.mutable? @mutations[key] = val else raise Errors::DropMutationException, "Key #{key} cannot be set in the drop." From dc31264160ecc8d0e7e21020098bf0010d1ba22e Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 18:18:28 -0800 Subject: [PATCH 0219/4996] url: tiny optimization to #generate_url_from_drop --- lib/jekyll/url.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/url.rb b/lib/jekyll/url.rb index 950945a7714..09975e3d404 100644 --- a/lib/jekyll/url.rb +++ b/lib/jekyll/url.rb @@ -78,14 +78,14 @@ def generate_url_from_hash(template) end def generate_url_from_drop(template) - template.gsub(/:([a-z_]+)/) do |match| - replacement = @placeholders.public_send(match.sub(':', '')) + template.gsub(/:([a-z_]+)/.freeze) do |match| + replacement = @placeholders.public_send(match.sub(':'.freeze, ''.freeze)) if replacement.nil? ''.freeze else self.class.escape_path(replacement) end - end.gsub(/\/\//, '/') + end.gsub(/\/\//.freeze, '/'.freeze) end # Returns a sanitized String URL, stripping "../../" and multiples of "/", From 8e68de27400d51edb8fd03aa72ee0801632b8fd1 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 4 Jan 2016 18:22:55 -0800 Subject: [PATCH 0220/4996] site: redirect /docs/ to /docs/home/ --- Gemfile | 3 ++- site/_config.yml | 1 + site/_docs/index.md | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 750c461b132..b253e8bf543 100644 --- a/Gemfile +++ b/Gemfile @@ -43,7 +43,8 @@ end gem 'jekyll-paginate', '~> 1.0' gem 'jekyll-coffeescript', '~> 1.0' -gem 'jekyll-feed' +gem 'jekyll-feed', '~> 0.1.3' +gem 'jekyll-redirect-from', '~> 0.9.1' gem 'jekyll-gist', '~> 1.0' gem 'mime-types', '~> 3.0' gem 'kramdown', '~> 1.9' diff --git a/site/_config.yml b/site/_config.yml index e09c4857045..c065f9f7015 100644 --- a/site/_config.yml +++ b/site/_config.yml @@ -21,3 +21,4 @@ url: http://jekyllrb.com gems: - jekyll-feed + - jekyll-redirect-from diff --git a/site/_docs/index.md b/site/_docs/index.md index bbb180871c3..ceae4749fb7 100644 --- a/site/_docs/index.md +++ b/site/_docs/index.md @@ -2,6 +2,7 @@ layout: docs title: Welcome permalink: /docs/home/ +redirect_from: /docs/index.html --- This site aims to be a comprehensive guide to Jekyll. We’ll cover topics such From 4cde2ad41cd31f42ac8e4c98f456be0726b16418 Mon Sep 17 00:00:00 2001 From: Jordon Bedwell Date: Tue, 5 Jan 2016 12:30:23 -0600 Subject: [PATCH 0221/4996] Remove rake analysis, use bundle exec rubocop now. --- rake/analysis.rake | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 rake/analysis.rake diff --git a/rake/analysis.rake b/rake/analysis.rake deleted file mode 100644 index 4fcc6af5563..00000000000 --- a/rake/analysis.rake +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################# -# -# Analyze the quality of the Jekyll source code (requires Docker) -# -############################################################################# - -task :analysis do - require "jekyll/utils/ansi" - require "open3" - - cmd = [ - "docker", "run", "--rm", "--env=CODE_PATH=#{Dir.pwd}", \ - "--volume='#{Dir.pwd}:/code'", "--volume=/var/run/docker.sock:/var/run/docker.sock", \ - "--volume=/tmp/cc:/tmp/cc", "-i", "codeclimate/codeclimate", "analyze" - ] - - ansi = Jekyll::Utils::Ansi - file = File.open(".analysis", "w+") - Open3.popen3(cmd.shelljoin) do |_, out, err, _| - while data = out.gets - file.write data - if data =~ /\A==/ - $stdout.print ansi.yellow(data) - - elsif data !~ %r!\A[0-9\-]+! - $stdout.puts data - - else - h, d = data.split(":", 2) - $stdout.print ansi.cyan(h) - $stdout.print ":", d - end - end - - while data = err.gets - file.write data - $stderr.print ansi.red(data) - end - end - - file.close -end \ No newline at end of file From a48c02a8895542efc2667eb2778d5eec5227b447 Mon Sep 17 00:00:00 2001 From: Jordon Bedwell Date: Tue, 5 Jan 2016 12:27:27 -0600 Subject: [PATCH 0222/4996] Reorganize and cleanup the Gemfile, shorten depends on Travis. --- .travis.yml | 1 + Gemfile | 96 ++++++++++++++++++++++++++++------------------------- 2 files changed, 51 insertions(+), 46 deletions(-) diff --git a/.travis.yml b/.travis.yml index 58980f41c2f..560fbb3df86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +bundler_args: --without doc:util:site:benchmark:development language: ruby cache: bundler sudo: false diff --git a/Gemfile b/Gemfile index b253e8bf543..c694a089886 100644 --- a/Gemfile +++ b/Gemfile @@ -1,58 +1,62 @@ -source 'https://rubygems.org' -gemspec name: 'jekyll' +source "https://rubygems.org" +gemspec :name => :jekyll -gem 'rake', '~> 10.1' +gem "rake", "~> 10.1" group :development do - gem 'rdoc', '~> 4.2' - gem 'launchy', '~> 2.3' - gem 'toml', '~> 0.1.0' - gem "rubocop" - gem 'pry' + unless ENV["CI"] + gem "pry", :require => false + gem "rubocop", { + :github => "bbatsov/rubocop", + :branch => :master, :require => false + } + end end -group :test do - gem 'redgreen', '~> 1.2' - gem 'shoulda', '~> 3.5' - gem 'cucumber', '~> 2.1' - gem 'simplecov', '~> 0.9' - gem 'jekyll_test_plugin' - gem 'jekyll_test_plugin_malicious' - gem 'minitest-reporters' - gem 'minitest-profile' - gem 'rspec-mocks' - gem 'minitest' - gem 'nokogiri' - - if RUBY_PLATFORM =~ /cygwin/ || RUBY_VERSION.start_with?("2.2") - gem 'test-unit' - end +group( :doc) { gem "rdoc", "~> 4.2" } # `--without doc` +group(:util) { gem "launchy", "~> 2.3" } # `--without util` +group(:site) { gem "html-proofer" } # `--without site` - if ENV['PROOF'] - gem 'html-proofer', '~> 2.0' - end +# `--without benchmark` +group :benchmark do + gem "rbtrace" + gem "ruby-prof" + gem "benchmark-ips" + gem "stackprof" end -group :benchmark do - if ENV['BENCHMARK'] - gem 'ruby-prof' - gem 'rbtrace' - gem 'stackprof' - gem 'benchmark-ips' +group :test do + gem "redgreen", "~> 1.2" + gem "shoulda", "~> 3.5" + gem "cucumber", "~> 2.1" + gem "simplecov", "~> 0.9" + gem "jekyll_test_plugin" + gem "jekyll_test_plugin_malicious" + gem "minitest-reporters" + gem "minitest-profile" + gem "rspec-mocks" + gem "minitest" + gem "nokogiri" + + if RUBY_PLATFORM =~ /cygwin/ || RUBY_VERSION.start_with?("2.2") + gem "test-unit" end end -gem 'jekyll-paginate', '~> 1.0' -gem 'jekyll-coffeescript', '~> 1.0' -gem 'jekyll-feed', '~> 0.1.3' -gem 'jekyll-redirect-from', '~> 0.9.1' -gem 'jekyll-gist', '~> 1.0' -gem 'mime-types', '~> 3.0' -gem 'kramdown', '~> 1.9' +group :optional_jekyll_dependencies do + gem "toml", "~> 0.1.0" + gem "jekyll-paginate", "~> 1.0" + gem "jekyll-coffeescript", "~> 1.0" + gem "jekyll-feed", "~> 0.1.3" + gem "jekyll-redirect-from", "~> 0.9.1" + gem "jekyll-gist", "~> 1.0" + gem "mime-types", "~> 3.0" + gem "kramdown", "~> 1.9" -platform :ruby, :mswin, :mingw do - gem 'rdiscount', '~> 2.0' - gem 'pygments.rb', '~> 0.6.0' - gem 'redcarpet', '~> 3.2', '>= 3.2.3' - gem 'classifier-reborn', '~> 2.0' - gem 'liquid-c', '~> 3.0' + platform :ruby, :mswin, :mingw do + gem "rdiscount", "~> 2.0" + gem "pygments.rb", "~> 0.6.0" + gem "redcarpet", "~> 3.2", ">= 3.2.3" + gem "classifier-reborn", "~> 2.0" + gem "liquid-c", "~> 3.0" + end end From b1a21159483401567ebffcc25909a957d8d96596 Mon Sep 17 00:00:00 2001 From: Peter Suschlik Date: Wed, 6 Jan 2016 17:19:25 +0100 Subject: [PATCH 0223/4996] Fix spelling of GitHub in docs and history * Github -> GitHub * GitHub pages -> GitHub Pages --- History.markdown | 2 +- lib/jekyll/commands/serve/servlet.rb | 2 +- lib/jekyll/converters/markdown.rb | 2 +- site/_docs/configuration.md | 2 +- site/_docs/deployment-methods.md | 2 +- site/_docs/github-pages.md | 2 +- site/_docs/history.md | 2 +- site/_docs/plugins.md | 4 ++-- site/_docs/variables.md | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/History.markdown b/History.markdown index 454ddc78e09..ec921ff2a2f 100644 --- a/History.markdown +++ b/History.markdown @@ -495,7 +495,7 @@ * Add Big Footnotes for Kramdown plugin to list of third-party plugins (#2916) * Remove warning regarding GHP use of singular types for front matter defaults (#2919) * Fix quote character typo in site documentation for templates (#2917) - * Point Liquid links to Liquid’s Github wiki (#2887) + * Point Liquid links to Liquid’s GitHub wiki (#2887) * Add HTTP Basic Auth (.htaccess) plugin to list of third-party plugins (#2931) * (Minor) Grammar & `_config.yml` filename fixes (#2911) * Added `mathml.rb` to the list of third-party plugins. (#2937) diff --git a/lib/jekyll/commands/serve/servlet.rb b/lib/jekyll/commands/serve/servlet.rb index cf4952168b2..bb4afe5a57b 100644 --- a/lib/jekyll/commands/serve/servlet.rb +++ b/lib/jekyll/commands/serve/servlet.rb @@ -17,7 +17,7 @@ def initialize(server, root, callbacks) end # Add the ability to tap file.html the same way that Nginx does on our - # Docker images (or on Github pages.) The difference is that we might end + # Docker images (or on GitHub Pages.) The difference is that we might end # up with a different preference on which comes first. def search_file(req, res, basename) diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index bb7b7ffa2b5..aed906d7493 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -37,7 +37,7 @@ def valid_processors # Public: A list of processors that you provide via plugins. # This is really only available if you are not in safe mode, if you are - # in safe mode (re: Github) then there will be none. + # in safe mode (re: GitHub) then there will be none. def third_party_processors self.class.constants - \ diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md index 6bf17766c61..1b1b707c5dc 100644 --- a/site/_docs/configuration.md +++ b/site/_docs/configuration.md @@ -678,7 +678,7 @@ extensions are: ### Kramdown In addition to the defaults mentioned above, you can also turn on recognition -of Github Flavored Markdown by passing an `input` option with a value of "GFM". +of GitHub Flavored Markdown by passing an `input` option with a value of "GFM". For example, in your `_config.yml`: diff --git a/site/_docs/deployment-methods.md b/site/_docs/deployment-methods.md index 54c51ae1589..ad4ea93c283 100644 --- a/site/_docs/deployment-methods.md +++ b/site/_docs/deployment-methods.md @@ -206,7 +206,7 @@ for that](https://github.com/openshift-cartridges/openshift-jekyll-cartridge). ## Kickster -Use [Kickster](http://kickster.nielsenramon.com/) for easy (automated) deploys to Github Pages when using unsupported plugins on Github Pages. +Use [Kickster](http://kickster.nielsenramon.com/) for easy (automated) deploys to GitHub Pages when using unsupported plugins on GitHub Pages. Kickster provides a basic Jekyll project setup packed with web best practises and useful optimization tools increasing your overall project quality. Kickster ships with automated and worry-free deployment scripts for GitHub Pages. diff --git a/site/_docs/github-pages.md b/site/_docs/github-pages.md index c9a4644ca5a..e19cdb2d24e 100644 --- a/site/_docs/github-pages.md +++ b/site/_docs/github-pages.md @@ -92,7 +92,7 @@ branch]({{ site.repository }}/tree/gh-pages) of the same repository. diff --git a/site/_docs/history.md b/site/_docs/history.md index 6a6404015a4..a99932fb88f 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -463,7 +463,7 @@ permalink: "/docs/history/" - Add Big Footnotes for Kramdown plugin to list of third-party plugins ([#2916]({{ site.repository }}/issues/2916)) - Remove warning regarding GHP use of singular types for front matter defaults ([#2919]({{ site.repository }}/issues/2919)) - Fix quote character typo in site documentation for templates ([#2917]({{ site.repository }}/issues/2917)) -- Point Liquid links to Liquid’s Github wiki ([#2887]({{ site.repository }}/issues/2887)) +- Point Liquid links to Liquid’s GitHub wiki ([#2887]({{ site.repository }}/issues/2887)) - Add HTTP Basic Auth (.htaccess) plugin to list of third-party plugins ([#2931]({{ site.repository }}/issues/2931)) - (Minor) Grammar & `_config.yml` filename fixes ([#2911]({{ site.repository }}/issues/2911)) - Added `mathml.rb` to the list of third-party plugins. ([#2937]({{ site.repository }}/issues/2937)) diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md index 2aff0b959d0..067fb6e7b26 100644 --- a/site/_docs/plugins.md +++ b/site/_docs/plugins.md @@ -828,7 +828,7 @@ LESS.js files during generation. - [Lychee Gallery Tag](https://gist.github.com/tobru/9171700) by [tobru](https://github.com/tobru): Include [Lychee](http://lychee.electerious.com/) albums into a post. For an introduction, see [Jekyll meets Lychee - A Liquid Tag plugin](https://tobrunet.ch/articles/jekyll-meets-lychee-a-liquid-tag-plugin/) - [Image Set/Gallery Tag](https://github.com/callmeed/jekyll-image-set) by [callmeed](https://github.com/callmeed): Renders HTML for an image gallery from a folder in your Jekyll site. Just pass it a folder name and class/tag options. - [jekyll_figure](https://github.com/lmullen/jekyll_figure): Generate figures and captions with links to the figure in a variety of formats -- [Jekyll Github Sample Tag](https://github.com/bwillis/jekyll-github-sample): A liquid tag to include a sample of a github repo file in your Jekyll site. +- [Jekyll GitHub Sample Tag](https://github.com/bwillis/jekyll-github-sample): A liquid tag to include a sample of a github repo file in your Jekyll site. - [Jekyll Project Version Tag](https://github.com/rob-murray/jekyll-version-plugin): A Liquid tag plugin that renders a version identifier for your Jekyll site sourced from the git repository containing your code. - [Piwigo Gallery](https://github.com/AlessandroLorenzi/piwigo_gallery) by [Alessandro Lorenzi](http://www.alorenzi.eu/): Jekyll plugin to generate thumbnails from a Piwigo gallery and display them with a Liquid tag - [mathml.rb](https://github.com/tmthrgd/jekyll-plugins) by Tom Thorogood: A plugin to convert TeX mathematics into MathML for display. @@ -873,7 +873,7 @@ LESS.js files during generation. - [generator-jekyllrb](https://github.com/robwierzbowski/generator-jekyllrb): A generator that wraps Jekyll in [Yeoman](http://yeoman.io/), a tool collection and workflow for builing modern web apps. - [grunt-jekyll](https://github.com/dannygarcia/grunt-jekyll): A straightforward [Grunt](http://gruntjs.com/) plugin for Jekyll. - [jekyll-postfiles](https://github.com/indirect/jekyll-postfiles): Add `_postfiles` directory and {% raw %}`{{ postfile }}`{% endraw %} tag so the files a post refers to will always be right there inside your repo. -- [A layout that compresses HTML](http://jch.penibelst.de/): Github Pages compatible, configurable way to compress HTML files on site build. +- [A layout that compresses HTML](http://jch.penibelst.de/): GitHub Pages compatible, configurable way to compress HTML files on site build. - [Jekyll CO₂](https://github.com/wdenton/jekyll-co2): Generates HTML showing the monthly change in atmospheric CO₂ at the Mauna Loa observatory in Hawaii. - [remote-include](http://www.northfieldx.co.uk/remote-include/): Includes files using remote URLs - [jekyll-minifier](https://github.com/digitalsparky/jekyll-minifier): Minifies HTML, XML, CSS, and Javascript both inline and as separate files utilising yui-compressor and htmlcompressor. diff --git a/site/_docs/variables.md b/site/_docs/variables.md index d4fb5293ddf..33b99fa54d9 100644 --- a/site/_docs/variables.md +++ b/site/_docs/variables.md @@ -106,7 +106,7 @@ following is a reference of the available data. related Posts. By default, these are the ten most recent posts. For high quality but slow to compute results, run theSource Files Must be in the Root Directory
-Github Pages overrides the “Site Source” configuration value, so if you locate your files anywhere other than the root directory, your site may not build correctly. +GitHub Pages overrides the “Site Source” configuration value, so if you locate your files anywhere other than the root directory, your site may not build correctly.
jekyllcommand with the--lsi(latent semantic - indexing) option. Also note Github pages does not support thelsioption when generating sites. + indexing) option. Also note GitHub Pages does not support thelsioption when generating sites. From 3061f2d2041103b6fd4662c787e1c094fe1a3b91 Mon Sep 17 00:00:00 2001 From: Parker MooreDate: Wed, 6 Jan 2016 09:51:10 -0800 Subject: [PATCH 0224/4996] Update history to reflect merge of #4322 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index ec921ff2a2f..dcfd3ab5dbc 100644 --- a/History.markdown +++ b/History.markdown @@ -44,6 +44,7 @@ * Create namespaced rake tasks in separate `.rake` files under `lib/tasks` (#4282) * markdown: refactor for greater readability & efficiency (#3771) * Fix many Rubocop style errors (#4301) + * Fix spelling of "GitHub" in docs and history (#4322) ### Site Enhancements From a1b39840bbf00d2acf1f5c84213d6e5692dfe0a4 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Wed, 6 Jan 2016 10:13:13 -0800 Subject: [PATCH 0225/4996] Revert change to Collection#url_template which caused test breakage. Reverts dab53a697b8f58db9bef819dc9b6f5c3a592fe56 --- lib/jekyll/collection.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/collection.rb b/lib/jekyll/collection.rb index c76071712e7..f0e3333d6a9 100644 --- a/lib/jekyll/collection.rb +++ b/lib/jekyll/collection.rb @@ -186,7 +186,9 @@ def write? # # Returns the URL template to render collection's documents at. def url_template - metadata['permalink'] ||= Utils.add_permalink_suffix("/:collection/:path", site.permalink_style) + @url_template ||= metadata.fetch('permalink') do + Utils.add_permalink_suffix("/:collection/:path", site.permalink_style) + end end # Extract options for this collection from the site configuration. From 7eefa0ffd71dfea3f65ce9db6e8c2f3354727710 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Wed, 6 Jan 2016 11:12:55 -0800 Subject: [PATCH 0226/4996] docs: remove profanity from installation page Fixes #4321 --- site/_docs/installation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/_docs/installation.md b/site/_docs/installation.md index f0c091f0d30..3720d043872 100644 --- a/site/_docs/installation.md +++ b/site/_docs/installation.md @@ -4,10 +4,10 @@ title: Installation permalink: /docs/installation/ --- -Getting Jekyll installed and ready-to-go should only take a few minutes. If it -ever becomes a pain in the ass, please [file an -issue]({{ site.repository }}/issues/new) (or submit a pull request) -describing the issue you encountered and how we might make the process easier. +Getting Jekyll installed and ready-to-go should only take a few minutes. +If it ever becomes a pain, please [file an issue]({{ site.repository }}/issues/new) +(or submit a pull request) describing the issue you +encountered and how we might make the process easier ### Requirements From acb2263f51af818ed74734b8843ddb0a18ac4532 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Thu, 7 Jan 2016 02:36:24 -0800 Subject: [PATCH 0227/4996] Add smartify filter --- lib/jekyll/converters/smartypants.rb | 34 ++++++++++++++++++++++++++++ lib/jekyll/filters.rb | 11 +++++++++ test/test_filters.rb | 5 ++++ 3 files changed, 50 insertions(+) create mode 100644 lib/jekyll/converters/smartypants.rb diff --git a/lib/jekyll/converters/smartypants.rb b/lib/jekyll/converters/smartypants.rb new file mode 100644 index 00000000000..7af9d297e9a --- /dev/null +++ b/lib/jekyll/converters/smartypants.rb @@ -0,0 +1,34 @@ +class Kramdown::Parser::SmartyPants < Kramdown::Parser::Kramdown + def initialize(source, options) + super + @block_parsers = [] + @span_parsers = [:smart_quotes, :html_entity, :typographic_syms, :escaped_chars] + end +end + +module Jekyll + module Converters + class SmartyPants < Converter + safe true + priority :low + + def initialize(config) + Jekyll::External.require_with_graceful_fail "kramdown" + @config = config["kramdown"].dup || {} + @config[:input] = :SmartyPants + end + + def matches(_) + false + end + + def output_ext(_) + nil + end + + def convert(content) + Kramdown::Document.new(content, @config).to_html.chomp + end + end + end +end diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 36760d65391..986bfdee1f6 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -15,6 +15,17 @@ def markdownify(input) converter.convert(input) end + # Convert a Markdown string into HTML output. + # + # input - The Markdown String to convert. + # + # Returns the HTML formatted String. + def smartify(input) + site = @context.registers[:site] + converter = site.find_converter_instance(Jekyll::Converters::SmartyPants) + converter.convert(input) + end + # Convert a Sass string into CSS output. # # input - The Sass String to convert. diff --git a/test/test_filters.rb b/test/test_filters.rb index dc51252e68e..63e5267280d 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -31,6 +31,11 @@ def initialize(opts = {}) assert_equal " something really simple
\n", @filter.markdownify("something **really** simple") end + should "smartify with simple string" do + assert_equal "SmartyPants is *not* Markdown", @filter.smartify("SmartyPants is *not* Markdown") + assert_equal "“This filter’s test…”", @filter.smartify(%q{"This filter's test..."}) + end + should "sassify with simple string" do assert_equal "p {\n color: #123456; }\n", @filter.sassify("$blue:#123456\np\n color: $blue") end From ab2cdac97961781e88f2f8331458d5ab36afa52e Mon Sep 17 00:00:00 2001 From: Parker MooreDate: Thu, 7 Jan 2016 18:29:11 -0800 Subject: [PATCH 0228/4996] Update history to reflect merge of #4318 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index dcfd3ab5dbc..a1ad1b896bf 100644 --- a/History.markdown +++ b/History.markdown @@ -45,6 +45,7 @@ * markdown: refactor for greater readability & efficiency (#3771) * Fix many Rubocop style errors (#4301) * Fix spelling of "GitHub" in docs and history (#4322) + * Reorganize and cleanup the Gemfile, shorten required depends. (#4318) ### Site Enhancements From 3ca451a855ab8f57913c12e1300508fbe3769ed6 Mon Sep 17 00:00:00 2001 From: "Craig P. Motlin" Date: Thu, 7 Jan 2016 23:23:43 -0500 Subject: [PATCH 0229/4996] Fix a typo in the documentation for configuration defaults. --- site/_docs/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md index 1b1b707c5dc..a12b2e265d3 100644 --- a/site/_docs/configuration.md +++ b/site/_docs/configuration.md @@ -397,7 +397,7 @@ webrick: ### Defaults -We only provide on default and that's a Content-Type header that disables +We only provide one default and that's a Content-Type header that disables caching in development so that you don't have to fight with Chrome's aggressive caching when you are in development mode. From 754bf14e230aa40fe0e42944a0f75faf2a61afd6 Mon Sep 17 00:00:00 2001 From: "Craig P. Motlin" Date: Fri, 8 Jan 2016 00:14:33 -0500 Subject: [PATCH 0230/4996] Fix grammar in the documentation for posts. --- site/_docs/posts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/_docs/posts.md b/site/_docs/posts.md index f16bd2021cc..47f60f3c320 100644 --- a/site/_docs/posts.md +++ b/site/_docs/posts.md @@ -84,7 +84,7 @@ One common solution is to create a folder in the root of the project directory called something like `assets` or `downloads`, into which any images, downloads or other resources are placed. Then, from within any post, they can be linked to using the site’s root as the path for the asset to include. Again, this will -depend on the way your site’s (sub)domain and path are configured, but here +depend on the way your site’s (sub)domain and path are configured, but here are some examples (in Markdown) of how you could do this using the `site.url` variable in a post. From a12ee551399eadd2b970f08629b39cb02f8381f8 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Thu, 7 Jan 2016 22:26:41 -0800 Subject: [PATCH 0231/4996] Update history to reflect merge of #4330 [ci skip] --- History.markdown | 1917 +--------------------------------------------- 1 file changed, 1 insertion(+), 1916 deletions(-) diff --git a/History.markdown b/History.markdown index a1ad1b896bf..7db11b3ef9e 100644 --- a/History.markdown +++ b/History.markdown @@ -1,1916 +1 @@ -## HEAD - -### Minor Enhancements - - * Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` (#4277) - * Add 'sample' Liquid filter Equivalent to Array#sample functionality (#4223) - * Cache parsed include file to save liquid parsing time. (#4120) - * Slightly speed up url sanitization and handle multiples of ///. (#4168) - * Print debug message when a document is skipped from reading (#4180) - * Include tag should accept multiple variables in the include name (#4183) - * Add `-o` option to serve command which opens server URL (#4144) - * Add CodeClimate platform for better code quality. (#4220) - * General improvements for WEBrick via jekyll serve such as SSL & custom headers (#4224, #4228) - * Add a default charset to content-type on webrick. (#4231) - * Switch `PluginManager` to use `require_with_graceful_fail` for better UX (#4233) - * Allow quoted date in front matter defaults (#4184) - * Add a Jekyll doctor warning for URLs that only differ by case (#3171) - * drops: create one base Drop class which can be set as mutable or not (#4285) - * drops: provide `#to_h` to allow for hash introspection (#4281) - * Shim subcommands with indication of gem possibly required so users know how to use them (#4254) - -### Bug Fixes - - * Pass build options into `clean` command (#4177) - * Allow users to use .htm and .xhtml (XHTML5.) (#4160) - * Prevent Shell Injection. (#4200) - * Convertible should make layout data accessible via `layout` instead of `page` (#4205) - * Avoid using `Dir.glob` with absolute path to allow special characters in the path (#4150) - * Handle empty config files (#4052) - * Rename `@options` so that it does not impact Liquid. (#4173) - * utils/drops: update Drop to support `Utils.deep_merge_hashes` (#4289) - * Make sure jekyll/drops/drop is loaded first. (#4292) - * Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility (#4311) - * Drop: fix hash setter precendence (#4312) - * utils: `has_yaml_header?` should accept files with extraneous spaces (#4290) - * Escape html from site.title and page.title in site template (#4307) - -### Development Fixes - - * `jekyll-docs` should be easily release-able (#4152) - * Allow use of Cucumber 2.1 or greater (#4181) - * Modernize Kramdown for Markdown converter. (#4109) - * Change TestDoctorCommand to JekyllUnitTest... (#4263) - * Create namespaced rake tasks in separate `.rake` files under `lib/tasks` (#4282) - * markdown: refactor for greater readability & efficiency (#3771) - * Fix many Rubocop style errors (#4301) - * Fix spelling of "GitHub" in docs and history (#4322) - * Reorganize and cleanup the Gemfile, shorten required depends. (#4318) - -### Site Enhancements - - * Add three plugins to directory (#4163) - * Add upgrading docs from 2.x to 3.x (#4157) - * Add `protect_email` to the plugins index. (#4169) - * Add `jekyll-deploy` to list of third-party plugins (#4179) - * Clarify plugin docs (#4154) - * Add Kickster to deployment methods in documentation (#4190) - * Add DavidBurela's tutorial for Windows to Windows docs page (#4210) - * Change GitHub code block to highlight tag to avoid it overlaps parent div (#4121) - * Update FormKeep link to be something more specific to Jekyll (#4243) - * Remove example Roger Chapman site, as the domain doesn't exist (#4249) - * Added configuration options for `draft_posts` to configuration docs (#4251) - * Fix checklist in `_assets.md` (#4259) - * Add Markdown examples to Pages docs (#4275) - * Add jekyll-paginate-category to list of third-party plugins (#4273) - * Add `jekyll-responsive_image` to list of third-party plugins (#4286) - * Add `jekyll-commonmark` to list of third-party plugins (#4299) - * Add documentation for incremental regeneration (#4293) - * Add note about removal of relative permalink support in upgrading docs (#4303) - * Add Pro Tip to use front matter variable to create clean URLs (#4296) - -## 3.0.1 / 2015-11-17 - -### Bug Fixes - - * Document: only superdirectories of the collection are categories (#4110) - * `Convertible#render_liquid` should use `render!` to cause failure on bad Liquid (#4077) - * Don't generate `.jekyll-metadata` in non-incremental build (#4079) - * Set `highlighter` config val to `kramdown.syntax_highlighter` (#4090) - * Align hooks implementation with documentation (#4104) - * Fix the deprecation warning in the doctor command (#4114) - * Fix case in `:title` and add `:slug` which is downcased (#4100) - -### Development Fixes - - * Fix test warnings when doing rake {test,spec} or script/test (#4078) - -### Site Enhancements - - * Update normalize.css to v3.0.3. (#4085) - * Update Font Awesome to v4.4.0. (#4086) - * Adds a note about installing the jekyll-gist gem to make gist tag work (#4101) - * Align hooks documentation with implementation (#4104) - * Add Jekyll Flickr Plugin to the list of third party plugins (#4111) - * Remove link to now-deleted blog post (#4125) - * Update the liquid syntax in the pagination docs (#4130) - * Add jekyll-language-plugin to plugins.md (#4134) - * Updated to reflect feedback in #4129 (#4137) - * Clarify assets.md based on feedback of #4129 (#4142) - * Re-correct the liquid syntax in the pagination docs (#4140) - -## 3.0.0 / 2015-10-26 - -### Major Enhancements - - * Liquid profiler (i.e. know how fast or slow your templates render) (#3762) - * Incremental regeneration (#3116) - * Add Hooks: a new kind of plugin (#3553) - * Upgrade to Liquid 3.0.0 (#3002) - * `site.posts` is now a Collection instead of an Array (#4055) - * Add basic support for JRuby (commit: 0f4477) - * Drop support for Ruby 1.9.3. (#3235) - * Support Ruby v2.2 (#3234) - * Support RDiscount 2 (#2767) - * Remove most runtime deps (#3323) - * Move to Rouge as default highlighter (#3323) - * Mimic GitHub Pages `.html` extension stripping behavior in WEBrick (#3452) - * Always include file extension on output files (#3490) - * Improved permalinks for pages and collections (#3538) - * Sunset (i.e. remove) Maruku (#3655) - * Remove support for relative permalinks (#3679) - * Iterate over `site.collections` as an array instead of a hash. (#3670) - * Adapt StaticFile for collections, config defaults (#3823) - * Add a Code of Conduct for the Jekyll project (#3925) - * Added permalink time variables (#3990) - * Add `--incremental` flag to enable incremental regen (disabled by default) (#4059) - -### Minor Enhancements - - * Deprecate access to Document#data properties and Collection#docs methods (#4058) - * Sort static files just once, and call `site_payload` once for all collections (#3204) - * Separate `jekyll docs` and optimize external gem handling (#3241) - * Improve `Site#getConverterImpl` and call it `Site#find_converter_instance` (#3240) - * Use relative path for `path` Liquid variable in Documents for consistency (#2908) - * Generalize `Utils#slugify` for any scripts (#3047) - * Added basic microdata to post template in site template (#3189) - * Store log messages in an array of messages. (#3244) - * Allow collection documents to override `output` property in front matter (#3172) - * Keep file modification times between builds for static files (#3220) - * Only downcase mixed-case categories for the URL (#2571) - * Added per post `excerpt_separator` functionality (#3274) - * Allow collections YAML to end with three dots (#3134) - * Add mode parameter to `slugify` Liquid filter (#2918) - * Perf: `Markdown#matches` should avoid regexp (#3321) - * Perf: Use frozen regular expressions for `Utils#slugify` (#3321) - * Split off Textile support into jekyll-textile-converter (#3319) - * Improve the navigation menu alignment in the site template on small - screens (#3331) - * Show the regeneration time after the initial generation (#3378) - * Site template: Switch default font to Helvetica Neue (#3376) - * Make the `include` tag a teensy bit faster. (#3391) - * Add `pkill -f jekyll` to ways to kill. (#3397) - * Site template: collapsed, variable-driven font declaration (#3360) - * Site template: Don't always show the scrollbar in code blocks (#3419) - * Site template: Remove undefined `text` class from `p` element (#3440) - * Site template: Optimize text rendering for legibility (#3382) - * Add `draft?` method to identify if Post is a Draft & expose to Liquid (#3456) - * Write regeneration metadata even on full rebuild (#3464) - * Perf: Use `String#end_with?("/")` instead of regexp when checking paths (#3516) - * Docs: document 'ordinal' built-in permalink style (#3532) - * Upgrade liquid-c to 3.x (#3531) - * Use consistent syntax for deprecation warning (#3535) - * Added build --destination and --source flags (#3418) - * Site template: remove unused `page.meta` attribute (#3537) - * Improve the error message when sorting null objects (#3520) - * Added liquid-md5 plugin (#3598) - * Documentation: RR replaced with RSpec Mocks (#3600) - * Documentation: Fix subpath. (#3599) - * Create 'tmp' dir for test_tags if it doesn't exist (#3609) - * Extract reading of data from `Site` to reduce responsibilities. (#3545) - * Removed the word 'Jekyll' a few times from the comments (#3617) - * `bin/jekyll`: with no args, exit with exit code 1 (#3619) - * Incremental build if destination file missing (#3614) - * Static files `mtime` liquid should return a `Time` obj (#3596) - * Use `Jekyll::Post`s for both LSI indexing and lookup. (#3629) - * Add `charset=utf-8` for HTML and XML pages in WEBrick (#3649) - * Set log level to debug when verbose flag is set (#3665) - * Added a mention on the Gemfile to complete the instructions (#3671) - * Perf: Cache `Document#to_liquid` and invalidate where necessary (#3693) - * Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and - `keep_dirs` only once, not once per iteration (#3696) - * Omit jekyll/jekyll-help from list of resources. (#3698) - * Add basic `jekyll doctor` test to detect fsnotify (OSX) anomalies. (#3704) - * Added talk.jekyllrb.com to "Have questions?" (#3694) - * Performance: Sort files only once (#3707) - * Performance: Marshal metadata (#3706) - * Upgrade highlight wrapper from `div` to `figure` (#3779) - * Upgrade mime-types to `~> 2.6` (#3795) - * Update windows.md with Ruby version info (#3818) - * Make the directory for includes configurable (#3782) - * Rename directory configurations to match `*_dir` convention for consistency (#3782) - * Internal: trigger hooks by owner symbol (#3871) - * Update MIME types from mime-db (#3933) - * Add header to site template `_config.yml` for clarity & direction (#3997) - * Site template: add timezone offset to post date frontmatter (#4001) - * Make a constant for the regex to find hidden files (#4032) - * Site template: refactor github & twitter icons into includes (#4049) - * Site template: add background to Kramdown Rouge-ified backtick code blocks (#4053) - -### Bug Fixes - - * `post_url`: fix access deprecation warning & fix deprecation msg (#4060) - * Perform jekyll-paginate deprecation warning correctly. (#3580) - * Make permalink parsing consistent with pages (#3014) - * `time()`pre-filter method should accept a `Date` object (#3299) - * Remove unneeded end tag for `link` in site template (#3236) - * Kramdown: Use `enable_coderay` key instead of `use_coderay` (#3237) - * Unescape `Document` output path (#2924) - * Fix nav items alignment when on multiple rows (#3264) - * Highlight: Only Strip Newlines/Carriage Returns, not Spaces (#3278) - * Find variables in front matter defaults by searching with relative file path. (#2774) - * Allow variables (e.g `:categories`) in YAML front matter permalinks (#3320) - * Handle nil URL placeholders in permalinks (#3325) - * Template: Fix nav items alignment when in "burger" mode (#3329) - * Template: Remove `!important` from nav SCSS introduced in #3329 (#3375) - * The `:title` URL placeholder for collections should be the filename slug. (#3383) - * Trim the generate time diff to just 3 places past the decimal place (#3415) - * The highlight tag should only clip the newlines before and after the *entire* block, not in between (#3401) - * highlight: fix problem with linenos and rouge. (#3436) - * `Site#read_data_file`: read CSV's with proper file encoding (#3455) - * Ignore `.jekyll-metadata` in site template (#3496) - * Template: Point documentation link to the documentation pages (#3502) - * Removed the trailing slash from the example `/blog` baseurl comment (#3485) - * Clear the regenerator cache every time we process (#3592) - * Readd (bring back) minitest-profile (#3628) - * Add WOFF2 font MIME type to Jekyll server MIME types (#3647) - * Be smarter about extracting the extname in `StaticFile` (#3632) - * Process metadata for all dependencies (#3608) - * Show error message if the YAML front matter on a page/post is invalid. (#3643) - * Upgrade redcarpet to 3.2 (Security fix: OSVDB-120415) (#3652) - * Create #mock_expects that goes directly to RSpec Mocks. (#3658) - * Open `.jekyll-metadata` in binary mode to read binary Marshal data (#3713) - * Incremental regeneration: handle deleted, renamed, and moved dependencies (#3717) - * Fix typo on line 19 of pagination.md (#3760) - * Fix it so that 'blog.html' matches 'blog.html' (#3732) - * Remove occasionally-problematic `ensure` in `LiquidRenderer` (#3811) - * Fixed an unclear code comment in site template SCSS (#3837) - * Fix reading of binary metadata file (#3845) - * Remove var collision with site template header menu iteration variable (#3838) - * Change non-existent `hl_linenos` to `hl_lines` to allow passthrough in safe mode (#3787) - * Add missing flag to disable the watcher (#3820) - * Update CI guide to include more direct explanations of the flow (#3891) - * Set `future` to `false` in the default config (#3892) - * filters: `where` should compare stringified versions of input & comparator (#3935) - * Read build options for `jekyll clean` command (#3828) - * Fix #3970: Use Gem::Version to compare versions, not `>`. - * Abort if no subcommand. Fixes confusing message. (#3992) - * Whole-post excerpts should match the post content (#4004) - * Change default font weight to 400 to fix bold/strong text issues (#4050) - * Document: Only auto-generate the excerpt if it's not overridden (#4062) - * Utils: `deep_merge_hashes` should also merge `default_proc` (45f69bb) - * Defaults: compare paths in `applies_path?` as `String`s to avoid confusion (7b81f00) - -### Development Fixes - - * Remove loader.rb and "modernize" `script/test`. (#3574) - * Improve the grammar in the documentation (#3233) - * Update the LICENSE text to match the MIT license exactly (#3253) - * Update rake task `site:publish` to fix minor bugs. (#3254) - * Switch to shields.io for the README badges. (#3255) - * Use `FileList` instead of `Dir.glob` in `site:publish` rake task (#3261) - * Fix test script to be platform-independent (#3279) - * Instead of symlinking `/tmp`, create and symlink a local `tmp` in the tests (#3258) - * Fix some spacing (#3312) - * Fix comment typo in `lib/jekyll/frontmatter_defaults.rb` (#3322) - * Move all `regenerate?` checking to `Regenerator` (#3326) - * Factor out a `read_data_file` call to keep things clean (#3380) - * Proof the site with CircleCI. (#3427) - * Update LICENSE to 2015. (#3477) - * Upgrade tests to use Minitest (#3492) - * Remove trailing whitespace (#3497) - * Use `fixture_site` for Document tests (#3511) - * Remove adapters deprecation warning (#3529) - * Minor fixes to `url.rb` to follow GitHub style guide (#3544) - * Minor changes to resolve deprecation warnings (#3547) - * Convert remaining textile test documents to markdown (#3528) - * Migrate the tests to use rspec-mocks (#3552) - * Remove `activesupport` (#3612) - * Added tests for `Jekyll:StaticFile` (#3633) - * Force minitest version to 5.5.1 (#3657) - * Update the way cucumber accesses Minitest assertions (#3678) - * Add `script/rubyprof` to generate cachegrind callgraphs (#3692) - * Upgrade cucumber to 2.x (#3795) - * Update Kramdown. (#3853) - * Updated the scripts shebang for portability (#3858) - * Update JRuby testing to 9K ([3ab386f](https://github.com/jekyll/jekyll/commit/3ab386f1b096be25a24fe038fc70fd0fb08d545d)) - * Organize dependencies into dev and test groups. (#3852) - * Contributing.md should refer to `script/cucumber` (#3894) - * Update contributing documentation to reflect workflow updates (#3895) - * Add script to vendor mime types (#3933) - * Ignore .bundle dir in SimpleCov (#4033) - -### Site Enhancements - - * Add 'info' labels to certain notes in collections docs (#3601) - * Remove extra spaces, make the last sentence less awkward in permalink docs (#3603) - * Update the permalinks documentation to reflect the updates for 3.0 (#3556) - * Add blog post announcing Jekyll Help (#3523) - * Add Jekyll Talk to Help page on site (#3518) - * Change Ajax pagination resource link to use HTTPS (#3570) - * Fixing the default host on docs (#3229) - * Add `jekyll-thumbnail-filter` to list of third-party plugins (#2790) - * Add link to 'Adding Ajax pagination to Jekyll' to Resources page (#3186) - * Add a Resources link to tutorial on building dynamic navbars (#3185) - * Semantic structure improvements to the post and page layouts (#3251) - * Add new AsciiDoc plugin to list of third-party plugins. (#3277) - * Specify that all transformable collection documents must contain YAML front matter (#3271) - * Assorted accessibility fixes (#3256) - * Update configuration docs to mention `keep_files` for `destination` (#3288, #3296) - * Break when we successfully generate nav link to save CPU cycles. (#3291) - * Update usage docs to mention `keep_files` and a warning about `destination` cleaning (#3295) - * Add logic to automatically generate the `next_section` and `prev_section` navigation items (#3292) - * Some small fixes for the Plugins TOC. (#3306) - * Added versioning comment to configuration file (#3314) - * Add `jekyll-minifier` to list of third-party plugins (#3333) - * Add blog post about the Jekyll meet-up (#3332) - * Use `highlight` Liquid tag instead of the four-space tabs for code (#3336) - * 3.0.0.beta1 release post (#3346) - * Add `twa` to the list of third-party plugins (#3384) - * Remove extra spaces (#3388) - * Fix small grammar errors on a couple pages (#3396) - * Fix typo on Templates docs page (#3420) - * s/three/four for plugin type list (#3424) - * Release jekyllrb.com as a locally-compiled site. (#3426) - * Add a jekyllrb.com/help page which elucidates places from which to get help (#3428) - * Remove extraneous dash on Plugins doc page which caused a formatting error (#3431) - * Fix broken link to Jordan Thornquest's website. (#3438) - * Change the link to an extension (#3457) - * Fix Twitter link on the help page (#3466) - * Fix wording in code snippet highlighting section (#3475) - * Add a `/` to `paginate_path` in the Pagination documentation (#3479) - * Add a link on all the docs pages to "Improve this page". (#3510) - * Add jekyll-auto-image generator to the list of third-party plugins (#3489) - * Replace link to the proposed `picture` element spec (#3530) - * Add frontmatter date formatting information (#3469) - * Improve consistency and clarity of plugins options note (#3546) - * Add permalink warning to pagination docs (#3551) - * Fix grammar in Collections docs API stability warning (#3560) - * Restructure `excerpt_separator` documentation for clarity (#3550) - * Fix accidental line break in collections docs (#3585) - * Add information about the `.jekyll-metadata` file (#3597) - * Document addition of variable parameters to an include (#3581) - * Add `jekyll-files` to the list of third-party plugins. (#3586) - * Define the `install` step in the CI example `.travis.yml` (#3622) - * Expand collections documentation. (#3638) - * Add the "warning" note label to excluding `vendor` in the CI docs page (#3623) - * Upgrade pieces of the Ugrading guide for Jekyll 3 (#3607) - * Showing how to access specific data items (#3468) - * Clarify pagination works from within HTML files (#3467) - * Add note to `excerpt_separator` documentation that it can be set globally (#3667) - * Fix some names on Troubleshooting page (#3683) - * Add `remote_file_content` tag plugin to list of third-party plugins (#3691) - * Update the Redcarpet version on the Configuration page. (#3743) - * Update the link in the welcome post to point to Jekyll Talk (#3745) - * Update link for navbars with data attributes tutorial (#3728) - * Add `jekyll-asciinema` to list of third-party plugins (#3750) - * Update pagination example to be agnostic to first pagination dir (#3763) - * Detailed instructions for rsync deployment method (#3848) - * Add Jekyll Portfolio Generator to list of plugins (#3883) - * Add `site.html_files` to variables docs (#3880) - * Add Static Publisher tool to list of deployment methods (#3865) - * Fix a few typos. (#3897) - * Add `jekyll-youtube` to the list of third-party plugins (#3931) - * Add Views Router plugin (#3950) - * Update install docs (Core dependencies, Windows reqs, etc) (#3769) - * Use Jekyll Feed for jekyllrb.com (#3736) - * Add jekyll-umlauts to plugins.md ($3966) - * Troubleshooting: fix broken link, add other mac-specific info (#3968) - * Add a new site for learning purposes (#3917) - * Added documentation for Jekyll environment variables (#3989) - * Fix broken configuration documentation page (#3994) - * Add troubleshooting docs for installing on El Capitan (#3999) - * Add Lazy Tweet Embedding to the list of third-party plugins (#4015) - * Add installation instructions for 2 of 3 options for plugins (#4013) - * Add alternative jekyll gem installation instructions (#4018) - * Fix a few typos and formatting problems. (#4022) - * Fix pretty permalink example (#4029) - * Note that `_config.yml` is not reloaded during regeneration (#4034) - * Apply code block figure syntax to blocks in CONTRIBUTING (#4046) - * Add jekyll-smartify to the list of third-party plugins (#3572) - -## 2.5.3 / 2014-12-22 - -### Bug Fixes - - * When checking a Markdown extname, include position of the `.` (#3147) - * Fix `jsonify` Liquid filter handling of boolean values (#3154) - * Add comma to value of `viewport` meta tag (#3170) - * Set the link type for the RSS feed to `application/rss+xml` (#3176) - * Refactor `#as_liquid` (#3158) - -### Development Fixes - - * Exclude built-in bundles from being added to coverage report (#3180) - -### Site Enhancements - - * Add `@alfredxing` to the `@jekyll/core` team. :tada: (#3218) - * Document the `-q` option for the `build` and `serve` commands (#3149) - * Fix some minor typos/flow fixes in documentation website content (#3165) - * Add `keep_files` to configuration documentation (#3162) - * Repeat warning about cleaning of the `destination` directory (#3161) - * Add jekyll-500px-embed to list of third-party plugins (#3163) - * Simplified platform detection in Gemfile example for Windows (#3177) - * Add the `jekyll-jalali` plugin added to the list of third-party plugins. (#3198) - * Add Table of Contents to Troubleshooting page (#3196) - * Add `inline_highlight` plugin to list of third-party plugins (#3212) - * Add `jekyll-mermaid` plugin to list of third-party plugins (#3222) - -## 2.5.2 / 2014-11-17 - -### Minor Enhancements - - * `post_url` should match `post.name` instead of slugs and dates (#3058) - -### Bug Fixes - - * Fix bundle require for `:jekyll_plugins` (#3119) - * Remove duplicate regexp phrase: `^\A` (#3089) - * Remove duplicate `Conversion error:` message in `Convertible` (#3088) - * Print full conversion error message in `Renderer#convert` (#3090) - -### Site Enhancements - - * Change variable names in Google Analytics script (#3093) - * Mention CSV files in the docs for data files (#3101) - * Add trailing slash to `paginate_path` example. (#3091) - * Get rid of noifniof (`excerpt_separator`) (#3094) - * Sass improvements, around nesting mostly. (#3123) - * Add webmentions.io plugin to the list of third-party plugins (#3127) - * Add Sass mixins and use them. (#2904) - * Slightly compress jekyll-sticker.jpg. (#3133) - * Update gridism and separate out related but custom styles. (#3132) - * Add remote-include plugin to list of third-party plugins (#3136) - -## 2.5.1 / 2014-11-09 - -### Bug Fixes - - * Fix path sanitation bug related to Windows drive names (#3077) - -### Development Fixes - - * Add development time dependencies on minitest and test-unit to gemspec for cygwin (#3064) - * Use Travis's built-in caching. (#3075) - -## 2.5.0 / 2014-11-06 - -### Minor Enhancements - - * Require gems in `:jekyll_plugins` Gemfile group unless `JEKYLL_NO_BUNDLER_REQUIRE` is specified in the environment. (#2865) - * Centralize path sanitation in the `Site` object (#2882) - * Allow placeholders in permalinks (#3031) - * Allow users to specify the log level via `JEKYLL_LOG_LEVEL`. (#3067) - * Fancy Indexing with WEBrick (#3018) - * Allow Enumerables to be used with `where` filter. (#2986) - * Meta descriptions in the site template now use `page.excerpt` if it's available (#2964) - * Change indentation in `head.html` of site template to 2 spaces from 4 (#2973) - * Use a `$content-width` variable instead of a fixed value in the site template CSS (#2972) - * Strip newlines in site template `` description. (#2982) - * Add link to atom feed in `head` of site template files (#2996) - * Performance optimizations (#2994) - * Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration - over hash keys. (#3017) - * Further minor performance enhancements. (#3022) - * Add 'b' and 's' aliases for build and serve, respectively (#3065) - -### Bug Fixes - - * Fix Rouge's RedCarpet plugin interface integration (#2951) - * Remove `--watch` from the site template blog post since it defaults - to watching in in 2.4.0 (#2922) - * Fix code for media query mixin in site template (#2946) - * Allow post URL's to have `.htm` extensions (#2925) - * `Utils.slugify`: Don't create new objects when gsubbing (#2997) - * The jsonify filter should deep-convert to Liquid when given an Array. (#3032) - * Apply `jsonify` filter to Hashes deeply and effectively (#3063) - * Use `127.0.0.1` as default host instead of `0.0.0.0` (#3053) - * In the case that a Gemfile does not exist, ensure Jekyll doesn't fail on requiring the Gemfile group (#3066) - -### Development Fixes - - * Fix a typo in the doc block for `Jekyll::URL.escape_path` (#3052) - * Add integration test for `jekyll new --blank` in TestUnit (#2913) - * Add unit test for `jekyll new --force` logic (#2929) - * Update outdated comment for `Convertible#transform` (#2957) - * Add Hakiri badge to README. (#2953) - * Add some simple benchmarking tools. (#2993) - -### Site Enhancements - - * `NOKOGIRI_USE_SYSTEM_LIBRARIES=true` **decreases** installation time. (#3040) - * Add FormKeep to resources as Jekyll form backend (#3010) - * Fixing a mistake in the name of the new Liquid tag (#2969) - * Update Font Awesome to v4.2.0. (#2898) - * Fix link to #2895 in 2.4.0 release post. (#2899) - * Add Big Footnotes for Kramdown plugin to list of third-party plugins (#2916) - * Remove warning regarding GHP use of singular types for front matter defaults (#2919) - * Fix quote character typo in site documentation for templates (#2917) - * Point Liquid links to Liquid’s GitHub wiki (#2887) - * Add HTTP Basic Auth (.htaccess) plugin to list of third-party plugins (#2931) - * (Minor) Grammar & `_config.yml` filename fixes (#2911) - * Added `mathml.rb` to the list of third-party plugins. (#2937) - * Add `--force_polling` to the list of configuration options (#2943) - * Escape unicode characters in site CSS (#2906) - * Add note about using the github-pages gem via pages.github.com/versions.json (#2939) - * Update usage documentation to reflect 2.4 auto-enabling of `--watch`. (#2954) - * Add `--skip-initial-build` to configuration docs (#2949) - * Fix a minor typo in Templates docs page (#2959) - * Add a ditaa-ditaa plugin under Other section on the Plugins page (#2967) - * Add `build/serve -V` option to configuration documentation (#2948) - * Add 'Jekyll Twitter Plugin' to list of third-party plugins (#2979) - * Docs: Update normalize.css to v3.0.2. (#2981) - * Fix typo in Continuous Integration documentation (#2984) - * Clarify behavior of `:categories` in permalinks (#3011) - -## 2.4.0 / 2014-09-09 - -### Minor Enhancements - - * Support a new `relative_include` tag (#2870) - * Auto-enable watch on 'serve' (#2858) - * Render Liquid in CoffeeScript files (#2830) - * Array Liquid filters: `push`, `pop`, `unshift`, `shift` (#2895) - * Add `:title` to collection URL template fillers (#2864) - * Add support for CSV files in the `_data` directory (#2761) - * Add the `name` variable to collection permalinks (#2799) - * Add `inspect` liquid filter. (#2867) - * Add a `slugify` Liquid filter (#2880) - -### Bug Fixes - - * Use `Jekyll.sanitized_path` when adding static files to Collections (#2849) - * Fix encoding of `main.scss` in site template (#2771) - * Fix orientation bugs in default site template (#2862) - -### Development Fixes - - * Update simplecov gem to 0.9 (#2748) - * Remove `docs/` dir (#2768) - * add class `<< self` idiom to `New` command (#2817) - * Allow Travis to 'parallelize' our tests (#2859) - * Fix test for Liquid rendering in Sass (#2856) - * Fixing "vertycal" typo in site template's `_base.scss` (#2889) - -### Site Enhancements - - * Document the `name` variable for collection permalinks (#2829) - * Adds info about installing jekyll in current dir (#2839) - * Remove deprecated `jekyll-projectlist` plugin from list of third-party - plugins (#2742) - * Remove tag plugins that are built in to Jekyll (#2751) - * Add `markdown-writer` package for Atom Editor to list of third-party - plugins (#2763) - * Fix typo in site documentation for collections (#2764) - * Fix minor typo on plugins docs page (#2765) - * Replace markdown with HTML in `sass_dir` note on assets page (#2791) - * Fixed "bellow" typo in datafiles docs (#2879) - * Fix code/markdown issue in documentation for variables (#2877) - * Remove Good Include third-party plugin from plugins page (#2881) - * Add some more docs on `include_relative` (#2884) - -## 2.3.0 / 2014-08-10 - -### Minor Enhancements - - * Allow Convertibles to be converted by >= 1 converters (#2704) - * Allow Sass files to be rendered in Liquid, but never place them in layouts. (#2733) - * Add `jekyll help` command (#2707) - * Use `.scss` for `site_template` styles. (#2667) - * Don't require the `scope` key in front matter defaults (#2659) - * No longer set `permalink: pretty` in the `_config.yml` for the site template (#2680) - * Rework site template to utilize Sass (#2687) - * Notify the user when auto-regeneration is disabled. (#2696) - * Allow partial variables in include tag filename argument (#2693) - * Move instances of `Time.parse` into a Utils method (#2682) - * Ignore subfolders in the `_posts` folder (#2705) REVERTS (#2633) - * Front Matter default types should always be pluralized (#2732) - * Read in static files into `collection.files` as `StaticFile`s (#2737) - * Add `sassify` and `scssify` Liquid filters (#2739) - * Replace `classifier` gem with `classifier-reborn` (#2721) - -### Bug Fixes - - * Use only the last extname when multiple converters exist (#2722) - * Call `#to_liquid` before calling `#to_json` in jsonify filter (#2729) - * Use non padded config in `strftime` to avoid parse string twice (#2673) - * Replace deprecated Ruby methods with undeprecated ones (#2664) - * Catch errors when parsing Post `date` front matter value & produce nice error message (#2649) - * Allow static files in Collections (#2615) - * Fixed typo in `Deprecator#gracefully_require` error message (#2694) - * Remove preemptive loading of the 'classifier' gem. (#2697) - * Use case-insensitive checking for the file extensions when loading config files (#2718) - * When Reading Documents, Respect `encoding` Option (#2720) - * Refactor based on jekyll-watch clean-up. (#2716) - * `Document#to_s` should produce just the content of the document (#2731) - -### Development Fixes - - * Only include lib files in the gem (#2671) - * Fix `git diff` command in `proof` script (#2672) - * Make default rake task a multitask so tests run in parallel (#2735) - -### Site Enhancements - - * Use Sass and a Docs Collection (#2651) - * Add `latest_version.txt` file to the site (#2740) - * Be more ambiguous about `page.content`. But more transparent. (#2522) - * Streamlining front matter wording (instead of front-matter/frontmatter) (#2674) - * Add note that source directory cannot be modified in GitHub Pages (#2669) - * Fix links from #2669 to be actual HTML. Whoops. (#2679) - * Add link to `jekyll-slim` in list of third-party plugins (#2689) - * Add Barry Clark's Smashing Magazine tutorial to resources page (#2688) - * Reorganize and update default configuration settings (#2456) - * Fixing indentation in the configuration docs about Redcarpet exts (#2717) - * Use `null` in YAML instead of `nil` in default config list (#2719) - * Fix typo in Continuous Integration docs (#2708) - -## 2.2.0 / 2014-07-29 - -### Minor Enhancements - - * Throw a warning if the specified layout does not exist (#2620) - * Whitelist Pygments options in safe mode (#2642) - -### Bug Fixes - - * Remove unnecessary `Jekyll::Tags::IncludeTag#blank?` method (#2625) - * Categories in the path are ignored (#2633) - -### Development Fixes - - * Refactoring Errors & Requires of Third-Party stuff (#2591) - * Add further tests for categories (#2584) - * Proof site with html-proofer on change (#2605) - * Fix up bug in #2605 which caused proofing the site not to function (#2608) - * Use `bundle exec` in `script/proof` (#2610) - -### Site Enhancements - - * Update Kramdown urls (#2588) - * Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of - third-party plugins (#2596) - * Fix a bunch of broken links in the site (#2601) - * Replace dead links with working links (#2611) - * Add jekyll-hook to deployment methods (#2617) - * Added kramdown-with-pygments plugin to the list of third-party plugins (#2623) - * Update outdated "Extras" page and remove duplicate documentation (#2622) - * Add co2 plugin to list of third-party plugins (#2639) - * Attempt to clarify the way Sass imports happen (#2642) - -## 2.1.1 / 2014-07-01 - -### Bug Fixes - - * Patch read vulnerabilities for data & confirm none for layouts (#2563) - * Update Maruku dependency to allow use of the latest version (#2576) - * Remove conditional assignment from document URL to prevent stale urls (#2575) - -### Site Enhancements - - * Add vertical margin to `highlight` to separate code blocks (#2558) - * Add `html_pages` to Variables docs (#2567) - * Fixed broken link to Permalinks page (#2572) - * Update link to Windows installation guide (#2578) - -## 2.1.0 / 2014-06-28 - -### Minor Enhancements - - * Bump to the latest Liquid version, 2.6.1 (#2495) - * Add support for JSON files in the `_data` directory (#2369) - * Allow subclasses to override `EXCERPT_ATTRIBUTES_FOR_LIQUID` (#2408) - * Add `Jekyll.env` and `jekyll.environment` (the Liquid var) (#2417) - * Use `_config.yaml` or `_config.yml` (`.yml` takes precedence) (#2406) - * Override collection url template (#2418) - * Allow subdirectories in `_data` (#2395) - * Extract Pagination Generator into gem: `jekyll-paginate` (#2455) - * Utilize `date_to_rfc822` filter in site template (#2437) - * Add categories, last build datetime, and generator to site template - feed (#2438) - * Configurable, replaceable Logger-compliant logger (#2444) - * Extract `gist` tag into a separate gem (#2469) - * Add `collection` attribute to `Document#to_liquid` to access the - document's collection label. (#2436) - * Upgrade listen to `2.7.6 <= x < 3.0.0` (#2492) - * Allow configuration of different Twitter and GitHub usernames in site template (#2485) - * Bump Pygments to v0.6.0 (#2504) - * Front matter defaults for documents in collections (#2419) - * Include files with a url which ends in `/` in the `site.html_pages` list (#2524) - * Make `highlight` tag use `language-` prefix in CSS class (#2511) - * Lookup item property via `item#to_liquid` before `#data` or `#[]` in filters (#2493) - * Skip initial build of site on serve with flag (#2477) - * Add support for `hl_lines` in `highlight` tag (#2532) - * Spike out `--watch` flag into a separate gem (#2550) - -### Bug Fixes - - * Liquid `sort` filter should sort even if one of the values is `nil` (#2345) - * Remove padding on `pre code` in the site template CSS (#2383) - * Set `log_level` earlier to silence info level configuration output (#2393) - * Only list pages which have `title` in site template (#2411) - * Accept `Numeric` values for dates, not `Number` values (#2377) - * Prevent code from overflowing container in site template (#2429) - * Encode URLs in UTF-8 when escaping and unescaping (#2420) - * No Layouts or Liquid for Asset Files (#2431) - * Allow front matter defaults to set post categories (#2373) - * Fix command in subcommand deprecation warning (#2457) - * Keep all parent directories of files/dirs in `keep_files` (#2458) - * When using RedCarpet and Rouge without Rouge installed, fixed erroneous - error which stated that redcarpet was missing, not rouge. (#2464) - * Ignore *all* directories and files that merit it on auto-generation (#2459) - * Before copying file, explicitly remove the old one (#2535) - * Merge file system categories with categories from YAML. (#2531) - * Deep merge front matter defaults (#2490) - * Ensure exclude and include arrays are arrays of strings (#2542) - * Allow collections to have dots in their filenames (#2552) - * Collections shouldn't try to read in directories as files (#2552) - * Be quiet very quickly. (#2520) - -### Development Fixes - - * Test Ruby 2.1.2 instead of 2.1.1 (#2374) - * Add test for sorting UTF-8 characters (#2384) - * Use `https` for GitHub links in documentation (#2470) - * Remove coverage reporting with Coveralls (#2494) - * Fix a bit of missing TomDoc to `Jekyll::Commands::Build#build` (#2554) - -### Site Enhancements - - * Set `timezone` to `America/Los_Angeles` (#2394) - * Improve JavaScript in `anchor_links.html` (#2368) - * Remove note on Quickstart page about default markdown converter (#2387) - * Remove broken link in extras.md to a Maruku fork (#2401) - * Update Font Awesome to v4.1.0. (#2410) - * Fix broken link on Installation page to Templates page (#2421) - * Prevent table from extending parent width in permalink style table (#2424) - * Add collections to info about pagination support (#2389) - * Add `jekyll_github_sample` plugin to list of third-party plugins (#2463) - * Clarify documentation around front matter defaults and add details - about defaults for collections. (#2439) - * Add Jekyll Project Version Tag to list of third-party plugins (#2468) - * Use `https` for GitHub links across whole site (#2470) - * Add StickerMule + Jekyll post (#2476) - * Add Jekyll Asset Pipeline Reborn to list of third-party plugins (#2479) - * Add link to jekyll-compress-html to list of third-party plugins (#2514) - * Add Piwigo Gallery to list of third-party plugins (#2526) - * Set `show_drafts` to `false` in default configuration listing (#2536) - * Provide an updated link for Windows installation instructions (#2544) - * Remove `url` from configuration docs (#2547) - * Documentation for Continuous Integration for your Jekyll Site (#2432) - -## 2.0.3 / 2014-05-08 - -### Bug Fixes - - * Properly prefix links in site template with URL or baseurl depending upon - need. (#2319) - * Update gist tag comments and error message to require username (#2326) - * Fix `permalink` setting in site template (#2331) - * Don't fail if any of the path objects are nil (#2325) - * Instantiate all descendants for converters and generators, not just - direct subclasses (#2334) - * Replace all instances of `site.name` with `site.title` in site template (#2324) - * `Jekyll::Filters#time` now accepts UNIX timestamps in string or number form (#2339) - * Use `item_property` for `where` filter so it doesn't break on collections (#2359) - * Rescue errors thrown so `--watch` doesn't fail (#2364) - -### Site Enhancements - - * Add missing "as" to assets docs page (#2337) - * Update docs to reflect new `baseurl` default (#2341) - * Add links to headers who have an ID. (#2342) - * Use symbol instead of HTML number in `upgrading.md` (#2351) - * Fix link to front matter defaults docs (#2353) - * Fix for `History.markdown` in order to fix history page in docs (#2363) - -## 2.0.2 / 2014-05-07 - -### Bug Fixes - - * Correct use of `url` and `baseurl` in the site template. (#2317) - * Default `baseurl` to `""` (#2317) - -### Site Enhancements - - * Correct docs for the `gist` plugin so it always includes the username. (#2314) - * Clarify new (defaults, `where` filter) features in docs (#2316) - -## 2.0.1 / 2014-05-06 - -### Bug Fixes - - * Require `kramdown` gem instead of `maruku` gem - -## 2.0.0 / 2014-05-06 - -### Major Enhancements - * Add "Collections" feature (#2199) - * Add gem-based plugin whitelist to safe mode (#1657) - * Replace the commander command line parser with a more robust - solution for our needs called `mercenary` (#1706) - * Remove support for Ruby 1.8.x (#1780) - * Move to jekyll/jekyll from mojombo/jekyll (#1817) - * Allow custom markdown processors (#1872) - * Provide support for the Rouge syntax highlighter (#1859) - * Provide support for Sass (#1932) - * Provide a 300% improvement when generating sites that use - `Post#next` or `Post#previous` (#1983) - * Provide support for CoffeeScript (#1991) - * Replace Maruku with Kramdown as Default Markdown Processor (#1988) - * Expose `site.static_files` to Liquid (#2075) - * Complete redesign of the template site generated by `jekyll new` (#2050) - * Update Listen from 1.x to 2.x (#2097) - * Front matter defaults (#2205) - * Deprecate `relative_permalinks` configuration option (default to `false`) (#2307) - * Exclude files based on prefix as well as `fnmatch?` (#2303) - -### Minor Enhancements - * Move the EntryFilter class into the Jekyll module to avoid polluting the - global namespace (#1800) - * Add `group_by` Liquid filter create lists of items grouped by a common - property's value (#1788) - * Add support for Maruku's `fenced_code_blocks` option (#1799) - * Update Redcarpet dependency to ~> 3.0 (#1815) - * Automatically sort all pages by name (#1848) - * Better error message when time is not parseable (#1847) - * Allow `include` tag variable arguments to use filters (#1841) - * `post_url` tag should raise `ArgumentError` for invalid name (#1825) - * Bump dependency `mercenary` to `~> 0.2.0` (#1879) - * Bump dependency `safe_yaml` to `~> 1.0` (#1886) - * Allow sorting of content by custom properties (#1849) - * Add `--quiet` flag to silence output during build and serve (#1898) - * Add a `where` filter to filter arrays based on a key/value pair - (#1875) - * Route 404 errors to a custom 404 page in development (#1899) - * Excludes are now relative to the site source (#1916) - * Bring MIME Types file for `jekyll serve` to complete parity with GH Pages - servers (#1993) - * Adding Breakpoint to make new site template more responsive (#2038) - * Default to using the UTF-8 encoding when reading files. (#2031) - * Update Redcarpet dependency to ~> 3.1 (#2044) - * Remove support for Ruby 1.9.2 (#2045) - * Add `.mkdown` as valid Markdown extension (#2048) - * Add `index.xml` to the list of WEBrick directory index files (#2041) - * Make the `layouts` config key relative to CWD or to source (#2058) - * Update Kramdown to `~> 1.3` (#1894) - * Remove unnecessary references to `self` (#2090) - * Update to Mercenary v0.3.x (#2085) - * Ship Sass support as a separate gem (#2098) - * Extract core extensions into a Utils module (#2112) - * Refactor CLI & Commands For Greater Happiness (#2143) - * Provide useful error when Pygments returns `nil` and error out (#2148) - * Add support for unpublished drafts (#2164) - * Add `force_polling` option to the `serve` command (#2165) - * Clean up the `` in the site template (#2186) - * Permit YAML blocks to end with three dots to better conform with the - YAML spec (#2110) - * Use `File.exist?` instead of deprecated `File.exists?` (#2214) - * Require newline after start of YAML Front Matter header (#2211) - * Add the ability for pages to be marked as `published: false` (#1492) - * Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy - looking up of variable values in a Liquid context. (#2253) - * Remove literal lang name from class (#2292) - * Return `utf-8` encoding in header for webrick error page response (#2289) - * Make template site easier to customize (#2268) - * Add two-digit year to permalink template option (#2301) - * Add `site.documents` to Liquid payload (list of all docs) (#2295) - * Take into account missing values in the Liquid sort filter (#2299) - -### Bug Fixes - * Don't allow nil entries when loading posts (#1796) - * Remove the scrollbar that's always displayed in new sites generated - from the site template (#1805) - * Add `#path` to required methods in `Jekyll::Convertible` (#1866) - * Default Maruku fenced code blocks to ON for 2.0.0-dev (#1831) - * Change short opts for host and port for `jekyll docs` to be consistent with - other subcommands (#1877) - * Fix typos (#1910) - * Lock Maruku at 0.7.0 to prevent bugs caused by Maruku 0.7.1 (#1958) - * Fixes full path leak to source directory when using include tag (#1951) - * Don't generate pages that aren't being published (#1931) - * Use `SafeYAML.load` to avoid conflicts with other projects (#1982) - * Relative posts should never fail to build (#1976) - * Remove executable bits of non executable files (#2056) - * `#path` for a draft is now `_drafts` instead of `_posts` (#2042) - * Patch a couple show-stopping security vulnerabilities (#1946) - * Sanitize paths uniformly, in a Windows-friendly way (#2065, #2109) - * Update gem build steps to work correctly on Windows (#2118) - * Remove obsolete `normalize_options` method call from `bin/jekyll` (#2121). - * Remove `+` characters from Pygments lexer names when adding as a CSS - class (#994) - * Remove some code that caused Ruby interpreter warnings (#2178) - * Only strip the drive name if it begins the string (#2175) - * Remove default post with invalid date from site template (#2200) - * Fix `Post#url` and `Page#url` escape (#1568) - * Strip newlines from the `{% highlight %}` block content (#1823) - * Load in `rouge` only when it's been requested as the highlighter (#2189) - * Convert input to string before XML escaping (`xml_escape` liquid filter) (#2244) - * Modify configuration key for Collections and reset properly. (#2238) - * Avoid duplicated output using `highlight` tag (#2264) - * Only use Jekyll.logger for output (#2307) - * Close the file descriptor in `has_yaml_header?` (#2310) - * Add `output` to `Document` liquid output hash (#2309) - -### Development Fixes - * Add a link to the site in the README.md file (#1795) - * Add in History and site changes from `v1-stable` branch (#1836) - * Testing additions on the Excerpt class (#1893) - * Fix the `highlight` tag feature (#1859) - * Test Jekyll under Ruby 2.1.0 (#1900) - * Add script/cibuild for fun and profit (#1912) - * Use `Forwardable` for delegation between `Excerpt` and `Post` - (#1927) - * Rename `read_things` to `read_content` (#1928) - * Add `script/branding` script for ASCII art lovin' (#1936) - * Update the README to reflect the repo move (#1943) - * Add the project vision to the README (#1935) - * Speed up Travis CI builds by using Rebund (#1985) - * Use Yarp as a Gem proxy for Travis CI (#1984) - * Remove Yarp as a Gem proxy for Travis CI (#2004) - * Move the reading of layouts into its own class (#2020) - * Test Sass import (#2009) - * Switch Maruku and Kramdown in lists of Runtime vs. Development dependencies (#2049) - * Clean up the gemspec for the project (#2095) - * Add Japanese translation of README and CONTRIBUTING docs. (#2081) - * Re-align the tables in Cucumber (#2108) - * Trim trailing spaces and convert tabs to spaces (#2122) - * Fix the failing Travis scenarios due to Cucumber issues (#2155) - * Wrap `bundle install` in `travis_retry` to retry when RubyGems fails (#2160) - * Refactor tags and categories (#1639) - * Extract plugin management into its own class (#2197) - * Add missing tests for `Command` (#2216) - * Update `rr` link in CONTRIBUTING doc (#2247) - * Streamline Cucumber execution of `jekyll` subcommands (#2258) - * Refactor `Commands::Serve`. (#2269) - * Refactor `highlight` tag (#2154) - * Update `Util` hash functions with latest from Rails (#2273) - * Workaround for Travis bug (#2290) - -### Site Enhancements - * Document Kramdown's GFM parser option (#1791) - * Move CSS to includes & update normalize.css to v2.1.3 (#1787) - * Minify CSS only in production (#1803) - * Fix broken link to installation of Ruby on Mountain Lion blog post on - Troubleshooting docs page (#1797) - * Fix issues with 1.4.1 release blog post (#1804) - * Add note about deploying to OpenShift (#1812) - * Collect all Windows-related docs onto one page (#1818) - * Fixed typo in datafiles doc page (#1854) - * Clarify how to access `site` in docs (#1864) - * Add closing ` ` tag to `context.registers[:site]` note (#1867) - * Fix link to @mojombo's site source (#1897) - * Add `paginate: nil` to default configuration in docs (#1896) - * Add link to our License in the site footer (#1889) - * Add a charset note in "Writing Posts" doc page (#1902) - * Disallow selection of path and prompt in bash examples - * Add jekyll-compass to the plugin list (#1923) - * Add note in Posts docs about stripping `` tags from excerpt (#1933) - * Add additional info about the new exclude behavior (#1938) - * Linkify 'awesome contributors' to point to the contributors graph on - GitHub (#1940) - * Update `docs/sites.md` link to GitHub Training materials (#1949) - * Update `master` with the release info from 1.4.3 (#1947) - * Define docs nav in datafile (#1953) - * Clarify the docs around the naming convention for posts (#1971) - * Add missing `next` and `previous` docs for post layouts and templates (#1970) - * Add note to `Writing posts` page about how to strip html from excerpt (#1962) - * Add `jekyll-humanize` plugin to plugin list (#1998) - * Add `jekyll-font-awesome` plugin to plugin list (#1999) - * Add `sublime-jekyll` to list of Editor plugins (#2001) - * Add `vim-jekyll` to the list of Editor plugins (#2005) - * Fix non-semantic nesting of `p` tags in `news_item` layout (#2013) - * Document destination folder cleaning (#2016) - * Updated instructions for NearlyFreeSpeech.NET installation (#2015) - * Update link to rack-jekyll on "Deployment Methods" page (#2047) - * Fix typo in /docs/configuration (#2073) - * Fix count in docs for `site.static_files` (#2077) - * Update configuration docs to indicate utf-8 is the default for 2.0.0 - and ASCII for 1.9.3 (#2074) - * Add info about unreleased feature to the site (#2061) - * Add whitespace to liquid example in GitHub Pages docs (#2084) - * Clarify the way Sass and CoffeeScript files are read in and output (#2067) - * Add lyche gallery tag plugin link to list of plugins (#2094) - * Add Jekyll Pages Directory plugin to list of plugins (#2096) - * Update Configuration docs page with new markdown extension (#2102) - * Add `jekyll-image-set` to the list of third-party plugins (#2105) - * Losslessly compress images (#2128) - * Update normalize.css to 3.0.0 (#2126) - * Update modernizr to v2.7.1 (#2129) - * Add `jekyll-ordinal` to list of third-party plugins (#2150) - * Add `jekyll_figure` to list of third-party plugins (#2158) - * Clarify the documentation for safe mode (#2163) - * Some HTML tidying (#2130) - * Remove modernizr and use html5shiv.js directly for IE less than v9 (#2131) - * Remove unused images (#2187) - * Use `array_to_sentence_string` filter when outputting news item - categories (#2191) - * Add link to Help repo in primary navigation bar (#2177) - * Switch to using an ico file for the shortcut icon (#2193) - * Use numbers to specify font weights and only bring in font weights used (#2185) - * Add a link to the list of all tz database time zones (#1824) - * Clean-up and improve documentation `feed.xml` (#2192) - * Remove duplicate entry in list of third-party plugins (#2206) - * Reduce the whitespace in the favicon. (#2213) - * Add `jekyll-page-collections` to list of third-party plugins (#2215) - * Add a cross-reference about `post_url` (#2243) - * Add `jekyll-live-tiles` to list of third-party plugins (#2250) - * Fixed broken link to GitHub training material site source (#2257) - * Update link to help repo, now called `jekyll-help` (#2277) - * Fix capitalization of 'Jekyll' on Deployment Methods page (#2291) - * Include plugins by sonnym in list of third-party plugins (#2297) - * Add deprecated articles keeper filter to list of third-party plugins (#2300) - * Simplify and improve our CSS. (#2127) - * Use black text color for the mobile navbar (#2306) - * Use the built in date filter and `site.time` for the copyright year. (#2305) - * Update html5shiv to v3.7.2 (#2304) - * Add 2.0.0 release post (#2298) - * Add docs for custom markdown processors (#2298) - * Add docs for `where` and `group_by` Liquid filters (#2298) - * Remove notes in docs for unreleased features (#2309) - -## 1.5.1 / 2014-03-27 - -### Bug Fixes - - * Only strip the drive name if it begins the string (#2176) - -## 1.5.0 / 2014-03-24 - -### Minor Enhancements - - * Loosen `safe_yaml` dependency to `~> 1.0` (#2167) - * Bump `safe_yaml` dependency to `~> 1.0.0` (#1942) - -### Bug Fixes - - * Fix issue where filesystem traversal restriction broke Windows (#2167) - * Lock `maruku` at `0.7.0` (#2167) - -### Development Fixes - - * Lock `cucumber` at `1.3.11` (#2167) - -## 1.4.3 / 2014-01-13 - -### Bug Fixes - * Patch show-stopping security vulnerabilities (#1944) - -## 1.4.2 / 2013-12-16 - -### Bug Fixes - * Turn on Maruku fenced code blocks by default (#1830) - -## 1.4.1 / 2013-12-09 - -### Bug Fixes - * Don't allow nil entries when loading posts (#1796) - -## 1.4.0 / 2013-12-07 - -### Major Enhancements - * Add support for TOML config files (#1765) - -### Minor Enhancements - * Sort plugins as a way to establish a load order (#1682) - * Update Maruku to 0.7.0 (#1775) - -### Bug Fixes - * Add a space between two words in a Pagination warning message (#1769) - * Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 (#1778) - -### Development Fixes - * Remove some whitespace in the code (#1755) - * Remove some duplication in the reading of posts and drafts (#1779) - -### Site Enhancements - * Fixed case of a word in the Jekyll v1.3.0 release post (#1762) - * Fixed the mime type for the favicon (#1772) - -## 1.3.1 / 2013-11-26 - -### Minor Enhancements - * Add a `--prefix` option to passthrough for the importers (#1669) - * Push the paginator plugin lower in the plugin priority order so - other plugins run before it (#1759) - -### Bug Fixes - * Fix the include tag when ran in a loop (#1726) - * Fix errors when using `--watch` on 1.8.7 (#1730) - * Specify where the include is called from if an included file is - missing (#1746) - -### Development Fixes - * Extract `Site#filter_entries` into its own object (#1697) - * Enable Travis' bundle caching (#1734) - * Remove trailing whitespace in some files (#1736) - * Fix a duplicate test name (#1754) - -### Site Enhancements - * Update link to example Rakefile to point to specific commit (#1741) - * Fix drafts docs to indicate that draft time is based on file modification - time, not `Time.now` (#1695) - * Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to - list of third-party plugins (#1693) - * Add `jekyll-asset-path-plugin` to list of third-party plugins (#1670) - * Add `emoji-for-jekyll` to list of third-part plugins (#1708) - * Fix previous section link on plugins page to point to pagination page (#1707) - * Add `org-mode` converter plugin to third-party plugins (#1711) - * Point "Blog migrations" page to http://import.jekyllrb.com (#1732) - * Add docs for `post_url` when posts are in subdirectories (#1718) - * Update the docs to point to `example.com` (#1448) - -## 1.3.0 / 2013-11-04 - -### Major Enhancements - * Add support for adding data as YAML files under a site's `_data` - directory (#1003) - * Allow variables to be used with `include` tags (#1495) - * Allow using gems for plugin management (#1557) - -### Minor Enhancements - * Decrease the specificity in the site template CSS (#1574) - * Add `encoding` configuration option (#1449) - * Provide better error handling for Jekyll's custom Liquid tags - (#1514) - * If an included file causes a Liquid error, add the path to the - include file that caused the error to the error message (#1596) - * If a layout causes a Liquid error, change the error message so that - we know it comes from the layout (#1601) - * Update Kramdown dependency to `~> 1.2` (#1610) - * Update `safe_yaml` dependency to `~> 0.9.7` (#1602) - * Allow layouts to be in subfolders like includes (#1622) - * Switch to listen for site watching while serving (#1589) - * Add a `json` liquid filter to be used in sites (#1651) - * Point people to the migration docs when the `jekyll-import` gem is - missing (#1662) - -### Bug Fixes - * Fix up matching against source and destination when the two - locations are similar (#1556) - * Fix the missing `pathname` require in certain cases (#1255) - * Use `+` instead of `Array#concat` when building `Post` attribute list (#1571) - * Print server address when launching a server (#1586) - * Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering (#1598) - * Fix error with failing include tag when variable was file name (#1613) - * Downcase lexers before passing them to pygments (#1615) - * Capitalize the short verbose switch because it conflicts with the - built-in Commander switch (#1660) - * Fix compatibility with 1.8.x (#1665) - * Fix an error with the new file watching code due to library version - incompatibilities (#1687) - -### Development Fixes - * Add coverage reporting with Coveralls (#1539) - * Refactor the Liquid `include` tag (#1490) - * Update launchy dependency to `~> 2.3` (#1608) - * Update rr dependency to `~> 1.1` (#1604) - * Update cucumber dependency to `~> 1.3` (#1607) - * Update coveralls dependency to `~> 0.7.0` (#1606) - * Update rake dependency to `~> 10.1` (#1603) - * Clean up `site.rb` comments to be more concise/uniform (#1616) - * Use the master branch for the build badge in the readme (#1636) - * Refactor Site#render (#1638) - * Remove duplication in command line options (#1637) - * Add tests for all the coderay options (#1543) - * Improve some of the Cucumber test code (#1493) - * Improve comparisons of timestamps by ignoring the seconds (#1582) - -### Site Enhancements - * Fix params for `JekyllImport::WordPress.process` arguments (#1554) - * Add `jekyll-suggested-tweet` to list of third-party plugins (#1555) - * Link to Liquid's docs for tags and filters (#1553) - * Add note about installing Xcode on the Mac in the Installation docs (#1561) - * Simplify/generalize pagination docs (#1577) - * Add documentation for the new data sources feature (#1503) - * Add more information on how to create generators (#1590, #1592) - * Improve the instructions for mimicking GitHub Flavored Markdown - (#1614) - * Add `jekyll-import` warning note of missing dependencies (#1626) - * Fix grammar in the Usage section (#1635) - * Add documentation for the use of gems as plugins (#1656) - * Document the existence of a few additional plugins (#1405) - * Document that the `date_to_string` always returns a two digit day (#1663) - * Fix navigation in the "Working with Drafts" page (#1667) - * Fix an error with the data documentation (#1691) - -## 1.2.1 / 2013-09-14 - -### Minor Enhancements - * Print better messages for detached server. Mute output on detach. (#1518) - * Disable reverse lookup when running `jekyll serve` (#1363) - * Upgrade RedCarpet dependency to `~> 2.3.0` (#1515) - * Upgrade to Liquid `>= 2.5.2, < 2.6` (#1536) - -### Bug Fixes - * Fix file discrepancy in gemspec (#1522) - * Force rendering of Include tag (#1525) - -### Development Fixes - * Add a rake task to generate a new release post (#1404) - * Mute LSI output in tests (#1531) - * Update contributor documentation (#1537) - -### Site Enhancements - * Fix a couple of validation errors on the site (#1511) - * Make navigation menus reusable (#1507) - * Fix link to History page from Release v1.2.0 notes post. - * Fix markup in History file for command line options (#1512) - * Expand 1.2 release post title to 1.2.0 (#1516) - -## 1.2.0 / 2013-09-06 - -### Major Enhancements - * Disable automatically-generated excerpts when `excerpt_separator` is `""`. (#1386) - * Add checking for URL conflicts when running `jekyll doctor` (#1389) - -### Minor Enhancements - * Catch and fix invalid `paginate` values (#1390) - * Remove superfluous `div.container` from the default html template for - `jekyll new` (#1315) - * Add `-D` short-form switch for the drafts option (#1394) - * Update the links in the site template for Twitter and GitHub (#1400) - * Update dummy email address to example.com domain (#1408) - * Update normalize.css to v2.1.2 and minify; add rake task to update - normalize.css with greater ease. (#1430) - * Add the ability to detach the server ran by `jekyll serve` from it's - controlling terminal (#1443) - * Improve permalink generation for URLs with special characters (#944) - * Expose the current Jekyll version to posts and pages via a new - `jekyll.version` variable (#1481) - -### Bug Fixes - * Markdown extension matching matches only exact matches (#1382) - * Fixed NoMethodError when message passed to `Stevenson#message` is nil (#1388) - * Use binary mode when writing file (#1364) - * Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and - Kramdown > 0.14.0 (#1397) - * Do not force the permalink to be a dir if it ends on .html (#963) - * When a Liquid Exception is caught, show the full path rel. to site source (#1415) - * Properly read in the config options when serving the docs locally - (#1444) - * Fixed `--layouts` option for `build` and `serve` commands (#1458) - * Remove kramdown as a runtime dependency since it's optional (#1498) - * Provide proper error handling for invalid file names in the include - tag (#1494) - -### Development Fixes - * Remove redundant argument to - Jekyll::Commands::New#scaffold_post_content (#1356) - * Add new dependencies to the README (#1360) - * Fix link to contributing page in README (#1424) - * Update TomDoc in Pager#initialize to match params (#1441) - * Refactor `Site#cleanup` into `Jekyll::Site::Cleaner` class (#1429) - * Several other small minor refactorings (#1341) - * Ignore `_site` in jekyllrb.com deploy (#1480) - * Add Gem version and dependency badge to README (#1497) - -### Site Enhancements - * Add info about new releases (#1353) - * Update plugin list with jekyll-rss plugin (#1354) - * Update the site list page with Ruby's official site (#1358) - * Add `jekyll-ditaa` to list of third-party plugins (#1370) - * Add `postfiles` to list of third-party plugins (#1373) - * For internal links, use full path including trailing `/` (#1411) - * Use curly apostrophes in the docs (#1419) - * Update the docs for Redcarpet in Jekyll (#1418) - * Add `pluralize` and `reading_time` filters to docs (#1439) - * Fix markup for the Kramdown options (#1445) - * Fix typos in the History file (#1454) - * Add trailing slash to site's post URL (#1462) - * Clarify that `--config` will take multiple files (#1474) - * Fix docs/templates.md private gist example (#1477) - * Use `site.repository` for Jekyll's GitHub URL (#1463) - * Add `jekyll-pageless-redirects` to list of third-party plugins (#1486) - * Clarify that `date_to_xmlschema` returns an ISO 8601 string (#1488) - * Add `jekyll-good-include` to list of third-party plugins (#1491) - * XML escape the blog post title in our feed (#1501) - * Add `jekyll-toc-generator` to list of third-party plugins (#1506) - -## 1.1.2 / 2013-07-25 - -### Bug Fixes - * Require Liquid 2.5.1 (#1349) - -## 1.1.1 / 2013-07-24 - -### Minor Enhancements - * Remove superfluous `table` selector from main.css in `jekyll new` template (#1328) - * Abort with non-zero exit codes (#1338) - -### Bug Fixes - * Fix up the rendering of excerpts (#1339) - -### Site Enhancements - * Add Jekyll Image Tag to the plugins list (#1306) - * Remove erroneous statement that `site.pages` are sorted alphabetically. - * Add info about the `_drafts` directory to the directory structure - docs (#1320) - * Improve the layout of the plugin listing by organizing it into - categories (#1310) - * Add generator-jekyllrb and grunt-jekyll to plugins page (#1330) - * Mention Kramdown as option for markdown parser on Extras page (#1318) - * Update Quick-Start page to include reminder that all requirements must be installed (#1327) - * Change filename in `include` example to an HTML file so as not to indicate that Jekyll - will automatically convert them. (#1303) - * Add an RSS feed for commits to Jekyll (#1343) - -## 1.1.0 / 2013-07-14 - -### Major Enhancements - * Add `docs` subcommand to read Jekyll's docs when offline. (#1046) - * Support passing parameters to templates in `include` tag (#1204) - * Add support for Liquid tags to post excerpts (#1302) - -### Minor Enhancements - * Search the hierarchy of pagination path up to site root to determine template page for - pagination. (#1198) - * Add the ability to generate a new Jekyll site without a template (#1171) - * Use redcarpet as the default markdown engine in newly generated - sites (#1245, #1247) - * Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new - sites. (#1247) - * In the generated site, remove files that will be replaced by a - directory (#1118) - * Fail loudly if a user-specified configuration file doesn't exist (#1098) - * Allow for all options for Kramdown HTML Converter (#1201) - -### Bug Fixes - * Fix pagination in subdirectories. (#1198) - * Fix an issue with directories and permalinks that have a plus sign - (+) in them (#1215) - * Provide better error reporting when generating sites (#1253) - * Latest posts first in non-LSI `related_posts` (#1271) - -### Development Fixes - * Merge the theme and layout Cucumber steps into one step (#1151) - * Restrict activesupport dependency to pre-4.0.0 to maintain compatibility with `<= 1.9.2` - * Include/exclude deprecation handling simplification (#1284) - * Convert README to Markdown. (#1267) - * Refactor Jekyll::Site (#1144) - -### Site Enhancements - * Add "News" section for release notes, along with an RSS feed (#1093, #1285, #1286) - * Add "History" page. - * Restructured docs sections to include "Meta" section. - * Add message to "Templates" page that specifies that Python must be installed in order - to use Pygments. (#1182) - * Update link to the official Maruku repo (#1175) - * Add documentation about `paginate_path` to "Templates" page in docs (#1129) - * Give the quick-start guide its own page (#1191) - * Update ProTip on Installation page in docs to point to all the info about Pygments and - the 'highlight' tag. (#1196) - * Run `site/img` through ImageOptim (thanks @qrush!) (#1208) - * Added Jade Converter to `site/docs/plugins` (#1210) - * Fix location of docs pages in Contributing pages (#1214) - * Add ReadInXMinutes plugin to the plugin list (#1222) - * Remove plugins from the plugin list that have equivalents in Jekyll - proper (#1223) - * Add jekyll-assets to the plugin list (#1225) - * Add jekyll-pandoc-mulitple-formats to the plugin list (#1229) - * Remove dead link to "Using Git to maintain your blog" (#1227) - * Tidy up the third-party plugins listing (#1228) - * Update contributor information (#1192) - * Update URL of article about Blogger migration (#1242) - * Specify that RedCarpet is the default for new Jekyll sites on Quickstart page (#1247) - * Added `site.pages` to Variables page in docs (#1251) - * Add Youku and Tudou Embed link on Plugins page. (#1250) - * Add note that `gist` tag supports private gists. (#1248) - * Add `jekyll-timeago` to list of third-party plugins. (#1260) - * Add `jekyll-swfobject` to list of third-party plugins. (#1263) - * Add `jekyll-picture-tag` to list of third-party plugins. (#1280) - * Update the GitHub Pages documentation regarding relative URLs - (#1291) - * Update the S3 deployment documentation (#1294) - * Add suggestion for Xcode CLT install to troubleshooting page in docs (#1296) - * Add 'Working with drafts' page to docs (#1289) - * Add information about time zones to the documentation for a page's - date (#1304) - -## 1.0.3 / 2013-06-07 - -### Minor Enhancements - * Add support to gist tag for private gists. (#1189) - * Fail loudly when Maruku errors out (#1190) - * Move the building of related posts into their own class (#1057) - * Removed trailing spaces in several places throughout the code (#1116) - * Add a `--force` option to `jekyll new` (#1115) - * Convert IDs in the site template to classes (#1170) - -### Bug Fixes - * Fix typo in Stevenson constant "ERROR". (#1166) - * Rename Jekyll::Logger to Jekyll::Stevenson to fix inheritance issue (#1106) - * Exit with a non-zero exit code when dealing with a Liquid error (#1121) - * Make the `exclude` and `include` options backwards compatible with - versions of Jekyll prior to 1.0 (#1114) - * Fix pagination on Windows (#1063) - * Fix the application of Pygments' Generic Output style to Go code - (#1156) - -### Site Enhancements - * Add a Pro Tip to docs about front matter variables being optional (#1147) - * Add changelog to site as History page in /docs/ (#1065) - * Add note to Upgrading page about new config options in 1.0.x (#1146) - * Documentation for `date_to_rfc822` and `uri_escape` (#1142) - * Documentation highlight boxes shouldn't show scrollbars if not necessary (#1123) - * Add link to jekyll-minibundle in the doc's plugins list (#1035) - * Quick patch for importers documentation - * Fix prefix for WordpressDotCom importer in docs (#1107) - * Add jekyll-contentblocks plugin to docs (#1068) - * Make code bits in notes look more natural, more readable (#1089) - * Fix logic for `relative_permalinks` instructions on Upgrading page (#1101) - * Add docs for post excerpt (#1072) - * Add docs for gist tag (#1072) - * Add docs indicating that Pygments does not need to be installed - separately (#1099, #1119) - * Update the migrator docs to be current (#1136) - * Add the Jekyll Gallery Plugin to the plugin list (#1143) - -### Development Fixes - * Use Jekyll.logger instead of Jekyll::Stevenson to log things (#1149) - * Fix pesky Cucumber infinite loop (#1139) - * Do not write posts with timezones in Cucumber tests (#1124) - * Use ISO formatted dates in Cucumber features (#1150) - -## 1.0.2 / 2013-05-12 - -### Major Enhancements - * Add `jekyll doctor` command to check site for any known compatibility problems (#1081) - * Backwards-compatibilize relative permalinks (#1081) - -### Minor Enhancements - * Add a `data-lang="
"` attribute to Redcarpet code blocks (#1066) - * Deprecate old config `server_port`, match to `port` if `port` isn't set (#1084) - * Update pygments.rb version to 0.5.0 (#1061) - * Update Kramdown version to 1.0.2 (#1067) - -### Bug Fixes - * Fix issue when categories are numbers (#1078) - * Catching that Redcarpet gem isn't installed (#1059) - -### Site Enhancements - * Add documentation about `relative_permalinks` (#1081) - * Remove pygments-installation instructions, as pygments.rb is bundled with it (#1079) - * Move pages to be Pages for realz (#985) - * Updated links to Liquid documentation (#1073) - -## 1.0.1 / 2013-05-08 - -### Minor Enhancements - * Do not force use of `toc_token` when using `generate_tok` in RDiscount (#1048) - * Add newer `language-` class name prefix to code blocks (#1037) - * Commander error message now preferred over process abort with incorrect args (#1040) - -### Bug Fixes - * Make Redcarpet respect the pygments configuration option (#1053) - * Fix the index build with LSI (#1045) - * Don't print deprecation warning when no arguments are specified. (#1041) - * Add missing `
` tag to `context.registers[:site]` note (#1867)
+ * Fix link to @mojombo's site source (#1897)
+ * Add `paginate: nil` to default configuration in docs (#1896)
+ * Add link to our License in the site footer (#1889)
+ * Add a charset note in "Writing Posts" doc page (#1902)
+ * Disallow selection of path and prompt in bash examples
+ * Add jekyll-compass to the plugin list (#1923)
+ * Add note in Posts docs about stripping `` tags from excerpt (#1933)
+ * Add additional info about the new exclude behavior (#1938)
+ * Linkify 'awesome contributors' to point to the contributors graph on
+ GitHub (#1940)
+ * Update `docs/sites.md` link to GitHub Training materials (#1949)
+ * Update `master` with the release info from 1.4.3 (#1947)
+ * Define docs nav in datafile (#1953)
+ * Clarify the docs around the naming convention for posts (#1971)
+ * Add missing `next` and `previous` docs for post layouts and templates (#1970)
+ * Add note to `Writing posts` page about how to strip html from excerpt (#1962)
+ * Add `jekyll-humanize` plugin to plugin list (#1998)
+ * Add `jekyll-font-awesome` plugin to plugin list (#1999)
+ * Add `sublime-jekyll` to list of Editor plugins (#2001)
+ * Add `vim-jekyll` to the list of Editor plugins (#2005)
+ * Fix non-semantic nesting of `p` tags in `news_item` layout (#2013)
+ * Document destination folder cleaning (#2016)
+ * Updated instructions for NearlyFreeSpeech.NET installation (#2015)
+ * Update link to rack-jekyll on "Deployment Methods" page (#2047)
+ * Fix typo in /docs/configuration (#2073)
+ * Fix count in docs for `site.static_files` (#2077)
+ * Update configuration docs to indicate utf-8 is the default for 2.0.0
+ and ASCII for 1.9.3 (#2074)
+ * Add info about unreleased feature to the site (#2061)
+ * Add whitespace to liquid example in GitHub Pages docs (#2084)
+ * Clarify the way Sass and CoffeeScript files are read in and output (#2067)
+ * Add lyche gallery tag plugin link to list of plugins (#2094)
+ * Add Jekyll Pages Directory plugin to list of plugins (#2096)
+ * Update Configuration docs page with new markdown extension (#2102)
+ * Add `jekyll-image-set` to the list of third-party plugins (#2105)
+ * Losslessly compress images (#2128)
+ * Update normalize.css to 3.0.0 (#2126)
+ * Update modernizr to v2.7.1 (#2129)
+ * Add `jekyll-ordinal` to list of third-party plugins (#2150)
+ * Add `jekyll_figure` to list of third-party plugins (#2158)
+ * Clarify the documentation for safe mode (#2163)
+ * Some HTML tidying (#2130)
+ * Remove modernizr and use html5shiv.js directly for IE less than v9 (#2131)
+ * Remove unused images (#2187)
+ * Use `array_to_sentence_string` filter when outputting news item
+ categories (#2191)
+ * Add link to Help repo in primary navigation bar (#2177)
+ * Switch to using an ico file for the shortcut icon (#2193)
+ * Use numbers to specify font weights and only bring in font weights used (#2185)
+ * Add a link to the list of all tz database time zones (#1824)
+ * Clean-up and improve documentation `feed.xml` (#2192)
+ * Remove duplicate entry in list of third-party plugins (#2206)
+ * Reduce the whitespace in the favicon. (#2213)
+ * Add `jekyll-page-collections` to list of third-party plugins (#2215)
+ * Add a cross-reference about `post_url` (#2243)
+ * Add `jekyll-live-tiles` to list of third-party plugins (#2250)
+ * Fixed broken link to GitHub training material site source (#2257)
+ * Update link to help repo, now called `jekyll-help` (#2277)
+ * Fix capitalization of 'Jekyll' on Deployment Methods page (#2291)
+ * Include plugins by sonnym in list of third-party plugins (#2297)
+ * Add deprecated articles keeper filter to list of third-party plugins (#2300)
+ * Simplify and improve our CSS. (#2127)
+ * Use black text color for the mobile navbar (#2306)
+ * Use the built in date filter and `site.time` for the copyright year. (#2305)
+ * Update html5shiv to v3.7.2 (#2304)
+ * Add 2.0.0 release post (#2298)
+ * Add docs for custom markdown processors (#2298)
+ * Add docs for `where` and `group_by` Liquid filters (#2298)
+ * Remove notes in docs for unreleased features (#2309)
+
+## 1.5.1 / 2014-03-27
+
+### Bug Fixes
+
+ * Only strip the drive name if it begins the string (#2176)
+
+## 1.5.0 / 2014-03-24
+
+### Minor Enhancements
+
+ * Loosen `safe_yaml` dependency to `~> 1.0` (#2167)
+ * Bump `safe_yaml` dependency to `~> 1.0.0` (#1942)
+
+### Bug Fixes
+
+ * Fix issue where filesystem traversal restriction broke Windows (#2167)
+ * Lock `maruku` at `0.7.0` (#2167)
+
+### Development Fixes
+
+ * Lock `cucumber` at `1.3.11` (#2167)
+
+## 1.4.3 / 2014-01-13
+
+### Bug Fixes
+ * Patch show-stopping security vulnerabilities (#1944)
+
+## 1.4.2 / 2013-12-16
+
+### Bug Fixes
+ * Turn on Maruku fenced code blocks by default (#1830)
+
+## 1.4.1 / 2013-12-09
+
+### Bug Fixes
+ * Don't allow nil entries when loading posts (#1796)
+
+## 1.4.0 / 2013-12-07
+
+### Major Enhancements
+ * Add support for TOML config files (#1765)
+
+### Minor Enhancements
+ * Sort plugins as a way to establish a load order (#1682)
+ * Update Maruku to 0.7.0 (#1775)
+
+### Bug Fixes
+ * Add a space between two words in a Pagination warning message (#1769)
+ * Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 (#1778)
+
+### Development Fixes
+ * Remove some whitespace in the code (#1755)
+ * Remove some duplication in the reading of posts and drafts (#1779)
+
+### Site Enhancements
+ * Fixed case of a word in the Jekyll v1.3.0 release post (#1762)
+ * Fixed the mime type for the favicon (#1772)
+
+## 1.3.1 / 2013-11-26
+
+### Minor Enhancements
+ * Add a `--prefix` option to passthrough for the importers (#1669)
+ * Push the paginator plugin lower in the plugin priority order so
+ other plugins run before it (#1759)
+
+### Bug Fixes
+ * Fix the include tag when ran in a loop (#1726)
+ * Fix errors when using `--watch` on 1.8.7 (#1730)
+ * Specify where the include is called from if an included file is
+ missing (#1746)
+
+### Development Fixes
+ * Extract `Site#filter_entries` into its own object (#1697)
+ * Enable Travis' bundle caching (#1734)
+ * Remove trailing whitespace in some files (#1736)
+ * Fix a duplicate test name (#1754)
+
+### Site Enhancements
+ * Update link to example Rakefile to point to specific commit (#1741)
+ * Fix drafts docs to indicate that draft time is based on file modification
+ time, not `Time.now` (#1695)
+ * Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to
+ list of third-party plugins (#1693)
+ * Add `jekyll-asset-path-plugin` to list of third-party plugins (#1670)
+ * Add `emoji-for-jekyll` to list of third-part plugins (#1708)
+ * Fix previous section link on plugins page to point to pagination page (#1707)
+ * Add `org-mode` converter plugin to third-party plugins (#1711)
+ * Point "Blog migrations" page to http://import.jekyllrb.com (#1732)
+ * Add docs for `post_url` when posts are in subdirectories (#1718)
+ * Update the docs to point to `example.com` (#1448)
+
+## 1.3.0 / 2013-11-04
+
+### Major Enhancements
+ * Add support for adding data as YAML files under a site's `_data`
+ directory (#1003)
+ * Allow variables to be used with `include` tags (#1495)
+ * Allow using gems for plugin management (#1557)
+
+### Minor Enhancements
+ * Decrease the specificity in the site template CSS (#1574)
+ * Add `encoding` configuration option (#1449)
+ * Provide better error handling for Jekyll's custom Liquid tags
+ (#1514)
+ * If an included file causes a Liquid error, add the path to the
+ include file that caused the error to the error message (#1596)
+ * If a layout causes a Liquid error, change the error message so that
+ we know it comes from the layout (#1601)
+ * Update Kramdown dependency to `~> 1.2` (#1610)
+ * Update `safe_yaml` dependency to `~> 0.9.7` (#1602)
+ * Allow layouts to be in subfolders like includes (#1622)
+ * Switch to listen for site watching while serving (#1589)
+ * Add a `json` liquid filter to be used in sites (#1651)
+ * Point people to the migration docs when the `jekyll-import` gem is
+ missing (#1662)
+
+### Bug Fixes
+ * Fix up matching against source and destination when the two
+ locations are similar (#1556)
+ * Fix the missing `pathname` require in certain cases (#1255)
+ * Use `+` instead of `Array#concat` when building `Post` attribute list (#1571)
+ * Print server address when launching a server (#1586)
+ * Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering (#1598)
+ * Fix error with failing include tag when variable was file name (#1613)
+ * Downcase lexers before passing them to pygments (#1615)
+ * Capitalize the short verbose switch because it conflicts with the
+ built-in Commander switch (#1660)
+ * Fix compatibility with 1.8.x (#1665)
+ * Fix an error with the new file watching code due to library version
+ incompatibilities (#1687)
+
+### Development Fixes
+ * Add coverage reporting with Coveralls (#1539)
+ * Refactor the Liquid `include` tag (#1490)
+ * Update launchy dependency to `~> 2.3` (#1608)
+ * Update rr dependency to `~> 1.1` (#1604)
+ * Update cucumber dependency to `~> 1.3` (#1607)
+ * Update coveralls dependency to `~> 0.7.0` (#1606)
+ * Update rake dependency to `~> 10.1` (#1603)
+ * Clean up `site.rb` comments to be more concise/uniform (#1616)
+ * Use the master branch for the build badge in the readme (#1636)
+ * Refactor Site#render (#1638)
+ * Remove duplication in command line options (#1637)
+ * Add tests for all the coderay options (#1543)
+ * Improve some of the Cucumber test code (#1493)
+ * Improve comparisons of timestamps by ignoring the seconds (#1582)
+
+### Site Enhancements
+ * Fix params for `JekyllImport::WordPress.process` arguments (#1554)
+ * Add `jekyll-suggested-tweet` to list of third-party plugins (#1555)
+ * Link to Liquid's docs for tags and filters (#1553)
+ * Add note about installing Xcode on the Mac in the Installation docs (#1561)
+ * Simplify/generalize pagination docs (#1577)
+ * Add documentation for the new data sources feature (#1503)
+ * Add more information on how to create generators (#1590, #1592)
+ * Improve the instructions for mimicking GitHub Flavored Markdown
+ (#1614)
+ * Add `jekyll-import` warning note of missing dependencies (#1626)
+ * Fix grammar in the Usage section (#1635)
+ * Add documentation for the use of gems as plugins (#1656)
+ * Document the existence of a few additional plugins (#1405)
+ * Document that the `date_to_string` always returns a two digit day (#1663)
+ * Fix navigation in the "Working with Drafts" page (#1667)
+ * Fix an error with the data documentation (#1691)
+
+## 1.2.1 / 2013-09-14
+
+### Minor Enhancements
+ * Print better messages for detached server. Mute output on detach. (#1518)
+ * Disable reverse lookup when running `jekyll serve` (#1363)
+ * Upgrade RedCarpet dependency to `~> 2.3.0` (#1515)
+ * Upgrade to Liquid `>= 2.5.2, < 2.6` (#1536)
+
+### Bug Fixes
+ * Fix file discrepancy in gemspec (#1522)
+ * Force rendering of Include tag (#1525)
+
+### Development Fixes
+ * Add a rake task to generate a new release post (#1404)
+ * Mute LSI output in tests (#1531)
+ * Update contributor documentation (#1537)
+
+### Site Enhancements
+ * Fix a couple of validation errors on the site (#1511)
+ * Make navigation menus reusable (#1507)
+ * Fix link to History page from Release v1.2.0 notes post.
+ * Fix markup in History file for command line options (#1512)
+ * Expand 1.2 release post title to 1.2.0 (#1516)
+
+## 1.2.0 / 2013-09-06
+
+### Major Enhancements
+ * Disable automatically-generated excerpts when `excerpt_separator` is `""`. (#1386)
+ * Add checking for URL conflicts when running `jekyll doctor` (#1389)
+
+### Minor Enhancements
+ * Catch and fix invalid `paginate` values (#1390)
+ * Remove superfluous `div.container` from the default html template for
+ `jekyll new` (#1315)
+ * Add `-D` short-form switch for the drafts option (#1394)
+ * Update the links in the site template for Twitter and GitHub (#1400)
+ * Update dummy email address to example.com domain (#1408)
+ * Update normalize.css to v2.1.2 and minify; add rake task to update
+ normalize.css with greater ease. (#1430)
+ * Add the ability to detach the server ran by `jekyll serve` from it's
+ controlling terminal (#1443)
+ * Improve permalink generation for URLs with special characters (#944)
+ * Expose the current Jekyll version to posts and pages via a new
+ `jekyll.version` variable (#1481)
+
+### Bug Fixes
+ * Markdown extension matching matches only exact matches (#1382)
+ * Fixed NoMethodError when message passed to `Stevenson#message` is nil (#1388)
+ * Use binary mode when writing file (#1364)
+ * Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and
+ Kramdown > 0.14.0 (#1397)
+ * Do not force the permalink to be a dir if it ends on .html (#963)
+ * When a Liquid Exception is caught, show the full path rel. to site source (#1415)
+ * Properly read in the config options when serving the docs locally
+ (#1444)
+ * Fixed `--layouts` option for `build` and `serve` commands (#1458)
+ * Remove kramdown as a runtime dependency since it's optional (#1498)
+ * Provide proper error handling for invalid file names in the include
+ tag (#1494)
+
+### Development Fixes
+ * Remove redundant argument to
+ Jekyll::Commands::New#scaffold_post_content (#1356)
+ * Add new dependencies to the README (#1360)
+ * Fix link to contributing page in README (#1424)
+ * Update TomDoc in Pager#initialize to match params (#1441)
+ * Refactor `Site#cleanup` into `Jekyll::Site::Cleaner` class (#1429)
+ * Several other small minor refactorings (#1341)
+ * Ignore `_site` in jekyllrb.com deploy (#1480)
+ * Add Gem version and dependency badge to README (#1497)
+
+### Site Enhancements
+ * Add info about new releases (#1353)
+ * Update plugin list with jekyll-rss plugin (#1354)
+ * Update the site list page with Ruby's official site (#1358)
+ * Add `jekyll-ditaa` to list of third-party plugins (#1370)
+ * Add `postfiles` to list of third-party plugins (#1373)
+ * For internal links, use full path including trailing `/` (#1411)
+ * Use curly apostrophes in the docs (#1419)
+ * Update the docs for Redcarpet in Jekyll (#1418)
+ * Add `pluralize` and `reading_time` filters to docs (#1439)
+ * Fix markup for the Kramdown options (#1445)
+ * Fix typos in the History file (#1454)
+ * Add trailing slash to site's post URL (#1462)
+ * Clarify that `--config` will take multiple files (#1474)
+ * Fix docs/templates.md private gist example (#1477)
+ * Use `site.repository` for Jekyll's GitHub URL (#1463)
+ * Add `jekyll-pageless-redirects` to list of third-party plugins (#1486)
+ * Clarify that `date_to_xmlschema` returns an ISO 8601 string (#1488)
+ * Add `jekyll-good-include` to list of third-party plugins (#1491)
+ * XML escape the blog post title in our feed (#1501)
+ * Add `jekyll-toc-generator` to list of third-party plugins (#1506)
+
+## 1.1.2 / 2013-07-25
+
+### Bug Fixes
+ * Require Liquid 2.5.1 (#1349)
+
+## 1.1.1 / 2013-07-24
+
+### Minor Enhancements
+ * Remove superfluous `table` selector from main.css in `jekyll new` template (#1328)
+ * Abort with non-zero exit codes (#1338)
+
+### Bug Fixes
+ * Fix up the rendering of excerpts (#1339)
+
+### Site Enhancements
+ * Add Jekyll Image Tag to the plugins list (#1306)
+ * Remove erroneous statement that `site.pages` are sorted alphabetically.
+ * Add info about the `_drafts` directory to the directory structure
+ docs (#1320)
+ * Improve the layout of the plugin listing by organizing it into
+ categories (#1310)
+ * Add generator-jekyllrb and grunt-jekyll to plugins page (#1330)
+ * Mention Kramdown as option for markdown parser on Extras page (#1318)
+ * Update Quick-Start page to include reminder that all requirements must be installed (#1327)
+ * Change filename in `include` example to an HTML file so as not to indicate that Jekyll
+ will automatically convert them. (#1303)
+ * Add an RSS feed for commits to Jekyll (#1343)
+
+## 1.1.0 / 2013-07-14
+
+### Major Enhancements
+ * Add `docs` subcommand to read Jekyll's docs when offline. (#1046)
+ * Support passing parameters to templates in `include` tag (#1204)
+ * Add support for Liquid tags to post excerpts (#1302)
+
+### Minor Enhancements
+ * Search the hierarchy of pagination path up to site root to determine template page for
+ pagination. (#1198)
+ * Add the ability to generate a new Jekyll site without a template (#1171)
+ * Use redcarpet as the default markdown engine in newly generated
+ sites (#1245, #1247)
+ * Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new
+ sites. (#1247)
+ * In the generated site, remove files that will be replaced by a
+ directory (#1118)
+ * Fail loudly if a user-specified configuration file doesn't exist (#1098)
+ * Allow for all options for Kramdown HTML Converter (#1201)
+
+### Bug Fixes
+ * Fix pagination in subdirectories. (#1198)
+ * Fix an issue with directories and permalinks that have a plus sign
+ (+) in them (#1215)
+ * Provide better error reporting when generating sites (#1253)
+ * Latest posts first in non-LSI `related_posts` (#1271)
+
+### Development Fixes
+ * Merge the theme and layout Cucumber steps into one step (#1151)
+ * Restrict activesupport dependency to pre-4.0.0 to maintain compatibility with `<= 1.9.2`
+ * Include/exclude deprecation handling simplification (#1284)
+ * Convert README to Markdown. (#1267)
+ * Refactor Jekyll::Site (#1144)
+
+### Site Enhancements
+ * Add "News" section for release notes, along with an RSS feed (#1093, #1285, #1286)
+ * Add "History" page.
+ * Restructured docs sections to include "Meta" section.
+ * Add message to "Templates" page that specifies that Python must be installed in order
+ to use Pygments. (#1182)
+ * Update link to the official Maruku repo (#1175)
+ * Add documentation about `paginate_path` to "Templates" page in docs (#1129)
+ * Give the quick-start guide its own page (#1191)
+ * Update ProTip on Installation page in docs to point to all the info about Pygments and
+ the 'highlight' tag. (#1196)
+ * Run `site/img` through ImageOptim (thanks @qrush!) (#1208)
+ * Added Jade Converter to `site/docs/plugins` (#1210)
+ * Fix location of docs pages in Contributing pages (#1214)
+ * Add ReadInXMinutes plugin to the plugin list (#1222)
+ * Remove plugins from the plugin list that have equivalents in Jekyll
+ proper (#1223)
+ * Add jekyll-assets to the plugin list (#1225)
+ * Add jekyll-pandoc-mulitple-formats to the plugin list (#1229)
+ * Remove dead link to "Using Git to maintain your blog" (#1227)
+ * Tidy up the third-party plugins listing (#1228)
+ * Update contributor information (#1192)
+ * Update URL of article about Blogger migration (#1242)
+ * Specify that RedCarpet is the default for new Jekyll sites on Quickstart page (#1247)
+ * Added `site.pages` to Variables page in docs (#1251)
+ * Add Youku and Tudou Embed link on Plugins page. (#1250)
+ * Add note that `gist` tag supports private gists. (#1248)
+ * Add `jekyll-timeago` to list of third-party plugins. (#1260)
+ * Add `jekyll-swfobject` to list of third-party plugins. (#1263)
+ * Add `jekyll-picture-tag` to list of third-party plugins. (#1280)
+ * Update the GitHub Pages documentation regarding relative URLs
+ (#1291)
+ * Update the S3 deployment documentation (#1294)
+ * Add suggestion for Xcode CLT install to troubleshooting page in docs (#1296)
+ * Add 'Working with drafts' page to docs (#1289)
+ * Add information about time zones to the documentation for a page's
+ date (#1304)
+
+## 1.0.3 / 2013-06-07
+
+### Minor Enhancements
+ * Add support to gist tag for private gists. (#1189)
+ * Fail loudly when Maruku errors out (#1190)
+ * Move the building of related posts into their own class (#1057)
+ * Removed trailing spaces in several places throughout the code (#1116)
+ * Add a `--force` option to `jekyll new` (#1115)
+ * Convert IDs in the site template to classes (#1170)
+
+### Bug Fixes
+ * Fix typo in Stevenson constant "ERROR". (#1166)
+ * Rename Jekyll::Logger to Jekyll::Stevenson to fix inheritance issue (#1106)
+ * Exit with a non-zero exit code when dealing with a Liquid error (#1121)
+ * Make the `exclude` and `include` options backwards compatible with
+ versions of Jekyll prior to 1.0 (#1114)
+ * Fix pagination on Windows (#1063)
+ * Fix the application of Pygments' Generic Output style to Go code
+ (#1156)
+
+### Site Enhancements
+ * Add a Pro Tip to docs about front matter variables being optional (#1147)
+ * Add changelog to site as History page in /docs/ (#1065)
+ * Add note to Upgrading page about new config options in 1.0.x (#1146)
+ * Documentation for `date_to_rfc822` and `uri_escape` (#1142)
+ * Documentation highlight boxes shouldn't show scrollbars if not necessary (#1123)
+ * Add link to jekyll-minibundle in the doc's plugins list (#1035)
+ * Quick patch for importers documentation
+ * Fix prefix for WordpressDotCom importer in docs (#1107)
+ * Add jekyll-contentblocks plugin to docs (#1068)
+ * Make code bits in notes look more natural, more readable (#1089)
+ * Fix logic for `relative_permalinks` instructions on Upgrading page (#1101)
+ * Add docs for post excerpt (#1072)
+ * Add docs for gist tag (#1072)
+ * Add docs indicating that Pygments does not need to be installed
+ separately (#1099, #1119)
+ * Update the migrator docs to be current (#1136)
+ * Add the Jekyll Gallery Plugin to the plugin list (#1143)
+
+### Development Fixes
+ * Use Jekyll.logger instead of Jekyll::Stevenson to log things (#1149)
+ * Fix pesky Cucumber infinite loop (#1139)
+ * Do not write posts with timezones in Cucumber tests (#1124)
+ * Use ISO formatted dates in Cucumber features (#1150)
+
+## 1.0.2 / 2013-05-12
+
+### Major Enhancements
+ * Add `jekyll doctor` command to check site for any known compatibility problems (#1081)
+ * Backwards-compatibilize relative permalinks (#1081)
+
+### Minor Enhancements
+ * Add a `data-lang=""` attribute to Redcarpet code blocks (#1066)
+ * Deprecate old config `server_port`, match to `port` if `port` isn't set (#1084)
+ * Update pygments.rb version to 0.5.0 (#1061)
+ * Update Kramdown version to 1.0.2 (#1067)
+
+### Bug Fixes
+ * Fix issue when categories are numbers (#1078)
+ * Catching that Redcarpet gem isn't installed (#1059)
+
+### Site Enhancements
+ * Add documentation about `relative_permalinks` (#1081)
+ * Remove pygments-installation instructions, as pygments.rb is bundled with it (#1079)
+ * Move pages to be Pages for realz (#985)
+ * Updated links to Liquid documentation (#1073)
+
+## 1.0.1 / 2013-05-08
+
+### Minor Enhancements
+ * Do not force use of `toc_token` when using `generate_tok` in RDiscount (#1048)
+ * Add newer `language-` class name prefix to code blocks (#1037)
+ * Commander error message now preferred over process abort with incorrect args (#1040)
+
+### Bug Fixes
+ * Make Redcarpet respect the pygments configuration option (#1053)
+ * Fix the index build with LSI (#1045)
+ * Don't print deprecation warning when no arguments are specified. (#1041)
+ * Add missing `` to site template used by `new` subcommand, fixed typos in code (#1032)
+
+### Site Enhancements
+ * Changed https to http in the GitHub Pages link (#1051)
+ * Remove CSS cruft, fix typos, fix HTML errors (#1028)
+ * Removing manual install of Pip and Distribute (#1025)
+ * Updated URL for Markdown references plugin (#1022)
+
+### Development Fixes
+ * Markdownify history file (#1027)
+ * Update links on README to point to new jekyllrb.com (#1018)
+
+## 1.0.0 / 2013-05-06
+
+### Major Enhancements
+ * Add `jekyll new` subcommand: generate a Jekyll scaffold (#764)
+ * Refactored Jekyll commands into subcommands: build, serve, and migrate. (#690)
+ * Removed importers/migrators from main project, migrated to jekyll-import sub-gem (#793)
+ * Added ability to render drafts in `_drafts` folder via command line (#833)
+ * Add ordinal date permalink style (/:categories/:year/:y_day/:title.html) (#928)
+
+### Minor Enhancements
+ * Site template HTML5-ified (#964)
+ * Use post's directory path when matching for the `post_url` tag (#998)
+ * Loosen dependency on Pygments so it's only required when it's needed (#1015)
+ * Parse strings into Time objects for date-related Liquid filters (#1014)
+ * Tell the user if there is no subcommand specified (#1008)
+ * Freak out if the destination of `jekyll new` exists and is non-empty (#981)
+ * Add `timezone` configuration option for compilation (#957)
+ * Add deprecation messages for pre-1.0 CLI options (#959)
+ * Refactor and colorize logging (#959)
+ * Refactor Markdown parsing (#955)
+ * Added application/vnd.apple.pkpass to mime.types served by WEBrick (#907)
+ * Move template site to default markdown renderer (#961)
+ * Expose new attribute to Liquid via `page`: `page.path` (#951)
+ * Accept multiple config files from command line (#945)
+ * Add page variable to liquid custom tags and blocks (#413)
+ * Add `paginator.previous_page_path` and `paginator.next_page_path` (#942)
+ * Backwards compatibility for 'auto' (#821, #934)
+ * Added date_to_rfc822 used on RSS feeds (#892)
+ * Upgrade version of pygments.rb to 0.4.2 (#927)
+ * Added short month (e.g. "Sep") to permalink style options for posts (#890)
+ * Expose site.baseurl to Liquid templates (#869)
+ * Adds excerpt attribute to posts which contains first paragraph of content (#837)
+ * Accept custom configuration file via CLI (#863)
+ * Load in GitHub Pages MIME Types on `jekyll serve` (#847, #871)
+ * Improve debugability of error message for a malformed highlight tag (#785)
+ * Allow symlinked files in unsafe mode (#824)
+ * Add 'gist' Liquid tag to core (#822, #861)
+ * New format of Jekyll output (#795)
+ * Reinstate `--limit_posts` and `--future` switches (#788)
+ * Remove ambiguity from command descriptions (#815)
+ * Fix SafeYAML Warnings (#807)
+ * Relaxed Kramdown version to 0.14 (#808)
+ * Aliased `jekyll server` to `jekyll serve`. (#792)
+ * Updated gem versions for Kramdown, Rake, Shoulda, Cucumber, and RedCarpet. (#744)
+ * Refactored Jekyll subcommands into Jekyll::Commands submodule, which now contains them (#768)
+ * Rescue from import errors in Wordpress.com migrator (#671)
+ * Massively accelerate LSI performance (#664)
+ * Truncate post slugs when importing from Tumblr (#496)
+ * Add glob support to include, exclude option (#743)
+ * Layout of Page or Post defaults to 'page' or 'post', respectively (#580)
+ REPEALED by (#977)
+ * "Keep files" feature (#685)
+ * Output full path & name for files that don't parse (#745)
+ * Add source and destination directory protection (#535)
+ * Better YAML error message (#718)
+ * Bug Fixes
+ * Paginate in subdirectories properly (#1016)
+ * Ensure post and page URLs have a leading slash (#992)
+ * Catch all exceptions, not just StandardError descendents (#1007)
+ * Bullet-proof `limit_posts` option (#1004)
+ * Read in YAML as UTF-8 to accept non-ASCII chars (#836)
+ * Fix the CLI option `--plugins` to actually accept dirs and files (#993)
+ * Allow 'excerpt' in YAML front matter to override the extracted excerpt (#946)
+ * Fix cascade problem with site.baseurl, site.port and site.host. (#935)
+ * Filter out directories with valid post names (#875)
+ * Fix symlinked static files not being correctly built in unsafe mode (#909)
+ * Fix integration with directory_watcher 1.4.x (#916)
+ * Accepting strings as arguments to jekyll-import command (#910)
+ * Force usage of older directory_watcher gem as 1.5 is broken (#883)
+ * Ensure all Post categories are downcase (#842, #872)
+ * Force encoding of the rdiscount TOC to UTF8 to avoid conversion errors (#555)
+ * Patch for multibyte URI problem with `jekyll serve` (#723)
+ * Order plugin execution by priority (#864)
+ * Fixed Page#dir and Page#url for edge cases (#536)
+ * Fix broken `post_url` with posts with a time in their YAML front matter (#831)
+ * Look for plugins under the source directory (#654)
+ * Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long
+ post names (#775)
+ * Force Categories to be Strings (#767)
+ * Safe YAML plugin to prevent vulnerability (#777)
+ * Add SVG support to Jekyll/WEBrick. (#407, #406)
+ * Prevent custom destination from causing continuous regen on watch (#528, #820, #862)
+
+### Site Enhancements
+ * Responsify (#860)
+ * Fix spelling, punctuation and phrasal errors (#989)
+ * Update quickstart instructions with `new` command (#966)
+ * Add docs for page.excerpt (#956)
+ * Add docs for page.path (#951)
+ * Clean up site docs to prepare for 1.0 release (#918)
+ * Bring site into master branch with better preview/deploy (#709)
+ * Redesigned site (#583)
+
+### Development Fixes
+ * Exclude Cucumber 1.2.4, which causes tests to fail in 1.9.2 (#938)
+ * Added "features:html" rake task for debugging purposes, cleaned up
+ Cucumber profiles (#832)
+ * Explicitly require HTTPS rubygems source in Gemfile (#826)
+ * Changed Ruby version for development to 1.9.3-p374 from p362 (#801)
+ * Including a link to the GitHub Ruby style guide in CONTRIBUTING.md (#806)
+ * Added script/bootstrap (#776)
+ * Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version
+ of greater than 1.9 (#771)
+ * Switch to Simplecov for coverage report (#765)
+
+## 0.12.1 / 2013-02-19
+
+### Minor Enhancements
+ * Update Kramdown version to 0.14.1 (#744)
+ * Test Enhancements
+ * Update Rake version to 10.0.3 (#744)
+ * Update Shoulda version to 3.3.2 (#744)
+ * Update Redcarpet version to 2.2.2 (#744)
+
+## 0.12.0 / 2012-12-22
+
+### Minor Enhancements
+ * Add ability to explicitly specify included files (#261)
+ * Add `--default-mimetype` option (#279)
+ * Allow setting of RedCloth options (#284)
+ * Add `post_url` Liquid tag for internal post linking (#369)
+ * Allow multiple plugin dirs to be specified (#438)
+ * Inline TOC token support for RDiscount (#333)
+ * Add the option to specify the paginated url format (#342)
+ * Swap out albino for pygments.rb (#569)
+ * Support Redcarpet 2 and fenced code blocks (#619)
+ * Better reporting of Liquid errors (#624)
+ * Bug Fixes
+ * Allow some special characters in highlight names
+ * URL escape category names in URL generation (#360)
+ * Fix error with `limit_posts` (#442)
+ * Properly select dotfile during directory scan (#363, #431, #377)
+ * Allow setting of Kramdown `smart_quotes` (#482)
+ * Ensure front matter is at start of file (#562)
+
+## 0.11.2 / 2011-12-27
+ * Bug Fixes
+ * Fix gemspec
+
+## 0.11.1 / 2011-12-27
+ * Bug Fixes
+ * Fix extra blank line in highlight blocks (#409)
+ * Update dependencies
+
+## 0.11.0 / 2011-07-10
+
+### Major Enhancements
+ * Add command line importer functionality (#253)
+ * Add Redcarpet Markdown support (#318)
+ * Make markdown/textile extensions configurable (#312)
+ * Add `markdownify` filter
+
+### Minor Enhancements
+ * Switch to Albino gem
+ * Bundler support
+ * Use English library to avoid hoops (#292)
+ * Add Posterous importer (#254)
+ * Fixes for Wordpress importer (#274, #252, #271)
+ * Better error message for invalid post date (#291)
+ * Print formatted fatal exceptions to stdout on build failure
+ * Add Tumblr importer (#323)
+ * Add Enki importer (#320)
+ * Bug Fixes
+ * Secure additional path exploits
+
+## 0.10.0 / 2010-12-16
+ * Bug Fixes
+ * Add `--no-server` option.
+
+## 0.9.0 / 2010-12-15
+
+### Minor Enhancements
+ * Use OptionParser's `[no-]` functionality for better boolean parsing.
+ * Add Drupal migrator (#245)
+ * Complain about YAML and Liquid errors (#249)
+ * Remove orphaned files during regeneration (#247)
+ * Add Marley migrator (#28)
+
+## 0.8.0 / 2010-11-22
+
+### Minor Enhancements
+ * Add wordpress.com importer (#207)
+ * Add `--limit-posts` cli option (#212)
+ * Add `uri_escape` filter (#234)
+ * Add `--base-url` cli option (#235)
+ * Improve MT migrator (#238)
+ * Add kramdown support (#239)
+ * Bug Fixes
+ * Fixed filename basename generation (#208)
+ * Set mode to UTF8 on Sequel connections (#237)
+ * Prevent `_includes` dir from being a symlink
+
+## 0.7.0 / 2010-08-24
+
+### Minor Enhancements
+ * Add support for rdiscount extensions (#173)
+ * Bug Fixes
+ * Highlight should not be able to render local files
+ * The site configuration may not always provide a 'time' setting (#184)
+
+## 0.6.2 / 2010-06-25
+ * Bug Fixes
+ * Fix Rakefile 'release' task (tag pushing was missing origin)
+ * Ensure that RedCloth is loaded when textilize filter is used (#183)
+ * Expand source, destination, and plugin paths (#180)
+ * Fix `page.url` to include full relative path (#181)
+
+## 0.6.1 / 2010-06-24
+ * Bug Fixes
+ * Fix Markdown Pygments prefix and suffix (#178)
+
+## 0.6.0 / 2010-06-23
+
+### Major Enhancements
+ * Proper plugin system (#19, #100)
+ * Add safe mode so unsafe converters/generators can be added
+ * Maruku is now the only processor dependency installed by default.
+ Other processors will be lazy-loaded when necessary (and prompt the
+ user to install them when necessary) (#57)
+
+### Minor Enhancements
+ * Inclusion/exclusion of future dated posts (#59)
+ * Generation for a specific time (#59)
+ * Allocate `site.time` on render not per site_payload invocation (#59)
+ * Pages now present in the site payload and can be used through the
+ `site.pages` and `site.html_pages` variables
+ * Generate phase added to site#process and pagination is now a generator
+ * Switch to RakeGem for build/test process
+ * Only regenerate static files when they have changed (#142)
+ * Allow arbitrary options to Pygments (#31)
+ * Allow URL to be set via command line option (#147)
+ * Bug Fixes
+ * Render highlighted code for non markdown/textile pages (#116)
+ * Fix highlighting on Ruby 1.9 (#65)
+ * Fix extension munging when pretty permalinks are enabled (#64)
+ * Stop sorting categories (#33)
+ * Preserve generated attributes over front matter (#119)
+ * Fix source directory binding using `Dir.pwd` (#75)
+
+## 0.5.7 / 2010-01-12
+
+### Minor Enhancements
+ * Allow overriding of post date in the front matter (#62, #38)
+ * Bug Fixes
+ * Categories isn't always an array (#73)
+ * Empty tags causes error in read_posts (#84)
+ * Fix pagination to adhere to read/render/write paradigm
+ * Test Enhancement
+ * Cucumber features no longer use site.posts.first where a better
+ alternative is available
+
+## 0.5.6 / 2010-01-08
+ * Bug Fixes
+ * Require redcloth >= 4.2.1 in tests (#92)
+ * Don't break on triple dashes in yaml front matter (#93)
+
+### Minor Enhancements
+ * Allow .mkd as markdown extension
+ * Use $stdout/err instead of constants (#99)
+ * Properly wrap code blocks (#91)
+ * Add javascript mime type for webrick (#98)
+
+## 0.5.5 / 2010-01-08
+ * Bug Fixes
+ * Fix pagination % 0 bug (#78)
+ * Ensure all posts are processed first (#71)
+
+## NOTE
+ * After this point I will no longer be giving credit in the history;
+ that is what the commit log is for.
+
+## 0.5.4 / 2009-08-23
+ * Bug Fixes
+ * Do not allow symlinks (security vulnerability)
+
+## 0.5.3 / 2009-07-14
+ * Bug Fixes
+ * Solving the permalink bug where non-html files wouldn't work
+ (@jeffrydegrande)
+
+## 0.5.2 / 2009-06-24
+ * Enhancements
+ * Added --paginate option to the executable along with a paginator object
+ for the payload (@calavera)
+ * Upgraded RedCloth to 4.2.1, which makes `` tags work once
+ again.
+ * Configuration options set in config.yml are now available through the
+ site payload (@vilcans)
+ * Posts can now have an empty YAML front matter or none at all
+ (@ bahuvrihi)
+ * Bug Fixes
+ * Fixing Ruby 1.9 issue that requires `#to_s` on the err object
+ (@Chrononaut)
+ * Fixes for pagination and ordering posts on the same day (@ujh)
+ * Made pages respect permalinks style and permalinks in yml front matter
+ (@eugenebolshakov)
+ * Index.html file should always have index.html permalink
+ (@eugenebolshakov)
+ * Added trailing slash to pretty permalink style so Apache is happy
+ (@eugenebolshakov)
+ * Bad markdown processor in config fails sooner and with better message
+ (@ gcnovus)
+ * Allow CRLFs in yaml front matter (@juretta)
+ * Added Date#xmlschema for Ruby versions < 1.9
+
+## 0.5.1 / 2009-05-06
+
+### Major Enhancements
+ * Next/previous posts in site payload (@pantulis, @tomo)
+ * Permalink templating system
+ * Moved most of the README out to the GitHub wiki
+ * Exclude option in configuration so specified files won't be brought over
+ with generated site (@duritong)
+ * Bug Fixes
+ * Making sure config.yaml references are all gone, using only config.yml
+ * Fixed syntax highlighting breaking for UTF-8 code (@henrik)
+ * Worked around RDiscount bug that prevents Markdown from getting parsed
+ after highlight (@henrik)
+ * CGI escaped post titles (@Chrononaut)
+
+## 0.5.0 / 2009-04-07
+
+### Minor Enhancements
+ * Ability to set post categories via YAML (@qrush)
+ * Ability to set prevent a post from publishing via YAML (@qrush)
+ * Add textilize filter (@willcodeforfoo)
+ * Add 'pretty' permalink style for wordpress-like urls (@dysinger)
+ * Made it possible to enter categories from YAML as an array (@Chrononaut)
+ * Ignore Emacs autosave files (@Chrononaut)
+ * Bug Fixes
+ * Use block syntax of popen4 to ensure that subprocesses are properly disposed (@jqr)
+ * Close open4 streams to prevent zombies (@rtomayko)
+ * Only query required fields from the WP Database (@ariejan)
+ * Prevent `_posts` from being copied to the destination directory (@bdimcheff)
+ * Refactors
+ * Factored the filtering code into a method (@Chrononaut)
+ * Fix tests and convert to Shoulda (@qrush, @technicalpickles)
+ * Add Cucumber acceptance test suite (@qrush, @technicalpickles)
+
+## 0.4.1
+
+### Minor Enhancements
+ * Changed date format on wordpress converter (zeropadding) (@dysinger)
+ * Bug Fixes
+ * Add Jekyll binary as executable to gemspec (@dysinger)
+
+## 0.4.0 / 2009-02-03
+
+### Major Enhancements
+ * Switch to Jeweler for packaging tasks
+
+### Minor Enhancements
+ * Type importer (@codeslinger)
+ * `site.topics` accessor (@baz)
+ * Add `array_to_sentence_string` filter (@mchung)
+ * Add a converter for textpattern (@PerfectlyNormal)
+ * Add a working Mephisto / MySQL converter (@ivey)
+ * Allowing .htaccess files to be copied over into the generated site (@briandoll)
+ * Add option to not put file date in permalink URL (@mreid)
+ * Add line number capabilities to highlight blocks (@jcon)
+ * Bug Fixes
+ * Fix permalink behavior (@cavalle)
+ * Fixed an issue with pygments, markdown, and newlines (@zpinter)
+ * Ampersands need to be escaped (@pufuwozu, @ap)
+ * Test and fix the site.categories hash (@zzot)
+ * Fix site payload available to files (@matrix9180)
+
+## 0.3.0 / 2008-12-24
+
+### Major Enhancements
+ * Added `--server` option to start a simple WEBrick server on destination
+ directory (@johnreilly and @mchung)
+
+### Minor Enhancements
+ * Added post categories based on directories containing `_posts` (@mreid)
+ * Added post topics based on directories underneath `_posts`
+ * Added new date filter that shows the full month name (@mreid)
+ * Merge Post's YAML front matter into its to_liquid payload (@remi)
+ * Restrict includes to regular files underneath `_includes`
+ * Bug Fixes
+ * Change YAML delimiter matcher so as to not chew up 2nd level markdown
+ headers (@mreid)
+ * Fix bug that meant page data (such as the date) was not available in
+ templates (@mreid)
+ * Properly reject directories in `_layouts`
+
+## 0.2.1 / 2008-12-15
+ * Major Changes
+ * Use Maruku (pure Ruby) for Markdown by default (@mreid)
+ * Allow use of RDiscount with `--rdiscount` flag
+
+### Minor Enhancements
+ * Don't load directory_watcher unless it's needed (@pjhyett)
+
+## 0.2.0 / 2008-12-14
+ * Major Changes
+ * related_posts is now found in `site.related_posts`
+
+## 0.1.6 / 2008-12-13
+ * Major Features
+ * Include files in `_includes` with `{% include x.textile %}`
+
+## 0.1.5 / 2008-12-12
+
+### Major Enhancements
+ * Code highlighting with Pygments if `--pygments` is specified
+ * Disable true LSI by default, enable with `--lsi`
+
+### Minor Enhancements
+ * Output informative message if RDiscount is not available (@JackDanger)
+ * Bug Fixes
+ * Prevent Jekyll from picking up the output directory as a source (@JackDanger)
+ * Skip `related_posts` when there is only one post (@JackDanger)
+
+## 0.1.4 / 2008-12-08
+ * Bug Fixes
+ * DATA does not work properly with rubygems
+
+## 0.1.3 / 2008-12-06
+ * Major Features
+ * Markdown support (@vanpelt)
+ * Mephisto and CSV converters (@vanpelt)
+ * Code hilighting (@vanpelt)
+ * Autobuild
+ * Bug Fixes
+ * Accept both `\r\n` and `\n` in YAML header (@vanpelt)
+
+## 0.1.2 / 2008-11-22
+ * Major Features
+ * Add a real "related posts" implementation using Classifier
+ * Command Line Changes
+ * Allow cli to be called with 0, 1, or 2 args intuiting dir paths
+ if they are omitted
+
+## 0.1.1 / 2008-11-22
+ * Minor Additions
+ * Posts now support introspectional data e.g. `{{ page.url }}`
+
+## 0.1.0 / 2008-11-05
+ * First release
+ * Converts posts written in Textile
+ * Converts regular site pages
+ * Simple copy of binary files
+
+## 0.0.0 / 2008-10-19
+ * Birthday!
From bfc07a39c6bf1b57e88a470fc6d0334ee628c9c3 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Thu, 7 Jan 2016 23:22:07 -0800
Subject: [PATCH 0233/4996] Update history to reflect merge of #4330 [ci skip]
---
History.markdown | 372 ++++++++++++++++++++++++-----------------------
1 file changed, 188 insertions(+), 184 deletions(-)
diff --git a/History.markdown b/History.markdown
index a1ad1b896bf..5b9898be7e5 100644
--- a/History.markdown
+++ b/History.markdown
@@ -68,6 +68,7 @@
* Add documentation for incremental regeneration (#4293)
* Add note about removal of relative permalink support in upgrading docs (#4303)
* Add Pro Tip to use front matter variable to create clean URLs (#4296)
+ * Fix grammar in the documentation for posts. (#4330)
## 3.0.1 / 2015-11-17
@@ -144,8 +145,7 @@
* Perf: `Markdown#matches` should avoid regexp (#3321)
* Perf: Use frozen regular expressions for `Utils#slugify` (#3321)
* Split off Textile support into jekyll-textile-converter (#3319)
- * Improve the navigation menu alignment in the site template on small
- screens (#3331)
+ * Improve the navigation menu alignment in the site template on small screens (#3331)
* Show the regeneration time after the initial generation (#3378)
* Site template: Switch default font to Helvetica Neue (#3376)
* Make the `include` tag a teensy bit faster. (#3391)
@@ -177,8 +177,7 @@
* Set log level to debug when verbose flag is set (#3665)
* Added a mention on the Gemfile to complete the instructions (#3671)
* Perf: Cache `Document#to_liquid` and invalidate where necessary (#3693)
- * Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and
- `keep_dirs` only once, not once per iteration (#3696)
+ * Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and `keep_dirs` only once, not once per iteration (#3696)
* Omit jekyll/jekyll-help from list of resources. (#3698)
* Add basic `jekyll doctor` test to detect fsnotify (OSX) anomalies. (#3704)
* Added talk.jekyllrb.com to "Have questions?" (#3694)
@@ -460,16 +459,14 @@
* Strip newlines in site template `` description. (#2982)
* Add link to atom feed in `head` of site template files (#2996)
* Performance optimizations (#2994)
- * Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration
- over hash keys. (#3017)
+ * Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration over hash keys. (#3017)
* Further minor performance enhancements. (#3022)
* Add 'b' and 's' aliases for build and serve, respectively (#3065)
### Bug Fixes
* Fix Rouge's RedCarpet plugin interface integration (#2951)
- * Remove `--watch` from the site template blog post since it defaults
- to watching in in 2.4.0 (#2922)
+ * Remove `--watch` from the site template blog post since it defaults to watching in in 2.4.0 (#2922)
* Fix code for media query mixin in site template (#2946)
* Allow post URL's to have `.htm` extensions (#2925)
* `Utils.slugify`: Don't create new objects when gsubbing (#2997)
@@ -547,11 +544,9 @@
* Document the `name` variable for collection permalinks (#2829)
* Adds info about installing jekyll in current dir (#2839)
- * Remove deprecated `jekyll-projectlist` plugin from list of third-party
- plugins (#2742)
+ * Remove deprecated `jekyll-projectlist` plugin from list of third-party plugins (#2742)
* Remove tag plugins that are built in to Jekyll (#2751)
- * Add `markdown-writer` package for Atom Editor to list of third-party
- plugins (#2763)
+ * Add `markdown-writer` package for Atom Editor to list of third-party plugins (#2763)
* Fix typo in site documentation for collections (#2764)
* Fix minor typo on plugins docs page (#2765)
* Replace markdown with HTML in `sass_dir` note on assets page (#2791)
@@ -639,8 +634,7 @@
### Site Enhancements
* Update Kramdown urls (#2588)
- * Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of
- third-party plugins (#2596)
+ * Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of third-party plugins (#2596)
* Fix a bunch of broken links in the site (#2601)
* Replace dead links with working links (#2611)
* Add jekyll-hook to deployment methods (#2617)
@@ -677,12 +671,10 @@
* Allow subdirectories in `_data` (#2395)
* Extract Pagination Generator into gem: `jekyll-paginate` (#2455)
* Utilize `date_to_rfc822` filter in site template (#2437)
- * Add categories, last build datetime, and generator to site template
- feed (#2438)
+ * Add categories, last build datetime, and generator to site template feed (#2438)
* Configurable, replaceable Logger-compliant logger (#2444)
* Extract `gist` tag into a separate gem (#2469)
- * Add `collection` attribute to `Document#to_liquid` to access the
- document's collection label. (#2436)
+ * Add `collection` attribute to `Document#to_liquid` to access the document's collection label. (#2436)
* Upgrade listen to `2.7.6 <= x < 3.0.0` (#2492)
* Allow configuration of different Twitter and GitHub usernames in site template (#2485)
* Bump Pygments to v0.6.0 (#2504)
@@ -707,8 +699,7 @@
* Allow front matter defaults to set post categories (#2373)
* Fix command in subcommand deprecation warning (#2457)
* Keep all parent directories of files/dirs in `keep_files` (#2458)
- * When using RedCarpet and Rouge without Rouge installed, fixed erroneous
- error which stated that redcarpet was missing, not rouge. (#2464)
+ * When using RedCarpet and Rouge without Rouge installed, fixed erroneous error which stated that redcarpet was missing, not rouge. (#2464)
* Ignore *all* directories and files that merit it on auto-generation (#2459)
* Before copying file, explicitly remove the old one (#2535)
* Merge file system categories with categories from YAML. (#2531)
@@ -737,8 +728,7 @@
* Prevent table from extending parent width in permalink style table (#2424)
* Add collections to info about pagination support (#2389)
* Add `jekyll_github_sample` plugin to list of third-party plugins (#2463)
- * Clarify documentation around front matter defaults and add details
- about defaults for collections. (#2439)
+ * Clarify documentation around front matter defaults and add details about defaults for collections. (#2439)
* Add Jekyll Project Version Tag to list of third-party plugins (#2468)
* Use `https` for GitHub links across whole site (#2470)
* Add StickerMule + Jekyll post (#2476)
@@ -754,13 +744,11 @@
### Bug Fixes
- * Properly prefix links in site template with URL or baseurl depending upon
- need. (#2319)
+ * Properly prefix links in site template with URL or baseurl depending upon need. (#2319)
* Update gist tag comments and error message to require username (#2326)
* Fix `permalink` setting in site template (#2331)
* Don't fail if any of the path objects are nil (#2325)
- * Instantiate all descendants for converters and generators, not just
- direct subclasses (#2334)
+ * Instantiate all descendants for converters and generators, not just direct subclasses (#2334)
* Replace all instances of `site.name` with `site.title` in site template (#2324)
* `Jekyll::Filters#time` now accepts UNIX timestamps in string or number form (#2339)
* Use `item_property` for `where` filter so it doesn't break on collections (#2359)
@@ -796,17 +784,16 @@
## 2.0.0 / 2014-05-06
### Major Enhancements
+
* Add "Collections" feature (#2199)
* Add gem-based plugin whitelist to safe mode (#1657)
- * Replace the commander command line parser with a more robust
- solution for our needs called `mercenary` (#1706)
+ * Replace the commander command line parser with a more robust solution for our needs called `mercenary` (#1706)
* Remove support for Ruby 1.8.x (#1780)
* Move to jekyll/jekyll from mojombo/jekyll (#1817)
* Allow custom markdown processors (#1872)
* Provide support for the Rouge syntax highlighter (#1859)
* Provide support for Sass (#1932)
- * Provide a 300% improvement when generating sites that use
- `Post#next` or `Post#previous` (#1983)
+ * Provide a 300% improvement when generating sites that use `Post#next` or `Post#previous` (#1983)
* Provide support for CoffeeScript (#1991)
* Replace Maruku with Kramdown as Default Markdown Processor (#1988)
* Expose `site.static_files` to Liquid (#2075)
@@ -817,10 +804,9 @@
* Exclude files based on prefix as well as `fnmatch?` (#2303)
### Minor Enhancements
- * Move the EntryFilter class into the Jekyll module to avoid polluting the
- global namespace (#1800)
- * Add `group_by` Liquid filter create lists of items grouped by a common
- property's value (#1788)
+
+ * Move the EntryFilter class into the Jekyll module to avoid polluting the global namespace (#1800)
+ * Add `group_by` Liquid filter create lists of items grouped by a common property's value (#1788)
* Add support for Maruku's `fenced_code_blocks` option (#1799)
* Update Redcarpet dependency to ~> 3.0 (#1815)
* Automatically sort all pages by name (#1848)
@@ -831,12 +817,10 @@
* Bump dependency `safe_yaml` to `~> 1.0` (#1886)
* Allow sorting of content by custom properties (#1849)
* Add `--quiet` flag to silence output during build and serve (#1898)
- * Add a `where` filter to filter arrays based on a key/value pair
- (#1875)
+ * Add a `where` filter to filter arrays based on a key/value pair (#1875)
* Route 404 errors to a custom 404 page in development (#1899)
* Excludes are now relative to the site source (#1916)
- * Bring MIME Types file for `jekyll serve` to complete parity with GH Pages
- servers (#1993)
+ * Bring MIME Types file for `jekyll serve` to complete parity with GH Pages servers (#1993)
* Adding Breakpoint to make new site template more responsive (#2038)
* Default to using the UTF-8 encoding when reading files. (#2031)
* Update Redcarpet dependency to ~> 3.1 (#2044)
@@ -854,13 +838,11 @@
* Add support for unpublished drafts (#2164)
* Add `force_polling` option to the `serve` command (#2165)
* Clean up the `` in the site template (#2186)
- * Permit YAML blocks to end with three dots to better conform with the
- YAML spec (#2110)
+ * Permit YAML blocks to end with three dots to better conform with the YAML spec (#2110)
* Use `File.exist?` instead of deprecated `File.exists?` (#2214)
* Require newline after start of YAML Front Matter header (#2211)
* Add the ability for pages to be marked as `published: false` (#1492)
- * Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy
- looking up of variable values in a Liquid context. (#2253)
+ * Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy looking up of variable values in a Liquid context. (#2253)
* Remove literal lang name from class (#2292)
* Return `utf-8` encoding in header for webrick error page response (#2289)
* Make template site easier to customize (#2268)
@@ -869,13 +851,12 @@
* Take into account missing values in the Liquid sort filter (#2299)
### Bug Fixes
+
* Don't allow nil entries when loading posts (#1796)
- * Remove the scrollbar that's always displayed in new sites generated
- from the site template (#1805)
+ * Remove the scrollbar that's always displayed in new sites generated from the site template (#1805)
* Add `#path` to required methods in `Jekyll::Convertible` (#1866)
* Default Maruku fenced code blocks to ON for 2.0.0-dev (#1831)
- * Change short opts for host and port for `jekyll docs` to be consistent with
- other subcommands (#1877)
+ * Change short opts for host and port for `jekyll docs` to be consistent with other subcommands (#1877)
* Fix typos (#1910)
* Lock Maruku at 0.7.0 to prevent bugs caused by Maruku 0.7.1 (#1958)
* Fixes full path leak to source directory when using include tag (#1951)
@@ -888,8 +869,7 @@
* Sanitize paths uniformly, in a Windows-friendly way (#2065, #2109)
* Update gem build steps to work correctly on Windows (#2118)
* Remove obsolete `normalize_options` method call from `bin/jekyll` (#2121).
- * Remove `+` characters from Pygments lexer names when adding as a CSS
- class (#994)
+ * Remove `+` characters from Pygments lexer names when adding as a CSS class (#994)
* Remove some code that caused Ruby interpreter warnings (#2178)
* Only strip the drive name if it begins the string (#2175)
* Remove default post with invalid date from site template (#2200)
@@ -904,14 +884,14 @@
* Add `output` to `Document` liquid output hash (#2309)
### Development Fixes
+
* Add a link to the site in the README.md file (#1795)
* Add in History and site changes from `v1-stable` branch (#1836)
* Testing additions on the Excerpt class (#1893)
* Fix the `highlight` tag feature (#1859)
* Test Jekyll under Ruby 2.1.0 (#1900)
* Add script/cibuild for fun and profit (#1912)
- * Use `Forwardable` for delegation between `Excerpt` and `Post`
- (#1927)
+ * Use `Forwardable` for delegation between `Excerpt` and `Post` (#1927)
* Rename `read_things` to `read_content` (#1928)
* Add `script/branding` script for ASCII art lovin' (#1936)
* Update the README to reflect the repo move (#1943)
@@ -939,11 +919,11 @@
* Workaround for Travis bug (#2290)
### Site Enhancements
+
* Document Kramdown's GFM parser option (#1791)
* Move CSS to includes & update normalize.css to v2.1.3 (#1787)
* Minify CSS only in production (#1803)
- * Fix broken link to installation of Ruby on Mountain Lion blog post on
- Troubleshooting docs page (#1797)
+ * Fix broken link to installation of Ruby on Mountain Lion blog post on Troubleshooting docs page (#1797)
* Fix issues with 1.4.1 release blog post (#1804)
* Add note about deploying to OpenShift (#1812)
* Collect all Windows-related docs onto one page (#1818)
@@ -958,8 +938,7 @@
* Add jekyll-compass to the plugin list (#1923)
* Add note in Posts docs about stripping `` tags from excerpt (#1933)
* Add additional info about the new exclude behavior (#1938)
- * Linkify 'awesome contributors' to point to the contributors graph on
- GitHub (#1940)
+ * Linkify 'awesome contributors' to point to the contributors graph on GitHub (#1940)
* Update `docs/sites.md` link to GitHub Training materials (#1949)
* Update `master` with the release info from 1.4.3 (#1947)
* Define docs nav in datafile (#1953)
@@ -976,8 +955,7 @@
* Update link to rack-jekyll on "Deployment Methods" page (#2047)
* Fix typo in /docs/configuration (#2073)
* Fix count in docs for `site.static_files` (#2077)
- * Update configuration docs to indicate utf-8 is the default for 2.0.0
- and ASCII for 1.9.3 (#2074)
+ * Update configuration docs to indicate utf-8 is the default for 2.0.0 and ASCII for 1.9.3 (#2074)
* Add info about unreleased feature to the site (#2061)
* Add whitespace to liquid example in GitHub Pages docs (#2084)
* Clarify the way Sass and CoffeeScript files are read in and output (#2067)
@@ -994,8 +972,7 @@
* Some HTML tidying (#2130)
* Remove modernizr and use html5shiv.js directly for IE less than v9 (#2131)
* Remove unused images (#2187)
- * Use `array_to_sentence_string` filter when outputting news item
- categories (#2191)
+ * Use `array_to_sentence_string` filter when outputting news item categories (#2191)
* Add link to Help repo in primary navigation bar (#2177)
* Switch to using an ico file for the shortcut icon (#2193)
* Use numbers to specify font weights and only bring in font weights used (#2185)
@@ -1045,64 +1022,72 @@
## 1.4.3 / 2014-01-13
### Bug Fixes
+
* Patch show-stopping security vulnerabilities (#1944)
## 1.4.2 / 2013-12-16
### Bug Fixes
+
* Turn on Maruku fenced code blocks by default (#1830)
## 1.4.1 / 2013-12-09
### Bug Fixes
+
* Don't allow nil entries when loading posts (#1796)
## 1.4.0 / 2013-12-07
### Major Enhancements
+
* Add support for TOML config files (#1765)
### Minor Enhancements
+
* Sort plugins as a way to establish a load order (#1682)
* Update Maruku to 0.7.0 (#1775)
### Bug Fixes
+
* Add a space between two words in a Pagination warning message (#1769)
* Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 (#1778)
### Development Fixes
+
* Remove some whitespace in the code (#1755)
* Remove some duplication in the reading of posts and drafts (#1779)
### Site Enhancements
+
* Fixed case of a word in the Jekyll v1.3.0 release post (#1762)
* Fixed the mime type for the favicon (#1772)
## 1.3.1 / 2013-11-26
### Minor Enhancements
+
* Add a `--prefix` option to passthrough for the importers (#1669)
- * Push the paginator plugin lower in the plugin priority order so
- other plugins run before it (#1759)
+ * Push the paginator plugin lower in the plugin priority order so other plugins run before it (#1759)
### Bug Fixes
+
* Fix the include tag when ran in a loop (#1726)
* Fix errors when using `--watch` on 1.8.7 (#1730)
- * Specify where the include is called from if an included file is
- missing (#1746)
+ * Specify where the include is called from if an included file is missing (#1746)
### Development Fixes
+
* Extract `Site#filter_entries` into its own object (#1697)
* Enable Travis' bundle caching (#1734)
* Remove trailing whitespace in some files (#1736)
* Fix a duplicate test name (#1754)
### Site Enhancements
+
* Update link to example Rakefile to point to specific commit (#1741)
- * Fix drafts docs to indicate that draft time is based on file modification
- time, not `Time.now` (#1695)
- * Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to
- list of third-party plugins (#1693)
+ * Fix drafts docs to indicate that draft time is based on file modification time, not `Time.now` (#1695)
+ * Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to list of third-party plugins (#1693)
* Add `jekyll-asset-path-plugin` to list of third-party plugins (#1670)
* Add `emoji-for-jekyll` to list of third-part plugins (#1708)
* Fix previous section link on plugins page to point to pagination page (#1707)
@@ -1114,44 +1099,40 @@
## 1.3.0 / 2013-11-04
### Major Enhancements
- * Add support for adding data as YAML files under a site's `_data`
- directory (#1003)
+
+ * Add support for adding data as YAML files under a site's `_data` directory (#1003)
* Allow variables to be used with `include` tags (#1495)
* Allow using gems for plugin management (#1557)
### Minor Enhancements
+
* Decrease the specificity in the site template CSS (#1574)
* Add `encoding` configuration option (#1449)
- * Provide better error handling for Jekyll's custom Liquid tags
- (#1514)
- * If an included file causes a Liquid error, add the path to the
- include file that caused the error to the error message (#1596)
- * If a layout causes a Liquid error, change the error message so that
- we know it comes from the layout (#1601)
+ * Provide better error handling for Jekyll's custom Liquid tags (#1514)
+ * If an included file causes a Liquid error, add the path to the include file that caused the error to the error message (#1596)
+ * If a layout causes a Liquid error, change the error message so that we know it comes from the layout (#1601)
* Update Kramdown dependency to `~> 1.2` (#1610)
* Update `safe_yaml` dependency to `~> 0.9.7` (#1602)
* Allow layouts to be in subfolders like includes (#1622)
* Switch to listen for site watching while serving (#1589)
* Add a `json` liquid filter to be used in sites (#1651)
- * Point people to the migration docs when the `jekyll-import` gem is
- missing (#1662)
+ * Point people to the migration docs when the `jekyll-import` gem is missing (#1662)
### Bug Fixes
- * Fix up matching against source and destination when the two
- locations are similar (#1556)
+
+ * Fix up matching against source and destination when the two locations are similar (#1556)
* Fix the missing `pathname` require in certain cases (#1255)
* Use `+` instead of `Array#concat` when building `Post` attribute list (#1571)
* Print server address when launching a server (#1586)
* Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering (#1598)
* Fix error with failing include tag when variable was file name (#1613)
* Downcase lexers before passing them to pygments (#1615)
- * Capitalize the short verbose switch because it conflicts with the
- built-in Commander switch (#1660)
+ * Capitalize the short verbose switch because it conflicts with the built-in Commander switch (#1660)
* Fix compatibility with 1.8.x (#1665)
- * Fix an error with the new file watching code due to library version
- incompatibilities (#1687)
+ * Fix an error with the new file watching code due to library version incompatibilities (#1687)
### Development Fixes
+
* Add coverage reporting with Coveralls (#1539)
* Refactor the Liquid `include` tag (#1490)
* Update launchy dependency to `~> 2.3` (#1608)
@@ -1168,6 +1149,7 @@
* Improve comparisons of timestamps by ignoring the seconds (#1582)
### Site Enhancements
+
* Fix params for `JekyllImport::WordPress.process` arguments (#1554)
* Add `jekyll-suggested-tweet` to list of third-party plugins (#1555)
* Link to Liquid's docs for tags and filters (#1553)
@@ -1175,8 +1157,7 @@
* Simplify/generalize pagination docs (#1577)
* Add documentation for the new data sources feature (#1503)
* Add more information on how to create generators (#1590, #1592)
- * Improve the instructions for mimicking GitHub Flavored Markdown
- (#1614)
+ * Improve the instructions for mimicking GitHub Flavored Markdown (#1614)
* Add `jekyll-import` warning note of missing dependencies (#1626)
* Fix grammar in the Usage section (#1635)
* Add documentation for the use of gems as plugins (#1656)
@@ -1188,21 +1169,25 @@
## 1.2.1 / 2013-09-14
### Minor Enhancements
+
* Print better messages for detached server. Mute output on detach. (#1518)
* Disable reverse lookup when running `jekyll serve` (#1363)
* Upgrade RedCarpet dependency to `~> 2.3.0` (#1515)
* Upgrade to Liquid `>= 2.5.2, < 2.6` (#1536)
### Bug Fixes
+
* Fix file discrepancy in gemspec (#1522)
* Force rendering of Include tag (#1525)
### Development Fixes
+
* Add a rake task to generate a new release post (#1404)
* Mute LSI output in tests (#1531)
* Update contributor documentation (#1537)
### Site Enhancements
+
* Fix a couple of validation errors on the site (#1511)
* Make navigation menus reusable (#1507)
* Fix link to History page from Release v1.2.0 notes post.
@@ -1212,42 +1197,38 @@
## 1.2.0 / 2013-09-06
### Major Enhancements
+
* Disable automatically-generated excerpts when `excerpt_separator` is `""`. (#1386)
* Add checking for URL conflicts when running `jekyll doctor` (#1389)
### Minor Enhancements
+
* Catch and fix invalid `paginate` values (#1390)
- * Remove superfluous `div.container` from the default html template for
- `jekyll new` (#1315)
+ * Remove superfluous `div.container` from the default html template for `jekyll new` (#1315)
* Add `-D` short-form switch for the drafts option (#1394)
* Update the links in the site template for Twitter and GitHub (#1400)
* Update dummy email address to example.com domain (#1408)
- * Update normalize.css to v2.1.2 and minify; add rake task to update
- normalize.css with greater ease. (#1430)
- * Add the ability to detach the server ran by `jekyll serve` from it's
- controlling terminal (#1443)
+ * Update normalize.css to v2.1.2 and minify; add rake task to update normalize.css with greater ease. (#1430)
+ * Add the ability to detach the server ran by `jekyll serve` from it's controlling terminal (#1443)
* Improve permalink generation for URLs with special characters (#944)
- * Expose the current Jekyll version to posts and pages via a new
- `jekyll.version` variable (#1481)
+ * Expose the current Jekyll version to posts and pages via a new `jekyll.version` variable (#1481)
### Bug Fixes
+
* Markdown extension matching matches only exact matches (#1382)
* Fixed NoMethodError when message passed to `Stevenson#message` is nil (#1388)
* Use binary mode when writing file (#1364)
- * Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and
- Kramdown > 0.14.0 (#1397)
+ * Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and Kramdown > 0.14.0 (#1397)
* Do not force the permalink to be a dir if it ends on .html (#963)
* When a Liquid Exception is caught, show the full path rel. to site source (#1415)
- * Properly read in the config options when serving the docs locally
- (#1444)
+ * Properly read in the config options when serving the docs locally (#1444)
* Fixed `--layouts` option for `build` and `serve` commands (#1458)
* Remove kramdown as a runtime dependency since it's optional (#1498)
- * Provide proper error handling for invalid file names in the include
- tag (#1494)
+ * Provide proper error handling for invalid file names in the include tag (#1494)
### Development Fixes
- * Remove redundant argument to
- Jekyll::Commands::New#scaffold_post_content (#1356)
+
+ * Remove redundant argument to Jekyll::Commands::New#scaffold_post_content (#1356)
* Add new dependencies to the README (#1360)
* Fix link to contributing page in README (#1424)
* Update TomDoc in Pager#initialize to match params (#1441)
@@ -1257,6 +1238,7 @@
* Add Gem version and dependency badge to README (#1497)
### Site Enhancements
+
* Add info about new releases (#1353)
* Update plugin list with jekyll-rss plugin (#1354)
* Update the site list page with Ruby's official site (#1358)
@@ -1281,59 +1263,59 @@
## 1.1.2 / 2013-07-25
### Bug Fixes
+
* Require Liquid 2.5.1 (#1349)
## 1.1.1 / 2013-07-24
### Minor Enhancements
+
* Remove superfluous `table` selector from main.css in `jekyll new` template (#1328)
* Abort with non-zero exit codes (#1338)
### Bug Fixes
+
* Fix up the rendering of excerpts (#1339)
### Site Enhancements
+
* Add Jekyll Image Tag to the plugins list (#1306)
* Remove erroneous statement that `site.pages` are sorted alphabetically.
- * Add info about the `_drafts` directory to the directory structure
- docs (#1320)
- * Improve the layout of the plugin listing by organizing it into
- categories (#1310)
+ * Add info about the `_drafts` directory to the directory structure docs (#1320)
+ * Improve the layout of the plugin listing by organizing it into categories (#1310)
* Add generator-jekyllrb and grunt-jekyll to plugins page (#1330)
* Mention Kramdown as option for markdown parser on Extras page (#1318)
* Update Quick-Start page to include reminder that all requirements must be installed (#1327)
- * Change filename in `include` example to an HTML file so as not to indicate that Jekyll
- will automatically convert them. (#1303)
+ * Change filename in `include` example to an HTML file so as not to indicate that Jekyll will automatically convert them. (#1303)
* Add an RSS feed for commits to Jekyll (#1343)
## 1.1.0 / 2013-07-14
### Major Enhancements
+
* Add `docs` subcommand to read Jekyll's docs when offline. (#1046)
* Support passing parameters to templates in `include` tag (#1204)
* Add support for Liquid tags to post excerpts (#1302)
### Minor Enhancements
- * Search the hierarchy of pagination path up to site root to determine template page for
- pagination. (#1198)
+
+ * Search the hierarchy of pagination path up to site root to determine template page for pagination. (#1198)
* Add the ability to generate a new Jekyll site without a template (#1171)
- * Use redcarpet as the default markdown engine in newly generated
- sites (#1245, #1247)
- * Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new
- sites. (#1247)
- * In the generated site, remove files that will be replaced by a
- directory (#1118)
+ * Use redcarpet as the default markdown engine in newly generated sites (#1245, #1247)
+ * Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new sites. (#1247)
+ * In the generated site, remove files that will be replaced by a directory (#1118)
* Fail loudly if a user-specified configuration file doesn't exist (#1098)
* Allow for all options for Kramdown HTML Converter (#1201)
### Bug Fixes
+
* Fix pagination in subdirectories. (#1198)
- * Fix an issue with directories and permalinks that have a plus sign
- (+) in them (#1215)
+ * Fix an issue with directories and permalinks that have a plus sign (+) in them (#1215)
* Provide better error reporting when generating sites (#1253)
* Latest posts first in non-LSI `related_posts` (#1271)
### Development Fixes
+
* Merge the theme and layout Cucumber steps into one step (#1151)
* Restrict activesupport dependency to pre-4.0.0 to maintain compatibility with `<= 1.9.2`
* Include/exclude deprecation handling simplification (#1284)
@@ -1341,22 +1323,20 @@
* Refactor Jekyll::Site (#1144)
### Site Enhancements
+
* Add "News" section for release notes, along with an RSS feed (#1093, #1285, #1286)
* Add "History" page.
* Restructured docs sections to include "Meta" section.
- * Add message to "Templates" page that specifies that Python must be installed in order
- to use Pygments. (#1182)
+ * Add message to "Templates" page that specifies that Python must be installed in order to use Pygments. (#1182)
* Update link to the official Maruku repo (#1175)
* Add documentation about `paginate_path` to "Templates" page in docs (#1129)
* Give the quick-start guide its own page (#1191)
- * Update ProTip on Installation page in docs to point to all the info about Pygments and
- the 'highlight' tag. (#1196)
+ * Update ProTip on Installation page in docs to point to all the info about Pygments and the 'highlight' tag. (#1196)
* Run `site/img` through ImageOptim (thanks @qrush!) (#1208)
* Added Jade Converter to `site/docs/plugins` (#1210)
* Fix location of docs pages in Contributing pages (#1214)
* Add ReadInXMinutes plugin to the plugin list (#1222)
- * Remove plugins from the plugin list that have equivalents in Jekyll
- proper (#1223)
+ * Remove plugins from the plugin list that have equivalents in Jekyll proper (#1223)
* Add jekyll-assets to the plugin list (#1225)
* Add jekyll-pandoc-mulitple-formats to the plugin list (#1229)
* Remove dead link to "Using Git to maintain your blog" (#1227)
@@ -1370,17 +1350,16 @@
* Add `jekyll-timeago` to list of third-party plugins. (#1260)
* Add `jekyll-swfobject` to list of third-party plugins. (#1263)
* Add `jekyll-picture-tag` to list of third-party plugins. (#1280)
- * Update the GitHub Pages documentation regarding relative URLs
- (#1291)
+ * Update the GitHub Pages documentation regarding relative URLs (#1291)
* Update the S3 deployment documentation (#1294)
* Add suggestion for Xcode CLT install to troubleshooting page in docs (#1296)
* Add 'Working with drafts' page to docs (#1289)
- * Add information about time zones to the documentation for a page's
- date (#1304)
+ * Add information about time zones to the documentation for a page's date (#1304)
## 1.0.3 / 2013-06-07
### Minor Enhancements
+
* Add support to gist tag for private gists. (#1189)
* Fail loudly when Maruku errors out (#1190)
* Move the building of related posts into their own class (#1057)
@@ -1389,16 +1368,16 @@
* Convert IDs in the site template to classes (#1170)
### Bug Fixes
+
* Fix typo in Stevenson constant "ERROR". (#1166)
* Rename Jekyll::Logger to Jekyll::Stevenson to fix inheritance issue (#1106)
* Exit with a non-zero exit code when dealing with a Liquid error (#1121)
- * Make the `exclude` and `include` options backwards compatible with
- versions of Jekyll prior to 1.0 (#1114)
+ * Make the `exclude` and `include` options backwards compatible with versions of Jekyll prior to 1.0 (#1114)
* Fix pagination on Windows (#1063)
- * Fix the application of Pygments' Generic Output style to Go code
- (#1156)
+ * Fix the application of Pygments' Generic Output style to Go code (#1156)
### Site Enhancements
+
* Add a Pro Tip to docs about front matter variables being optional (#1147)
* Add changelog to site as History page in /docs/ (#1065)
* Add note to Upgrading page about new config options in 1.0.x (#1146)
@@ -1412,12 +1391,12 @@
* Fix logic for `relative_permalinks` instructions on Upgrading page (#1101)
* Add docs for post excerpt (#1072)
* Add docs for gist tag (#1072)
- * Add docs indicating that Pygments does not need to be installed
- separately (#1099, #1119)
+ * Add docs indicating that Pygments does not need to be installed separately (#1099, #1119)
* Update the migrator docs to be current (#1136)
* Add the Jekyll Gallery Plugin to the plugin list (#1143)
### Development Fixes
+
* Use Jekyll.logger instead of Jekyll::Stevenson to log things (#1149)
* Fix pesky Cucumber infinite loop (#1139)
* Do not write posts with timezones in Cucumber tests (#1124)
@@ -1426,20 +1405,24 @@
## 1.0.2 / 2013-05-12
### Major Enhancements
+
* Add `jekyll doctor` command to check site for any known compatibility problems (#1081)
* Backwards-compatibilize relative permalinks (#1081)
### Minor Enhancements
+
* Add a `data-lang=""` attribute to Redcarpet code blocks (#1066)
* Deprecate old config `server_port`, match to `port` if `port` isn't set (#1084)
* Update pygments.rb version to 0.5.0 (#1061)
* Update Kramdown version to 1.0.2 (#1067)
### Bug Fixes
+
* Fix issue when categories are numbers (#1078)
* Catching that Redcarpet gem isn't installed (#1059)
### Site Enhancements
+
* Add documentation about `relative_permalinks` (#1081)
* Remove pygments-installation instructions, as pygments.rb is bundled with it (#1079)
* Move pages to be Pages for realz (#985)
@@ -1448,29 +1431,34 @@
## 1.0.1 / 2013-05-08
### Minor Enhancements
+
* Do not force use of `toc_token` when using `generate_tok` in RDiscount (#1048)
* Add newer `language-` class name prefix to code blocks (#1037)
* Commander error message now preferred over process abort with incorrect args (#1040)
### Bug Fixes
+
* Make Redcarpet respect the pygments configuration option (#1053)
* Fix the index build with LSI (#1045)
* Don't print deprecation warning when no arguments are specified. (#1041)
* Add missing `` to site template used by `new` subcommand, fixed typos in code (#1032)
### Site Enhancements
+
* Changed https to http in the GitHub Pages link (#1051)
* Remove CSS cruft, fix typos, fix HTML errors (#1028)
* Removing manual install of Pip and Distribute (#1025)
* Updated URL for Markdown references plugin (#1022)
### Development Fixes
+
* Markdownify history file (#1027)
* Update links on README to point to new jekyllrb.com (#1018)
## 1.0.0 / 2013-05-06
### Major Enhancements
+
* Add `jekyll new` subcommand: generate a Jekyll scaffold (#764)
* Refactored Jekyll commands into subcommands: build, serve, and migrate. (#690)
* Removed importers/migrators from main project, migrated to jekyll-import sub-gem (#793)
@@ -1478,6 +1466,7 @@
* Add ordinal date permalink style (/:categories/:year/:y_day/:title.html) (#928)
### Minor Enhancements
+
* Site template HTML5-ified (#964)
* Use post's directory path when matching for the `post_url` tag (#998)
* Loosen dependency on Pygments so it's only required when it's needed (#1015)
@@ -1517,8 +1506,7 @@
* Massively accelerate LSI performance (#664)
* Truncate post slugs when importing from Tumblr (#496)
* Add glob support to include, exclude option (#743)
- * Layout of Page or Post defaults to 'page' or 'post', respectively (#580)
- REPEALED by (#977)
+ * Layout of Page or Post defaults to 'page' or 'post', respectively (#580) REPEALED by (#977)
* "Keep files" feature (#685)
* Output full path & name for files that don't parse (#745)
* Add source and destination directory protection (#535)
@@ -1544,14 +1532,14 @@
* Fixed Page#dir and Page#url for edge cases (#536)
* Fix broken `post_url` with posts with a time in their YAML front matter (#831)
* Look for plugins under the source directory (#654)
- * Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long
- post names (#775)
+ * Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long post names (#775)
* Force Categories to be Strings (#767)
* Safe YAML plugin to prevent vulnerability (#777)
* Add SVG support to Jekyll/WEBrick. (#407, #406)
* Prevent custom destination from causing continuous regen on watch (#528, #820, #862)
### Site Enhancements
+
* Responsify (#860)
* Fix spelling, punctuation and phrasal errors (#989)
* Update quickstart instructions with `new` command (#966)
@@ -1562,20 +1550,20 @@
* Redesigned site (#583)
### Development Fixes
+
* Exclude Cucumber 1.2.4, which causes tests to fail in 1.9.2 (#938)
- * Added "features:html" rake task for debugging purposes, cleaned up
- Cucumber profiles (#832)
+ * Added "features:html" rake task for debugging purposes, cleaned up Cucumber profiles (#832)
* Explicitly require HTTPS rubygems source in Gemfile (#826)
* Changed Ruby version for development to 1.9.3-p374 from p362 (#801)
* Including a link to the GitHub Ruby style guide in CONTRIBUTING.md (#806)
* Added script/bootstrap (#776)
- * Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version
- of greater than 1.9 (#771)
+ * Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version of greater than 1.9 (#771)
* Switch to Simplecov for coverage report (#765)
## 0.12.1 / 2013-02-19
### Minor Enhancements
+
* Update Kramdown version to 0.14.1 (#744)
* Test Enhancements
* Update Rake version to 10.0.3 (#744)
@@ -1585,6 +1573,7 @@
## 0.12.0 / 2012-12-22
### Minor Enhancements
+
* Add ability to explicitly specify included files (#261)
* Add `--default-mimetype` option (#279)
* Allow setting of RedCloth options (#284)
@@ -1604,10 +1593,12 @@
* Ensure front matter is at start of file (#562)
## 0.11.2 / 2011-12-27
+
* Bug Fixes
* Fix gemspec
## 0.11.1 / 2011-12-27
+
* Bug Fixes
* Fix extra blank line in highlight blocks (#409)
* Update dependencies
@@ -1615,12 +1606,14 @@
## 0.11.0 / 2011-07-10
### Major Enhancements
+
* Add command line importer functionality (#253)
* Add Redcarpet Markdown support (#318)
* Make markdown/textile extensions configurable (#312)
* Add `markdownify` filter
### Minor Enhancements
+
* Switch to Albino gem
* Bundler support
* Use English library to avoid hoops (#292)
@@ -1634,12 +1627,14 @@
* Secure additional path exploits
## 0.10.0 / 2010-12-16
+
* Bug Fixes
* Add `--no-server` option.
## 0.9.0 / 2010-12-15
### Minor Enhancements
+
* Use OptionParser's `[no-]` functionality for better boolean parsing.
* Add Drupal migrator (#245)
* Complain about YAML and Liquid errors (#249)
@@ -1649,6 +1644,7 @@
## 0.8.0 / 2010-11-22
### Minor Enhancements
+
* Add wordpress.com importer (#207)
* Add `--limit-posts` cli option (#212)
* Add `uri_escape` filter (#234)
@@ -1663,12 +1659,14 @@
## 0.7.0 / 2010-08-24
### Minor Enhancements
+
* Add support for rdiscount extensions (#173)
* Bug Fixes
* Highlight should not be able to render local files
* The site configuration may not always provide a 'time' setting (#184)
## 0.6.2 / 2010-06-25
+
* Bug Fixes
* Fix Rakefile 'release' task (tag pushing was missing origin)
* Ensure that RedCloth is loaded when textilize filter is used (#183)
@@ -1676,24 +1674,24 @@
* Fix `page.url` to include full relative path (#181)
## 0.6.1 / 2010-06-24
+
* Bug Fixes
* Fix Markdown Pygments prefix and suffix (#178)
## 0.6.0 / 2010-06-23
### Major Enhancements
+
* Proper plugin system (#19, #100)
* Add safe mode so unsafe converters/generators can be added
- * Maruku is now the only processor dependency installed by default.
- Other processors will be lazy-loaded when necessary (and prompt the
- user to install them when necessary) (#57)
+ * Maruku is now the only processor dependency installed by default. Other processors will be lazy-loaded when necessary (and prompt the user to install them when necessary) (#57)
### Minor Enhancements
+
* Inclusion/exclusion of future dated posts (#59)
* Generation for a specific time (#59)
* Allocate `site.time` on render not per site_payload invocation (#59)
- * Pages now present in the site payload and can be used through the
- `site.pages` and `site.html_pages` variables
+ * Pages now present in the site payload and can be used through the `site.pages` and `site.html_pages` variables
* Generate phase added to site#process and pagination is now a generator
* Switch to RakeGem for build/test process
* Only regenerate static files when they have changed (#142)
@@ -1710,87 +1708,80 @@
## 0.5.7 / 2010-01-12
### Minor Enhancements
+
* Allow overriding of post date in the front matter (#62, #38)
* Bug Fixes
* Categories isn't always an array (#73)
* Empty tags causes error in read_posts (#84)
* Fix pagination to adhere to read/render/write paradigm
* Test Enhancement
- * Cucumber features no longer use site.posts.first where a better
- alternative is available
+ * Cucumber features no longer use site.posts.first where a better alternative is available
## 0.5.6 / 2010-01-08
+
* Bug Fixes
* Require redcloth >= 4.2.1 in tests (#92)
* Don't break on triple dashes in yaml front matter (#93)
### Minor Enhancements
+
* Allow .mkd as markdown extension
* Use $stdout/err instead of constants (#99)
* Properly wrap code blocks (#91)
* Add javascript mime type for webrick (#98)
## 0.5.5 / 2010-01-08
+
* Bug Fixes
* Fix pagination % 0 bug (#78)
- * Ensure all posts are processed first (#71)
-
-## NOTE
- * After this point I will no longer be giving credit in the history;
- that is what the commit log is for.
+ * Ensure all posts are processed first (#71) ## NOTE
+ * After this point I will no longer be giving credit in the history; that is what the commit log is for.
## 0.5.4 / 2009-08-23
+
* Bug Fixes
* Do not allow symlinks (security vulnerability)
## 0.5.3 / 2009-07-14
+
* Bug Fixes
- * Solving the permalink bug where non-html files wouldn't work
- (@jeffrydegrande)
+ * Solving the permalink bug where non-html files wouldn't work (@jeffrydegrande)
## 0.5.2 / 2009-06-24
+
* Enhancements
- * Added --paginate option to the executable along with a paginator object
- for the payload (@calavera)
- * Upgraded RedCloth to 4.2.1, which makes `` tags work once
- again.
- * Configuration options set in config.yml are now available through the
- site payload (@vilcans)
- * Posts can now have an empty YAML front matter or none at all
- (@ bahuvrihi)
+ * Added --paginate option to the executable along with a paginator object for the payload (@calavera)
+ * Upgraded RedCloth to 4.2.1, which makes `` tags work once again.
+ * Configuration options set in config.yml are now available through the site payload (@vilcans)
+ * Posts can now have an empty YAML front matter or none at all (@ bahuvrihi)
* Bug Fixes
- * Fixing Ruby 1.9 issue that requires `#to_s` on the err object
- (@Chrononaut)
+ * Fixing Ruby 1.9 issue that requires `#to_s` on the err object (@Chrononaut)
* Fixes for pagination and ordering posts on the same day (@ujh)
- * Made pages respect permalinks style and permalinks in yml front matter
- (@eugenebolshakov)
- * Index.html file should always have index.html permalink
- (@eugenebolshakov)
- * Added trailing slash to pretty permalink style so Apache is happy
- (@eugenebolshakov)
- * Bad markdown processor in config fails sooner and with better message
- (@ gcnovus)
+ * Made pages respect permalinks style and permalinks in yml front matter (@eugenebolshakov)
+ * Index.html file should always have index.html permalink (@eugenebolshakov)
+ * Added trailing slash to pretty permalink style so Apache is happy (@eugenebolshakov)
+ * Bad markdown processor in config fails sooner and with better message (@ gcnovus)
* Allow CRLFs in yaml front matter (@juretta)
* Added Date#xmlschema for Ruby versions < 1.9
## 0.5.1 / 2009-05-06
### Major Enhancements
+
* Next/previous posts in site payload (@pantulis, @tomo)
* Permalink templating system
* Moved most of the README out to the GitHub wiki
- * Exclude option in configuration so specified files won't be brought over
- with generated site (@duritong)
+ * Exclude option in configuration so specified files won't be brought over with generated site (@duritong)
* Bug Fixes
* Making sure config.yaml references are all gone, using only config.yml
* Fixed syntax highlighting breaking for UTF-8 code (@henrik)
- * Worked around RDiscount bug that prevents Markdown from getting parsed
- after highlight (@henrik)
+ * Worked around RDiscount bug that prevents Markdown from getting parsed after highlight (@henrik)
* CGI escaped post titles (@Chrononaut)
## 0.5.0 / 2009-04-07
### Minor Enhancements
+
* Ability to set post categories via YAML (@qrush)
* Ability to set prevent a post from publishing via YAML (@qrush)
* Add textilize filter (@willcodeforfoo)
@@ -1810,6 +1801,7 @@
## 0.4.1
### Minor Enhancements
+
* Changed date format on wordpress converter (zeropadding) (@dysinger)
* Bug Fixes
* Add Jekyll binary as executable to gemspec (@dysinger)
@@ -1817,9 +1809,11 @@
## 0.4.0 / 2009-02-03
### Major Enhancements
+
* Switch to Jeweler for packaging tasks
### Minor Enhancements
+
* Type importer (@codeslinger)
* `site.topics` accessor (@baz)
* Add `array_to_sentence_string` filter (@mchung)
@@ -1838,55 +1832,62 @@
## 0.3.0 / 2008-12-24
### Major Enhancements
- * Added `--server` option to start a simple WEBrick server on destination
- directory (@johnreilly and @mchung)
+
+ * Added `--server` option to start a simple WEBrick server on destination directory (@johnreilly and @mchung)
### Minor Enhancements
+
* Added post categories based on directories containing `_posts` (@mreid)
* Added post topics based on directories underneath `_posts`
* Added new date filter that shows the full month name (@mreid)
* Merge Post's YAML front matter into its to_liquid payload (@remi)
* Restrict includes to regular files underneath `_includes`
* Bug Fixes
- * Change YAML delimiter matcher so as to not chew up 2nd level markdown
- headers (@mreid)
- * Fix bug that meant page data (such as the date) was not available in
- templates (@mreid)
+ * Change YAML delimiter matcher so as to not chew up 2nd level markdown headers (@mreid)
+ * Fix bug that meant page data (such as the date) was not available in templates (@mreid)
* Properly reject directories in `_layouts`
## 0.2.1 / 2008-12-15
+
* Major Changes
* Use Maruku (pure Ruby) for Markdown by default (@mreid)
* Allow use of RDiscount with `--rdiscount` flag
### Minor Enhancements
+
* Don't load directory_watcher unless it's needed (@pjhyett)
## 0.2.0 / 2008-12-14
+
* Major Changes
* related_posts is now found in `site.related_posts`
## 0.1.6 / 2008-12-13
+
* Major Features
* Include files in `_includes` with `{% include x.textile %}`
## 0.1.5 / 2008-12-12
### Major Enhancements
+
* Code highlighting with Pygments if `--pygments` is specified
* Disable true LSI by default, enable with `--lsi`
### Minor Enhancements
+
* Output informative message if RDiscount is not available (@JackDanger)
* Bug Fixes
* Prevent Jekyll from picking up the output directory as a source (@JackDanger)
* Skip `related_posts` when there is only one post (@JackDanger)
## 0.1.4 / 2008-12-08
+
* Bug Fixes
* DATA does not work properly with rubygems
## 0.1.3 / 2008-12-06
+
* Major Features
* Markdown support (@vanpelt)
* Mephisto and CSV converters (@vanpelt)
@@ -1896,21 +1897,24 @@
* Accept both `\r\n` and `\n` in YAML header (@vanpelt)
## 0.1.2 / 2008-11-22
+
* Major Features
* Add a real "related posts" implementation using Classifier
* Command Line Changes
- * Allow cli to be called with 0, 1, or 2 args intuiting dir paths
- if they are omitted
+ * Allow cli to be called with 0, 1, or 2 args intuiting dir paths if they are omitted
## 0.1.1 / 2008-11-22
+
* Minor Additions
* Posts now support introspectional data e.g. `{{ page.url }}`
## 0.1.0 / 2008-11-05
+
* First release
* Converts posts written in Textile
* Converts regular site pages
* Simple copy of binary files
## 0.0.0 / 2008-10-19
+
* Birthday!
From 6996fed26c7a02cfbb387fe43177466a8a7a89b1 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Thu, 7 Jan 2016 23:24:29 -0800
Subject: [PATCH 0234/4996] Update history to reflect merge of #4330 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 5b9898be7e5..d5dad194d33 100644
--- a/History.markdown
+++ b/History.markdown
@@ -69,6 +69,7 @@
* Add note about removal of relative permalink support in upgrading docs (#4303)
* Add Pro Tip to use front matter variable to create clean URLs (#4296)
* Fix grammar in the documentation for posts. (#4330)
+ * Fix grammar in the documentation for posts. (#4330)
## 3.0.1 / 2015-11-17
From bd325acc85efeebff4ee890affbfb91e6d2c4d2c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 7 Jan 2016 23:26:03 -0800
Subject: [PATCH 0235/4996] Remove duplicate reference for #4330 from History.
[ci skip]
---
History.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/History.markdown b/History.markdown
index d5dad194d33..5b9898be7e5 100644
--- a/History.markdown
+++ b/History.markdown
@@ -69,7 +69,6 @@
* Add note about removal of relative permalink support in upgrading docs (#4303)
* Add Pro Tip to use front matter variable to create clean URLs (#4296)
* Fix grammar in the documentation for posts. (#4330)
- * Fix grammar in the documentation for posts. (#4330)
## 3.0.1 / 2015-11-17
From ddf640e6bdeb0ae457faf50eacabab74f5c92183 Mon Sep 17 00:00:00 2001
From: Pat Hawks
Date: Fri, 8 Jan 2016 17:10:36 -0800
Subject: [PATCH 0236/4996] Test all the things
---
lib/jekyll/converters/smartypants.rb | 4 ++--
test/test_filters.rb | 29 +++++++++++++++++++++++++---
2 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/lib/jekyll/converters/smartypants.rb b/lib/jekyll/converters/smartypants.rb
index 7af9d297e9a..d1bc81039a1 100644
--- a/lib/jekyll/converters/smartypants.rb
+++ b/lib/jekyll/converters/smartypants.rb
@@ -1,8 +1,8 @@
class Kramdown::Parser::SmartyPants < Kramdown::Parser::Kramdown
def initialize(source, options)
super
- @block_parsers = []
- @span_parsers = [:smart_quotes, :html_entity, :typographic_syms, :escaped_chars]
+ @block_parsers = [:block_html]
+ @span_parsers = [:smart_quotes, :html_entity, :typographic_syms, :span_html]
end
end
diff --git a/test/test_filters.rb b/test/test_filters.rb
index 63e5267280d..d2d281c3978 100644
--- a/test/test_filters.rb
+++ b/test/test_filters.rb
@@ -31,9 +31,32 @@ def initialize(opts = {})
assert_equal "something really simple
\n", @filter.markdownify("something **really** simple")
end
- should "smartify with simple string" do
- assert_equal "SmartyPants is *not* Markdown", @filter.smartify("SmartyPants is *not* Markdown")
- assert_equal "“This filter’s test…”", @filter.smartify(%q{"This filter's test..."})
+ context "smartify filter" do
+ should "convert quotes and typographic characters" do
+ assert_equal "SmartyPants is *not* Markdown", @filter.smartify("SmartyPants is *not* Markdown")
+ assert_equal "“This filter’s test…”", @filter.smartify(%q{"This filter's test..."})
+ end
+
+ should "escapes special characters when configured to do so" do
+ kramdown = JekyllFilter.new({:kramdown => {:entity_output => :symbolic}})
+ assert_equal "“This filter’s test…”", kramdown.smartify(%q{"This filter's test..."})
+ end
+
+ should "convert HTML entities to unicode characters" do
+ assert_equal "’", @filter.smartify("’")
+ assert_equal "“", @filter.smartify("“")
+ end
+
+ should "allow raw HTML passthrough" do
+ assert_equal "Span HTML is not escaped", @filter.smartify("Span HTML is not escaped")
+ assert_equal "Block HTML is not escaped", @filter.smartify("Block HTML is not escaped")
+ end
+
+ should "escape special characters" do
+ assert_equal "3 < 4", @filter.smartify("3 < 4")
+ assert_equal "5 > 4", @filter.smartify("5 > 4")
+ assert_equal "This & that", @filter.smartify("This & that")
+ end
end
should "sassify with simple string" do
From 390503b2c7320f14e9e5bbb0f221e641f06a585d Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 9 Jan 2016 16:19:43 -0800
Subject: [PATCH 0237/4996] Update history to reflect merge of #4323 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 5b9898be7e5..5bdda7c605c 100644
--- a/History.markdown
+++ b/History.markdown
@@ -18,6 +18,7 @@
* drops: create one base Drop class which can be set as mutable or not (#4285)
* drops: provide `#to_h` to allow for hash introspection (#4281)
* Shim subcommands with indication of gem possibly required so users know how to use them (#4254)
+ * Add smartify Liquid filter for SmartyPants (#4323)
### Bug Fixes
From 428e4fe3b5c47c4afe45734e666d1c45cd8f936f Mon Sep 17 00:00:00 2001
From: Pat Hawks
Date: Sat, 9 Jan 2016 16:46:27 -0800
Subject: [PATCH 0238/4996] Add documentation for smartify Liquid filter
---
site/_docs/templates.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/site/_docs/templates.md b/site/_docs/templates.md
index fd42b6b1625..0ebd35f8731 100644
--- a/site/_docs/templates.md
+++ b/site/_docs/templates.md
@@ -186,6 +186,17 @@ common tasks easier.
+
+
+ Smartify
+ Convert "quotes" into “smart quotes.”
+
+
+
+ {% raw %}{{ page.title | smartify }}{% endraw %}
+
+
+
Converting Sass/SCSS
From e558d0b983acf6447981256cdd242a2e2c9c868b Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 9 Jan 2016 16:58:09 -0800
Subject: [PATCH 0239/4996] Update history to reflect merge of #4333 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 5bdda7c605c..03ba1bd5b6a 100644
--- a/History.markdown
+++ b/History.markdown
@@ -70,6 +70,7 @@
* Add note about removal of relative permalink support in upgrading docs (#4303)
* Add Pro Tip to use front matter variable to create clean URLs (#4296)
* Fix grammar in the documentation for posts. (#4330)
+ * Add documentation for smartify Liquid filter (#4333)
## 3.0.1 / 2015-11-17
From bb4f5910c969843f67385088be72055aeeba8c90 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 9 Jan 2016 18:04:13 -0800
Subject: [PATCH 0240/4996] document: don't cache @output_ext
Fixes race issue.
Will introduce perf issues, though...
---
lib/jekyll/document.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index c3fff329e17..911cb4e6750 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -89,7 +89,7 @@ def relative_path
#
# Returns the output extension
def output_ext
- @output_ext ||= Jekyll::Renderer.new(site, self).output_ext
+ Jekyll::Renderer.new(site, self).output_ext
end
# The base filename of the document, without the file extname.
From 92ba22f8fe30dc9bbe53585f60586c77e7cc3e14 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 9 Jan 2016 18:11:48 -0800
Subject: [PATCH 0241/4996] Update history to reflect merge of #4314 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 03ba1bd5b6a..738185c5878 100644
--- a/History.markdown
+++ b/History.markdown
@@ -35,6 +35,7 @@
* Drop: fix hash setter precendence (#4312)
* utils: `has_yaml_header?` should accept files with extraneous spaces (#4290)
* Escape html from site.title and page.title in site template (#4307)
+ * Allow custom file extensions if defined in `permalink` YAML front matter (#4314)
### Development Fixes
From a8fa52a81630c288bb47cc875b19384ccf3c5dab Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 9 Jan 2016 21:56:28 -0600
Subject: [PATCH 0242/4996] Use newer Rubies.
---
.travis.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 560fbb3df86..7afed906ca6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,9 +3,10 @@ language: ruby
cache: bundler
sudo: false
rvm:
-- 2.2
-- 2.1
-- 2.0
+- 2.2.4
+- 2.1.8
+- 2.3.0
+- 2.0.0-p648
- ruby-head
- jruby-9.0.3.0
matrix:
From 070f07d971b7f83f60990610b3c1855ca07e37ce Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 9 Jan 2016 22:01:07 -0600
Subject: [PATCH 0243/4996] Test a theory and switch to Trusty beta.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 7afed906ca6..957cd3e094e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,5 @@
bundler_args: --without doc:util:site:benchmark:development
+dist: trusty
language: ruby
cache: bundler
sudo: false
From 36a42e5c7154ffa959d7b01197e294761baa9665 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 9 Jan 2016 22:08:00 -0600
Subject: [PATCH 0244/4996] Revert the experimental changes. They didn't work.
---
.travis.yml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 957cd3e094e..560fbb3df86 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,11 @@
bundler_args: --without doc:util:site:benchmark:development
-dist: trusty
language: ruby
cache: bundler
sudo: false
rvm:
-- 2.2.4
-- 2.1.8
-- 2.3.0
-- 2.0.0-p648
+- 2.2
+- 2.1
+- 2.0
- ruby-head
- jruby-9.0.3.0
matrix:
From 9d98aca86a4b8bc2db48e6a37b3e76fb3a2b3833 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 00:27:58 -0600
Subject: [PATCH 0245/4996] Revert "Reorganize and cleanup the Gemfile, shorten
required depends."
---
.travis.yml | 1 -
Gemfile | 96 +++++++++++++++++++++++++----------------------------
2 files changed, 46 insertions(+), 51 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 560fbb3df86..58980f41c2f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,3 @@
-bundler_args: --without doc:util:site:benchmark:development
language: ruby
cache: bundler
sudo: false
diff --git a/Gemfile b/Gemfile
index c694a089886..b253e8bf543 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,62 +1,58 @@
-source "https://rubygems.org"
-gemspec :name => :jekyll
+source 'https://rubygems.org'
+gemspec name: 'jekyll'
-gem "rake", "~> 10.1"
+gem 'rake', '~> 10.1'
group :development do
- unless ENV["CI"]
- gem "pry", :require => false
- gem "rubocop", {
- :github => "bbatsov/rubocop",
- :branch => :master, :require => false
- }
- end
-end
-
-group( :doc) { gem "rdoc", "~> 4.2" } # `--without doc`
-group(:util) { gem "launchy", "~> 2.3" } # `--without util`
-group(:site) { gem "html-proofer" } # `--without site`
-
-# `--without benchmark`
-group :benchmark do
- gem "rbtrace"
- gem "ruby-prof"
- gem "benchmark-ips"
- gem "stackprof"
+ gem 'rdoc', '~> 4.2'
+ gem 'launchy', '~> 2.3'
+ gem 'toml', '~> 0.1.0'
+ gem "rubocop"
+ gem 'pry'
end
group :test do
- gem "redgreen", "~> 1.2"
- gem "shoulda", "~> 3.5"
- gem "cucumber", "~> 2.1"
- gem "simplecov", "~> 0.9"
- gem "jekyll_test_plugin"
- gem "jekyll_test_plugin_malicious"
- gem "minitest-reporters"
- gem "minitest-profile"
- gem "rspec-mocks"
- gem "minitest"
- gem "nokogiri"
+ gem 'redgreen', '~> 1.2'
+ gem 'shoulda', '~> 3.5'
+ gem 'cucumber', '~> 2.1'
+ gem 'simplecov', '~> 0.9'
+ gem 'jekyll_test_plugin'
+ gem 'jekyll_test_plugin_malicious'
+ gem 'minitest-reporters'
+ gem 'minitest-profile'
+ gem 'rspec-mocks'
+ gem 'minitest'
+ gem 'nokogiri'
if RUBY_PLATFORM =~ /cygwin/ || RUBY_VERSION.start_with?("2.2")
- gem "test-unit"
+ gem 'test-unit'
end
-end
-group :optional_jekyll_dependencies do
- gem "toml", "~> 0.1.0"
- gem "jekyll-paginate", "~> 1.0"
- gem "jekyll-coffeescript", "~> 1.0"
- gem "jekyll-feed", "~> 0.1.3"
- gem "jekyll-redirect-from", "~> 0.9.1"
- gem "jekyll-gist", "~> 1.0"
- gem "mime-types", "~> 3.0"
- gem "kramdown", "~> 1.9"
+ if ENV['PROOF']
+ gem 'html-proofer', '~> 2.0'
+ end
+end
- platform :ruby, :mswin, :mingw do
- gem "rdiscount", "~> 2.0"
- gem "pygments.rb", "~> 0.6.0"
- gem "redcarpet", "~> 3.2", ">= 3.2.3"
- gem "classifier-reborn", "~> 2.0"
- gem "liquid-c", "~> 3.0"
+group :benchmark do
+ if ENV['BENCHMARK']
+ gem 'ruby-prof'
+ gem 'rbtrace'
+ gem 'stackprof'
+ gem 'benchmark-ips'
end
end
+
+gem 'jekyll-paginate', '~> 1.0'
+gem 'jekyll-coffeescript', '~> 1.0'
+gem 'jekyll-feed', '~> 0.1.3'
+gem 'jekyll-redirect-from', '~> 0.9.1'
+gem 'jekyll-gist', '~> 1.0'
+gem 'mime-types', '~> 3.0'
+gem 'kramdown', '~> 1.9'
+
+platform :ruby, :mswin, :mingw do
+ gem 'rdiscount', '~> 2.0'
+ gem 'pygments.rb', '~> 0.6.0'
+ gem 'redcarpet', '~> 3.2', '>= 3.2.3'
+ gem 'classifier-reborn', '~> 2.0'
+ gem 'liquid-c', '~> 3.0'
+end
From c3e6c04af517884d1a31ee67f981f9f3fa24fb46 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 10:32:29 -0600
Subject: [PATCH 0246/4996] Ignore site/**/* on CodeClimate.
---
.codeclimate.yml | 1 +
.rubocop.yml | 39 ++++++++++++++++++++-------------------
2 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/.codeclimate.yml b/.codeclimate.yml
index 27b8728d48d..9a8cac63009 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -17,6 +17,7 @@ exclude_paths:
- COPYING
- LICENSE
+- site/**/*
- test/**/*
- vendor/**/*
- features/**/*
diff --git a/.rubocop.yml b/.rubocop.yml
index aa9f765f279..31c2df3d4a8 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -53,26 +53,27 @@ Style/SingleLineMethods: { Enabled: false }
AllCops:
TargetRubyVersion: 2.0
Include:
- - lib/**/*.rb
+ - lib/**/*.rb
Exclude:
- - .rubocop.yml
- - .codeclimate.yml
- - .travis.yml
- - .gitignore
- - .rspec
+ - .rubocop.yml
+ - .codeclimate.yml
+ - .travis.yml
+ - .gitignore
+ - .rspec
- - Gemfile.lock
- - CHANGELOG.md
- - readme.md
- - README.md
- - Readme.md
- - ReadMe.md
- - COPYING
- - LICENSE
+ - Gemfile.lock
+ - CHANGELOG.md
+ - readme.md
+ - README.md
+ - Readme.md
+ - ReadMe.md
+ - COPYING
+ - LICENSE
- - test/**/*
- - vendor/**/*
- - features/**/*
- - script/**/*
- - spec/**/*
+ - site/**/*
+ - test/**/*
+ - vendor/**/*
+ - features/**/*
+ - script/**/*
+ - spec/**/*
From 88b970f5dca089d2db207706217d2749cd43c798 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 10:45:52 -0600
Subject: [PATCH 0247/4996] Expand the file extensions we ignore.
---
.codeclimate.yml | 11 ++++++-----
.rubocop.yml | 11 ++++++-----
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/.codeclimate.yml b/.codeclimate.yml
index 9a8cac63009..6e860b7523b 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -9,11 +9,12 @@ exclude_paths:
- .rspec
- Gemfile.lock
-- CHANGELOG.md
-- readme.md
-- README.md
-- Readme.md
-- ReadMe.md
+- CHANGELOG.{md,markdown,txt,textile}
+- CONTRIBUTING.{md,markdown,txt,textile}
+- readme.{md,markdown,txt,textile}
+- README.{md,markdown,txt,textile}
+- Readme.{md,markdown,txt,textile}
+- ReadMe.{md,markdown,txt,textile}
- COPYING
- LICENSE
diff --git a/.rubocop.yml b/.rubocop.yml
index 31c2df3d4a8..1f0ffeb231d 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -63,11 +63,12 @@ AllCops:
- .rspec
- Gemfile.lock
- - CHANGELOG.md
- - readme.md
- - README.md
- - Readme.md
- - ReadMe.md
+ - CHANGELOG.{md,markdown,txt,textile}
+ - CONTRIBUTING.{md,markdown,txt,textile}
+ - readme.{md,markdown,txt,textile}
+ - README.{md,markdown,txt,textile}
+ - Readme.{md,markdown,txt,textile}
+ - ReadMe.{md,markdown,txt,textile}
- COPYING
- LICENSE
From dc6858504a927513dc2baef5899e812c4d921c2c Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 11:02:47 -0600
Subject: [PATCH 0248/4996] Make .travis.yml a bit more readable.
---
.travis.yml | 43 ++++++++++++++++++++++++-------------------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 58980f41c2f..0fa982a1ca9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,41 +1,46 @@
-language: ruby
cache: bundler
+script: script/cibuild
+before_script: bundle update
+language: ruby
sudo: false
+
rvm:
- 2.2
- 2.1
- 2.0
-- ruby-head
- jruby-9.0.3.0
+- ruby-head
+
matrix:
fast_finish: true
allow_failures:
- - rvm: ruby-head
- rvm: jruby-9.0.3.0
+ - rvm: ruby-head
exclude:
- - rvm: jruby-9.0.3.0
- env: TEST_SUITE=cucumber
+ - rvm: jruby-9.0.3.0
+ env: TEST_SUITE=cucumber
+
env:
matrix:
- - TEST_SUITE=test
- - TEST_SUITE=cucumber
+ - TEST_SUITE=test
+ - TEST_SUITE=cucumber
+
branches:
only:
- - master
-before_script: bundle update
-script: script/cibuild
+ - master
+
notifications:
irc:
- on_success: change
- on_failure: change
- channels:
- - irc.freenode.org#jekyll
- template:
- - "%{repository}#%{build_number} (%{branch}) %{message} %{build_url}"
+ template: "%{repository}#%{build_number} (%{branch}) %{message} %{build_url}"
+ channels: irc.freenode.org#jekyll
+
email:
recipients:
- jordon@envygeeks.io
- on_success: never
- on_failure: always
+
slack:
- secure: dNdKk6nahNURIUbO3ULhA09/vTEQjK0fNbgjVjeYPEvROHgQBP1cIP3AJy8aWs8rl5Yyow4YGEilNRzKPz18AsFptVXofpwyqcBxaCfmHP809NX5PHBaadydveLm+TNVao2XeLXSWu+HUNAYO1AanCUbJSEyJTju347xCBGzESU=
+ secure: "\
+ dNdKk6nahNURIUbO3ULhA09/vTEQjK0fNbgjVjeYPEvROHgQBP1cIP3AJy8aWs8rl5Yyow4Y\
+ GEilNRzKPz18AsFptVXofpwyqcBxaCfmHP809NX5PHBaadydveLm+TNVao2XeLXSWu+HUNAY\
+ O1AanCUbJSEyJTju347xCBGzESU=\
+ "
From 86ed09ffddb182c5be3551e5032d21974c606c72 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 11:04:53 -0600
Subject: [PATCH 0249/4996] Enable CodeClimate coverage.
---
.travis.yml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 0fa982a1ca9..7777656d6bd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -44,3 +44,12 @@ notifications:
GEilNRzKPz18AsFptVXofpwyqcBxaCfmHP809NX5PHBaadydveLm+TNVao2XeLXSWu+HUNAY\
O1AanCUbJSEyJTju347xCBGzESU=\
"
+
+addons:
+ code_climate:
+ repo_token:
+ secure: "\
+ mAuvDu+nrzB8dOaLqsublDGt423mGRyZYM3vsrXh4Tf1sT+L1PxsRzU4gLmcV27HtX2Oq9\
+ DA4vsRURfABU0fIhwYkQuZqEcA3d8TL36BZcGEshG6MQ2AmnYsmFiTcxqV5bmlElHEqQuT\
+ 5SUFXLafgZPBnL0qDwujQcHukID41sE=\
+ "
From 8669077daf769099ff6c6c9b31676424f0564732 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 11:07:00 -0600
Subject: [PATCH 0250/4996] Add coverage badge.
---
README.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.markdown b/README.markdown
index d8c621d1910..9ee529f357d 100644
--- a/README.markdown
+++ b/README.markdown
@@ -3,6 +3,7 @@
[](https://rubygems.org/gems/jekyll)
[](https://travis-ci.org/jekyll/jekyll)
[](https://codeclimate.com/github/jekyll/jekyll)
+[](https://codeclimate.com/github/jekyll/jekyll/coverage)
[](https://gemnasium.com/jekyll/jekyll)
[](https://hakiri.io/github/jekyll/jekyll/master)
From 8337da89780e51dd0ae35a48324593d6f8c26426 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 11:13:14 -0600
Subject: [PATCH 0251/4996] Remove script/rebund.
---
script/rebund | 140 --------------------------------------------------
1 file changed, 140 deletions(-)
delete mode 100755 script/rebund
diff --git a/script/rebund b/script/rebund
deleted file mode 100755
index d2ff79016cb..00000000000
--- a/script/rebund
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env bash
-#
-# rebund(1)
-#
-# Author: Julien Letessier
-# Homepage: https://github.com/mezis/rebund
-# License:
-#
-# Copyright (c) 2014 HouseTrip Ltd
-#
-# MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-# Configuration
-: ${REBUND_CREDENTIALS:=user:secret}
-: ${REBUND_ENDPOINT=http://keyfile-production.herokuapp.com}
-: ${REBUND_TARBALL:=bundle.tbz}
-: ${REBUND_BUNDLE_DIR:=vendor/bundle}
-
-
-
-log() {
- echo "rebund: $*" > /dev/stderr
-}
-
-die() {
- echo "fatal: $*" > /dev/stderr
- exit 1
-}
-
-success() {
- log "$*"
- exit 0
-}
-
-on_error() {
- die 'unknown error.'
-}
-
-get_ruby_version() {
- bundle exec ruby --version
-}
-
-get_gemfile() {
- bundle exec sh -c 'echo $BUNDLE_GEMFILE'
-}
-
-calculate_hash() {
- (get_ruby_version ; cat $(get_gemfile)) | openssl sha256 | sed -e 's/.* //'
-}
-
-build_tarball() {
- test -e $REBUND_BUNDLE_DIR || die "cannot find bundle directory in ${REBUND_BUNDLE_DIR}"
- test -e $REBUND_TARBALL && success 'bundle already uploaded'
- tar jcf $REBUND_TARBALL $REBUND_BUNDLE_DIR
-}
-
-upload_tarball() {
- curl --fail \
- -F filedata=@${REBUND_TARBALL} \
- --digest --user $REBUND_CREDENTIALS \
- ${REBUND_ENDPOINT}/$(calculate_hash) \
- || success "could not upload bundle"
-}
-
-expand_tarball() {
- test -e $REBUND_TARBALL || success "no tarball"
- tar jxf $REBUND_TARBALL
-}
-
-download_tarball() {
- curl --fail \
- --location \
- -o ${REBUND_TARBALL} \
- --digest --user $REBUND_CREDENTIALS \
- ${REBUND_ENDPOINT}/$(calculate_hash) \
- || success "could not download bundle"
-}
-
-rebund_upload() {
- build_tarball
- upload_tarball
-}
-
-rebund_download() {
- download_tarball
- expand_tarball
-}
-
-rebund_usage() {
- success "usage: $0 [-v] [upload|download]"
-}
-
-# cath errors
-trap on_error ERR
-
-# inherit the ERR trap in subprocesses
-set -E
-
-while test $# -gt 0 ; do
- case $1 in
- -v)
- set -x
- ;;
- upload)
- rebund_upload
- exit 0
- ;;
- download)
- rebund_download
- exit 0
- ;;
- *)
- rebund_usage
- exit 1
- ;;
- esac
- shift
-done
-
-rebund_usage
From 55423e344ea8249366ae94312a6815510f78cbcc Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 11:18:46 -0600
Subject: [PATCH 0252/4996] Add CodeClimate to the testing stuff.
---
Gemfile | 1 +
test/helper.rb | 11 +++++++----
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/Gemfile b/Gemfile
index b253e8bf543..04bd73bdb66 100644
--- a/Gemfile
+++ b/Gemfile
@@ -17,6 +17,7 @@ group :test do
gem 'simplecov', '~> 0.9'
gem 'jekyll_test_plugin'
gem 'jekyll_test_plugin_malicious'
+ gem "codeclimate-test-reporter"
gem 'minitest-reporters'
gem 'minitest-profile'
gem 'rspec-mocks'
diff --git a/test/helper.rb b/test/helper.rb
index 281f68715f6..32363369e7e 100644
--- a/test/helper.rb
+++ b/test/helper.rb
@@ -2,11 +2,14 @@ def jruby?
defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
end
-unless ENV['TRAVIS']
- require File.expand_path('../simplecov_custom_profile', __FILE__)
- SimpleCov.start('gem') do
- add_filter "/vendor/bundle"
+if ENV["CI"]
+ require "codeclimate-test-reporter"
+ CodeClimate::TestReporter.start
+else
+ require File.expand_path("../simplecov_custom_profile", __FILE__)
+ SimpleCov.start "gem" do
add_filter "/vendor/gem"
+ add_filter "/vendor/bundle"
add_filter ".bundle"
end
end
From 1aae802ea2d35c6cf1348a990e0cbfa62c681a49 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 11:10:10 -0800
Subject: [PATCH 0253/4996] Update history to reflect merge of #4341 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 738185c5878..3259f842034 100644
--- a/History.markdown
+++ b/History.markdown
@@ -48,6 +48,7 @@
* Fix many Rubocop style errors (#4301)
* Fix spelling of "GitHub" in docs and history (#4322)
* Reorganize and cleanup the Gemfile, shorten required depends. (#4318)
+ * Remove script/rebund. (#4341)
### Site Enhancements
From b96b0a80eac061a61dbb24939d6db94c44489e4c Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 11:11:19 -0800
Subject: [PATCH 0254/4996] Update history to reflect merge of #4340 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 3259f842034..5ed950eaf73 100644
--- a/History.markdown
+++ b/History.markdown
@@ -49,6 +49,7 @@
* Fix spelling of "GitHub" in docs and history (#4322)
* Reorganize and cleanup the Gemfile, shorten required depends. (#4318)
* Remove script/rebund. (#4341)
+ * Implement codeclimate platform (#4340)
### Site Enhancements
From 70f741b86fafba6c35faf354d268b63e10d5e037 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 9 Jan 2016 05:28:06 -0600
Subject: [PATCH 0255/4996] Remove ObectSpace dumping and start using
inherited, it's faster.
---
lib/jekyll/generator.rb | 3 +--
lib/jekyll/plugin.rb | 43 +++++++++++++++++++++++++++++------------
lib/jekyll/site.rb | 22 +++++++++------------
3 files changed, 41 insertions(+), 27 deletions(-)
diff --git a/lib/jekyll/generator.rb b/lib/jekyll/generator.rb
index 57973a74eb9..bf7c0f19aba 100644
--- a/lib/jekyll/generator.rb
+++ b/lib/jekyll/generator.rb
@@ -1,4 +1,3 @@
module Jekyll
- class Generator < Plugin
- end
+ Generator = Class.new(Plugin)
end
diff --git a/lib/jekyll/plugin.rb b/lib/jekyll/plugin.rb
index 0207314c8af..e2a95168b9c 100644
--- a/lib/jekyll/plugin.rb
+++ b/lib/jekyll/plugin.rb
@@ -1,20 +1,39 @@
module Jekyll
class Plugin
- PRIORITIES = { :lowest => -100,
- :low => -10,
- :normal => 0,
- :high => 10,
- :highest => 100 }
+ PRIORITIES = {
+ :low => -10,
+ :highest => 100,
+ :lowest => -100,
+ :normal => 0,
+ :high => 10
+ }
- # Fetch all the subclasses of this class and its subclasses' subclasses.
#
- # Returns an array of descendant classes.
- def self.descendants
- descendants = []
- ObjectSpace.each_object(singleton_class) do |k|
- descendants.unshift k unless k == self
+
+ def self.inherited(const)
+ return catch_inheritance(const) do |const_|
+ catch_inheritance(const_)
+ end
+ end
+
+ #
+
+ def self.catch_inheritance(const)
+ const.define_singleton_method :inherited do |const_|
+ (@children ||= Set.new).add const_
+ if block_given?
+ yield const_
+ end
end
- descendants
+ end
+
+ #
+
+ def self.descendants
+ @children ||= Set.new
+ out = @children.map(&:descendants)
+ out << self unless superclass == Plugin
+ Set.new(out).flatten
end
# Get or set the priority of this plugin. When called without an
diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb
index fcd4bf778c8..465e154e892 100644
--- a/lib/jekyll/site.rb
+++ b/lib/jekyll/site.rb
@@ -263,25 +263,21 @@ def site_payload
end
# Get the implementation class for the given Converter.
- #
- # klass - The Class of the Converter to fetch.
- #
# Returns the Converter instance implementing the given Converter.
+ # klass - The Class of the Converter to fetch.
+
def find_converter_instance(klass)
- converters.find { |c| c.class == klass } || proc { raise "No converter for #{klass}" }.call
+ converters.find { |klass_| klass_.instance_of?(klass) } || \
+ raise("No Converters found for #{klass}")
end
+ # klass - class or module containing the subclasses.
+ # Returns array of instances of subclasses of parameter.
# Create array of instances of the subclasses of the class or module
- # passed in as argument.
- #
- # klass - class or module containing the subclasses which should be
- # instantiated
- #
- # Returns array of instances of subclasses of parameter
+ # passed in as argument.
+
def instantiate_subclasses(klass)
- klass.descendants.select do |c|
- !safe || c.safe
- end.sort.map do |c|
+ klass.descendants.select { |c| !safe || c.safe }.sort.map do |c|
c.new(config)
end
end
From 3c9f159fb8937641541caa27e65b95251e0aa2be Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 14:28:28 -0600
Subject: [PATCH 0256/4996] Move Cucumber to using RSpec-Expections and
furthering JRuby support.
* Removes posix-spawn in favor of Open3#popen3
* Encapsulates all the paths into a single easy class.
* Moves to %r{} to avoid ambiguious warnings per-Cucumber suggestion.
* Starts passing around Pathname to make some actions faster.
* Clean's up some methods to make them easier to read.
* AUTOMATIC: Add "#" between each method.
---
.travis.yml | 4 -
Gemfile | 1 +
features/step_definitions/jekyll_steps.rb | 281 +++++++++++-----------
features/support/env.rb | 151 +++++++-----
4 files changed, 239 insertions(+), 198 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 7777656d6bd..4bba7a8dca9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,10 +16,6 @@ matrix:
allow_failures:
- rvm: jruby-9.0.3.0
- rvm: ruby-head
- exclude:
- - rvm: jruby-9.0.3.0
- env: TEST_SUITE=cucumber
-
env:
matrix:
- TEST_SUITE=test
diff --git a/Gemfile b/Gemfile
index 04bd73bdb66..2c0d7e8a598 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,6 +11,7 @@ group :development do
end
group :test do
+ gem 'rspec-expectations'
gem 'redgreen', '~> 1.2'
gem 'shoulda', '~> 3.5'
gem 'cucumber', '~> 2.1'
diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb
index c9ae0567b2f..64213ea4e27 100644
--- a/features/step_definitions/jekyll_steps.rb
+++ b/features/step_definitions/jekyll_steps.rb
@@ -1,131 +1,115 @@
-def file_content_from_hash(input_hash)
- matter_hash = input_hash.reject { |k, v| k == "content" }
- matter = matter_hash.map { |k, v| "#{k}: #{v}\n" }.join.chomp
-
- content = if input_hash['input'] && input_hash['filter']
- "{{ #{input_hash['input']} | #{input_hash['filter']} }}"
- else
- input_hash['content']
- end
-
- <<-EOF
----
-#{matter}
----
-#{content}
-EOF
-end
-
Before do
- FileUtils.mkdir_p(TEST_DIR) unless File.exist?(TEST_DIR)
- Dir.chdir(TEST_DIR)
+ FileUtils.mkdir_p(Paths.test_dir) unless Paths.test_dir.directory?
+ Dir.chdir(Paths.test_dir)
end
+#
+
After do
- FileUtils.rm_rf(TEST_DIR) if File.exist?(TEST_DIR)
- FileUtils.rm(JEKYLL_COMMAND_OUTPUT_FILE) if File.exist?(JEKYLL_COMMAND_OUTPUT_FILE)
- FileUtils.rm(JEKYLL_COMMAND_STATUS_FILE) if File.exist?(JEKYLL_COMMAND_STATUS_FILE)
- Dir.chdir(File.dirname(TEST_DIR))
+ Paths.test_dir.rmtree if Paths.test_dir.exist?
+ Paths.output_file.delete if Paths.output_file.exist?
+ Paths.status_file.delete if Paths.status_file.exist?
+ Dir.chdir(Paths.test_dir.parent)
end
-World do
- MinitestWorld.new
+#
+
+Given %r{^I have a blank site in "(.*)"$} do |path|
+ if !File.exist?(path)
+ then FileUtils.mkdir_p(path)
+ end
end
-Given /^I have a blank site in "(.*)"$/ do |path|
- FileUtils.mkdir_p(path) unless File.exist?(path)
+#
+
+Given %r{^I do not have a "(.*)" directory$} do |path|
+ Paths.test_dir.join(path).directory?
end
-Given /^I do not have a "(.*)" directory$/ do |path|
- File.directory?("#{TEST_DIR}/#{path}")
+#
+
+Given %r{^I have an? "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$} do |file, key, value, text|
+ File.write(file, Jekyll::Utils.strip_heredoc(<<-DATA))
+ ---
+ #{key || 'layout'}: #{value || 'nil'}
+ ---
+
+ #{text}
+ DATA
end
-# Like "I have a foo file" but gives a yaml front matter so jekyll actually processes it
-Given /^I have an? "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text|
- File.open(file, 'w') do |f|
- f.write <<-EOF
----
-#{key || 'layout'}: #{value || 'nil'}
----
-#{text}
-EOF
- end
+#
+
+Given %r{^I have an? "(.*)" file that contains "(.*)"$} do |file, text|
+ File.write(file, text)
end
-Given /^I have an? "(.*)" file that contains "(.*)"$/ do |file, text|
- File.open(file, 'w') do |f|
- f.write(text)
- end
+#
+
+Given %r{^I have an? (.*) (layout|theme) that contains "(.*)"$} do |name, type, text|
+ folder = type == "layout" ? "_layouts" : "_theme"
+
+ destination_file = Pathname.new(File.join(folder, "#{name}.html"))
+ FileUtils.mkdir_p(destination_file.parent) unless destination_file.parent.directory?
+ File.write(destination_file, text)
end
-Given /^I have an? (.*) (layout|theme) that contains "(.*)"$/ do |name, type, text|
- folder = if type == 'layout'
- '_layouts'
- else
- '_theme'
- end
- destination_file = File.join(folder, name + '.html')
- destination_path = File.dirname(destination_file)
- unless File.exist?(destination_path)
- FileUtils.mkdir_p(destination_path)
- end
- File.open(destination_file, 'w') do |f|
- f.write(text)
- end
+#
+
+Given %r{^I have an? "(.*)" file with content:$} do |file, text|
+ File.write(file, text)
end
-Given /^I have an? "(.*)" file with content:$/ do |file, text|
- File.open(file, 'w') do |f|
- f.write(text)
+#
+
+Given %r{^I have an? (.*) directory$} do |dir|
+ if !File.directory?(dir)
+ then FileUtils.mkdir_p(dir)
end
end
-Given /^I have an? (.*) directory$/ do |dir|
- FileUtils.mkdir_p(dir)
-end
+#
-Given /^I have the following (draft|page|post)s?(?: (in|under) "([^"]+)")?:$/ do |status, direction, folder, table|
+Given %r{^I have the following (draft|page|post)s?(?: (in|under) "([^"]+)")?:$} do |status, direction, folder, table|
table.hashes.each do |input_hash|
- title = slug(input_hash['title'])
- ext = input_hash['type'] || 'markdown'
+ title = slug(input_hash["title"])
+ ext = input_hash["type"] || "markdown"
+ filename = filename = "#{title}.#{ext}" if %w(draft page).include?(status)
before, after = location(folder, direction)
+ dest_folder = "_drafts" if status == "draft"
+ dest_folder = "_posts" if status == "post"
+ dest_folder = "" if status == "page"
- case status
- when "draft"
- dest_folder = '_drafts'
- filename = "#{title}.#{ext}"
- when "page"
- dest_folder = ''
- filename = "#{title}.#{ext}"
- when "post"
+ if status == "post"
parsed_date = Time.xmlschema(input_hash['date']) rescue Time.parse(input_hash['date'])
- dest_folder = '_posts'
filename = "#{parsed_date.strftime('%Y-%m-%d')}-#{title}.#{ext}"
end
path = File.join(before, dest_folder, after, filename)
- File.open(path, 'w') do |f|
- f.write file_content_from_hash(input_hash)
- end
+ File.write(path, file_content_from_hash(input_hash))
end
end
-Given /^I have a configuration file with "(.*)" set to "(.*)"$/ do |key, value|
- File.open('_config.yml', 'w') do |f|
- f.write("#{key}: #{value}\n")
- end
+#
+
+Given %r{^I have a configuration file with "(.*)" set to "(.*)"$} do |key, value|
+ File.write("_config.yml", "#{key}: #{value}\n")
end
-Given /^I have a configuration file with:$/ do |table|
- File.open('_config.yml', 'w') do |f|
+#
+
+Given %r{^I have a configuration file with:$} do |table|
+ File.open("_config.yml", "w") do |f|
table.hashes.each do |row|
f.write("#{row["key"]}: #{row["value"]}\n")
end
end
end
-Given /^I have a configuration file with "([^\"]*)" set to:$/ do |key, table|
- File.open('_config.yml', 'w') do |f|
+#
+
+Given %r{^I have a configuration file with "([^\"]*)" set to:$} do |key, table|
+ File.open("_config.yml", "w") do |f|
f.write("#{key}:\n")
table.hashes.each do |row|
f.write("- #{row["value"]}\n")
@@ -133,102 +117,123 @@ def file_content_from_hash(input_hash)
end
end
-Given /^I have fixture collections$/ do
- FileUtils.cp_r File.join(JEKYLL_SOURCE_DIR, "test", "source", "_methods"), source_dir
+#
+
+Given %r{^I have fixture collections$} do
+ FileUtils.cp_r Paths.source_dir.join("test", "source", "_methods"), source_dir
end
-Given /^I wait (\d+) second(s?)$/ do |time, plural|
+#
+
+Given %r{^I wait (\d+) second(s?)$} do |time, plural|
sleep(time.to_f)
end
-##################
-#
-# Changing stuff
#
-##################
-When /^I run jekyll(.*)$/ do |args|
- status = run_jekyll(args)
- if args.include?("--verbose") || ENV['DEBUG']
+When %r{^I run jekyll(.*)$} do |args|
+ run_jekyll(args)
+ if args.include?("--verbose") || ENV["DEBUG"]
$stderr.puts "\n#{jekyll_run_output}\n"
end
end
-When /^I run bundle(.*)$/ do |args|
- status = run_bundle(args)
+#
+
+When %r{^I run bundle(.*)$} do |args|
+ run_bundle(args)
if args.include?("--verbose") || ENV['DEBUG']
$stderr.puts "\n#{jekyll_run_output}\n"
end
end
-When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
- File.open(file, 'a') do |f|
+#
+
+When %r{^I change "(.*)" to contain "(.*)"$} do |file, text|
+ File.open(file, "a") do |f|
f.write(text)
end
end
-When /^I delete the file "(.*)"$/ do |file|
+#
+
+When %r{^I delete the file "(.*)"$} do |file|
File.delete(file)
end
-##################
-#
-# Checking stuff
#
-##################
-Then /^the (.*) directory should +exist$/ do |dir|
- assert File.directory?(dir), "The directory \"#{dir}\" does not exist"
+Then %r{^the (.*) directory should +exist$} do |dir|
+ expect(Pathname.new(dir)).to exist
end
-Then /^the (.*) directory should not exist$/ do |dir|
- assert !File.directory?(dir), "The directory \"#{dir}\" exists"
+#
+
+Then %r{^the (.*) directory should not exist$} do |dir|
+ expect(Pathname.new(dir)).not_to exist
end
-Then /^I should see "(.*)" in "(.*)"$/ do |text, file|
- assert_match Regexp.new(text, Regexp::MULTILINE), file_contents(file)
+#
+Then %r{^I should see "(.*)" in "(.*)"$} do |text, file|
+ regexp = Regexp.new(text, Regexp::MULTILINE)
+ expect(file_contents(file)).to match regexp
end
-Then /^I should see exactly "(.*)" in "(.*)"$/ do |text, file|
- assert_equal text, file_contents(file).strip
+#
+
+Then %r{^I should see exactly "(.*)" in "(.*)"$} do |text, file|
+ expect(file_contents(file).strip).to eq text
end
-Then /^I should not see "(.*)" in "(.*)"$/ do |text, file|
- refute_match Regexp.new(text, Regexp::MULTILINE), file_contents(file)
+#
+
+Then %r{^I should not see "(.*)" in "(.*)"$} do |text, file|
+ regexp = Regexp.new(text, Regexp::MULTILINE)
+ expect(file_contents(file)).not_to match regexp
end
-Then /^I should see escaped "(.*)" in "(.*)"$/ do |text, file|
- assert_match Regexp.new(Regexp.escape(text)), file_contents(file)
+#
+
+Then %r{^I should see escaped "(.*)" in "(.*)"$} do |text, file|
+ regexp = Regexp.new(Regexp.escape(text))
+ expect(file_contents(file)).to match regexp
end
-Then /^the "(.*)" file should +exist$/ do |file|
- file_does_exist = File.file?(file)
- unless file_does_exist
- all_steps_to_path(file).each do |dir|
- STDERR.puts ""
- STDERR.puts "Dir #{dir}:"
- STDERR.puts Dir["#{dir}/**/*"]
- end
- end
- assert file_does_exist, "The file \"#{file}\" does not exist.\n"
+#
+
+Then %r{^the "(.*)" file should +exist$} do |file|
+ expect(Pathname.new(file)).to exist
end
-Then /^the "(.*)" file should not exist$/ do |file|
- assert !File.exist?(file), "The file \"#{file}\" exists"
+#
+
+Then %r{^the "(.*)" file should not exist$} do |file|
+ expect(Pathname.new(file)).to_not exist
end
-Then /^I should see today's time in "(.*)"$/ do |file|
- assert_match Regexp.new(seconds_agnostic_time(Time.now)), file_contents(file)
+#
+
+Then %r{^I should see today's time in "(.*)"$} do |file|
+ seconds = seconds_agnostic_time(Time.now)
+ expect(file_contents(file)).to match Regexp.new(seconds)
end
-Then /^I should see today's date in "(.*)"$/ do |file|
- assert_match Regexp.new(Date.today.to_s), file_contents(file)
+#
+
+Then %r{^I should see today's date in "(.*)"$} do |file|
+ regexp = Regexp.new(Date.today.to_s)
+ expect(file_contents(file)).to match regexp
end
-Then /^I should see "(.*)" in the build output$/ do |text|
- assert_match Regexp.new(text), jekyll_run_output
+#
+
+Then %r{^I should see "(.*)" in the build output$} do |text|
+ regexp = Regexp.new(text)
+ expect(jekyll_run_output).to match regexp
end
-Then /^I should get a non-zero exit(?:\-| )status$/ do
- assert jekyll_run_status > 0
+#
+
+Then %r{^I should get a non-zero exit(?:\-| )status$} do
+ expect(jekyll_run_status.to_i).to be > 0
end
diff --git a/features/support/env.rb b/features/support/env.rb
index 76a3e70702e..62892612fbb 100644
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -1,116 +1,155 @@
-require 'fileutils'
-require 'posix-spawn'
-require 'minitest/spec'
-require 'time'
+require "fileutils"
+require "jekyll/utils"
+require "open3"
+require "time"
+
+class Paths
+ SOURCE_DIR = Pathname.new(File.expand_path("../..", __dir__))
+ def self.test_dir; source_dir.join("tmp", "jekyll"); end
+ def self.output_file; test_dir.join("jekyll_output.txt"); end
+ def self.status_file; test_dir.join("jekyll_status.txt"); end
+ def self.jekyll_bin; source_dir.join("bin", "jekyll"); end
+ def self.source_dir; SOURCE_DIR; end
+end
+
+#
-class MinitestWorld
- extend Minitest::Assertions
- attr_accessor :assertions
+def file_content_from_hash(input_hash)
+ matter_hash = input_hash.reject { |k, v| k == "content" }
+ matter = matter_hash.map do |k, v| "#{k}: #{v}\n"
+ end
- def initialize
- self.assertions = 0
+ matter = matter.join.chomp
+ content = \
+ if !input_hash['input'] || !input_hash['filter']
+ then input_hash['content']
+ else "{{ #{input_hash['input']} | " \
+ "#{input_hash['filter']} }}"
end
+
+ Jekyll::Utils.strip_heredoc(<<-EOF)
+ ---
+ #{matter.gsub(
+ /\n/, "\n "
+ )}
+ ---
+ #{content}
+ EOF
end
-JEKYLL_SOURCE_DIR = File.dirname(File.dirname(File.dirname(__FILE__)))
-TEST_DIR = File.expand_path(File.join('..', '..', 'tmp', 'jekyll'), File.dirname(__FILE__))
-JEKYLL_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'jekyll'))
-JEKYLL_COMMAND_OUTPUT_FILE = File.join(File.dirname(TEST_DIR), 'jekyll_output.txt')
-JEKYLL_COMMAND_STATUS_FILE = File.join(File.dirname(TEST_DIR), 'jekyll_status.txt')
+#
def source_dir(*files)
- File.join(TEST_DIR, *files)
+ return Paths.test_dir(*files)
end
+#
+
def all_steps_to_path(path)
- source = Pathname.new(source_dir('_site')).expand_path
- dest = Pathname.new(path).expand_path
+ source = source_dir
+ dest = Pathname.new(path).expand_path
paths = []
+
dest.ascend do |f|
- break if f.eql? source
+ break if f == source
paths.unshift f.to_s
end
- paths
-end
-def jekyll_output_file
- JEKYLL_COMMAND_OUTPUT_FILE
+ paths
end
-def jekyll_status_file
- JEKYLL_COMMAND_STATUS_FILE
-end
+#
def jekyll_run_output
- File.read(jekyll_output_file) if File.file?(jekyll_output_file)
+ if Paths.output_file.file?
+ then return Paths.output_file.read
+ end
end
+#
+
def jekyll_run_status
- (File.read(jekyll_status_file) rescue 0).to_i
+ if Paths.status_file.file?
+ then return Paths.status_file.read
+ end
end
+#
+
def run_bundle(args)
- run_in_shell('bundle', *args.strip.split(' '))
+ run_in_shell("bundle", *args.strip.split(' '))
end
+#
+
def run_jekyll(args)
- child = run_in_shell(JEKYLL_PATH, *args.strip.split(' '), "--trace")
- child.status.exitstatus == 0
+ args = args.strip.split(" ") # Shellwords?
+ process = run_in_shell(Paths.jekyll_bin.to_s, *args, "--trace")
+ process.exitstatus == 0
end
-# -----------------------------------------------------------------------------
-# XXX: POSIX::Spawn::Child does not write output when the exit status is > 0
-# for example when doing [:out, :err] => [file, "w"] it will skip
-# writing the file entirely, we sould switch to Open.
-# -----------------------------------------------------------------------------
+#
def run_in_shell(*args)
- spawned = POSIX::Spawn::Child.new(*args)
- status = spawned.status.exitstatus
- File.write(JEKYLL_COMMAND_STATUS_FILE, status)
- File.open(JEKYLL_COMMAND_OUTPUT_FILE, "w+") do |file|
- status == 0 ? file.write(spawned.out) : file.write(spawned.err)
+ i, o, e, p = Open3.popen3(*args)
+ out = o.read.strip
+ err = e.read.strip
+
+ [i, o, e].each do |m|
+ m.close
end
- spawned
+ File.write(Paths.status_file, p.value.exitstatus)
+ File.write(Paths.output_file, out) if p.value.exitstatus == 0
+ File.write(Paths.output_file, err) if p.value.exitstatus != 0
+ p.value
end
-def slug(title)
- if title
- title.downcase.gsub(/[^\w]/, " ").strip.gsub(/\s+/, '-')
- else
- Time.now.strftime("%s%9N") # nanoseconds since the Epoch
+#
+
+def slug(title = nil)
+ if !title
+ then Time.now.strftime("%s%9N") # nanoseconds since the Epoch
+ else title.downcase.gsub(/[^\w]/, " ").strip.gsub(/\s+/, '-')
end
end
+#
+
def location(folder, direction)
if folder
- before = folder if direction == "in"
- after = folder if direction == "under"
+ before = folder if direction == "in"
+ after = folder if direction == "under"
end
- [before || '.', after || '.']
+
+ [before || '.',
+ after || '.']
end
+#
+
def file_contents(path)
- File.open(path) do |file|
- file.readlines.join # avoid differences with \n and \r\n line endings
- end
+ return Pathname.new(path).read
end
+#
+
def seconds_agnostic_datetime(datetime = Time.now)
date, time, zone = datetime.to_s.split(" ")
time = seconds_agnostic_time(time)
+
[
Regexp.escape(date),
"#{time}:\\d{2}",
Regexp.escape(zone)
- ].join("\\ ")
+ ] \
+ .join("\\ ")
end
+#
+
def seconds_agnostic_time(time)
- if time.is_a? Time
- time = time.strftime("%H:%M:%S")
- end
+ time = time.strftime("%H:%M:%S") if time.is_a?(Time)
hour, minutes, _ = time.split(":")
"#{hour}:#{minutes}"
end
From 1d385004805542cd6756c9793321e88289f48885 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 12:42:01 -0800
Subject: [PATCH 0257/4996] Update history to reflect merge of #4342 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 5ed950eaf73..6eb6233cbc0 100644
--- a/History.markdown
+++ b/History.markdown
@@ -50,6 +50,7 @@
* Reorganize and cleanup the Gemfile, shorten required depends. (#4318)
* Remove script/rebund. (#4341)
* Implement codeclimate platform (#4340)
+ * Remove ObectSpace dumping and start using inherited, it's faster. (#4342)
### Site Enhancements
From 9fee9d3d3b83077dfe2d26aec2d99bfae30f5990 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 10:30:21 -0600
Subject: [PATCH 0258/4996] Add script/travis so all people can play with
Travis-CI images.
---
script/travis | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100755 script/travis
diff --git a/script/travis b/script/travis
new file mode 100755
index 00000000000..826ffa767ca
--- /dev/null
+++ b/script/travis
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Usage: script/travis [ruby-version [file]]
+# Example: script/travis 2.0 test/failing_test.rb
+# Example: script/travis 2.3.0
+set -e
+
+mkdir -p vendor/docker
+docker rm -fv docker-travis > /dev/null 2>&1 || true
+docker run --volume=$(pwd):/home/travis/builds/jekyll/jekyll \
+ --workdir=/home/travis/builds/jekyll/jekyll \
+ --volume=$(pwd)/vendor/docker:/home/travis/builds/jekyll/jekyll/vendor/bundle \
+ --user=travis --name=docker-travis -dit quay.io/travisci/travis-ruby \
+ bash > /dev/null
+
+status=0
+if [ $# -eq 2 ]; then
+ docker exec -it docker-travis bash -ilc " \
+ rvm use --install --binary --fuzzy $1
+ bundle install --path vendor/bundle -j 256
+ script/test $2
+ " || status=$?
+
+elif [ $# -eq 1 ]; then
+ docker exec -it docker-travis bash -ilc " \
+ rvm use --install --binary --fuzzy $1
+ bundle install --path vendor/bundle -j 256
+ bundle exec rake
+ " || status=$?
+
+else
+ docker exec -it docker-travis \
+ bash -il || status=$?
+fi
+
+docker rm -fv docker-travis > /dev/null
+exit $status
From e8883750813331c83a29ce4348075e905fc2f9f8 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 12:49:31 -0800
Subject: [PATCH 0259/4996] Update history to reflect merge of #4338 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6eb6233cbc0..6ad35f61cac 100644
--- a/History.markdown
+++ b/History.markdown
@@ -51,6 +51,7 @@
* Remove script/rebund. (#4341)
* Implement codeclimate platform (#4340)
* Remove ObectSpace dumping and start using inherited, it's faster. (#4342)
+ * Add script/travis so all people can play with Travis-CI images. (#4338)
### Site Enhancements
From e19258801389642ae5f355f97d50810ab97471a1 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 10 Jan 2016 14:54:45 -0600
Subject: [PATCH 0260/4996] Cleanup .jrubyrc
* Remove invoked dynamic, it slows down Ruby.
* Remove ObjectSpace which slows down JRuby, we use inheritance now.
* Remove the compat version 9K is Ruby2 by default.
---
.jrubyrc | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.jrubyrc b/.jrubyrc
index c4f93701522..39aa437d81f 100644
--- a/.jrubyrc
+++ b/.jrubyrc
@@ -1,6 +1,3 @@
backtrace.mask=true
-compile.invokedynamic=true
-objectspace.enabled=true
backtrace.color=true
-compat.version=2.2
backtrace.style=mri
From 6048dcdba2e7bc650c317eaa7ddd52ce9590c5a3 Mon Sep 17 00:00:00 2001
From: Alex J Best
Date: Sun, 10 Jan 2016 22:01:46 +0000
Subject: [PATCH 0261/4996] Fixed broken link to blog on using mathjax with
jekyll
---
site/_docs/extras.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/extras.md b/site/_docs/extras.md
index b8b8bb72649..24bcafa148a 100644
--- a/site/_docs/extras.md
+++ b/site/_docs/extras.md
@@ -15,7 +15,7 @@ Kramdown comes with optional support for LaTeX to PNG rendering via [MathJax](ht
{% endhighlight %}
-For more information about getting started, check out [this excellent blog post](http://gastonsanchez.com/blog/opinion/2014/02/16/Mathjax-with-jekyll.html).
+For more information about getting started, check out [this excellent blog post](http://gastonsanchez.com/opinion/2014/02/16/Mathjax-with-jekyll/).
## Alternative Markdown Processors
From d58e38c1a7b6830003fd64250d2d0897091fc8c6 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 19:55:45 -0800
Subject: [PATCH 0262/4996] Update history to reflect merge of #4344 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6ad35f61cac..176c2d8d953 100644
--- a/History.markdown
+++ b/History.markdown
@@ -76,6 +76,7 @@
* Add Pro Tip to use front matter variable to create clean URLs (#4296)
* Fix grammar in the documentation for posts. (#4330)
* Add documentation for smartify Liquid filter (#4333)
+ * Fixed broken link to blog on using mathjax with jekyll (#4344)
## 3.0.1 / 2015-11-17
From 2f36e09db57fa727f8dea70d61b3300e2547a7bc Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sun, 10 Jan 2016 19:55:59 -0800
Subject: [PATCH 0263/4996] Update history to reflect merge of #4344 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 176c2d8d953..2411714ba1b 100644
--- a/History.markdown
+++ b/History.markdown
@@ -77,6 +77,7 @@
* Fix grammar in the documentation for posts. (#4330)
* Add documentation for smartify Liquid filter (#4333)
* Fixed broken link to blog on using mathjax with jekyll (#4344)
+ * Fixed broken link to blog on using mathjax with jekyll (#4344)
## 3.0.1 / 2015-11-17
From 00b9f9dd620d3ce75fdeefe98e3e7fe4ddca32a3 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 10 Jan 2016 19:57:02 -0800
Subject: [PATCH 0264/4996] Revert "Update history to reflect merge of #4344
[ci skip]"
This reverts commit 2f36e09db57fa727f8dea70d61b3300e2547a7bc.
---
History.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/History.markdown b/History.markdown
index 2411714ba1b..176c2d8d953 100644
--- a/History.markdown
+++ b/History.markdown
@@ -77,7 +77,6 @@
* Fix grammar in the documentation for posts. (#4330)
* Add documentation for smartify Liquid filter (#4333)
* Fixed broken link to blog on using mathjax with jekyll (#4344)
- * Fixed broken link to blog on using mathjax with jekyll (#4344)
## 3.0.1 / 2015-11-17
From 597021a81334f9b0fbd49c449e094e226cbbadd9 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 11 Jan 2016 08:56:49 -0800
Subject: [PATCH 0265/4996] Update history to reflect merge of #4343 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 176c2d8d953..7318a05fa08 100644
--- a/History.markdown
+++ b/History.markdown
@@ -52,6 +52,7 @@
* Implement codeclimate platform (#4340)
* Remove ObectSpace dumping and start using inherited, it's faster. (#4342)
* Add script/travis so all people can play with Travis-CI images. (#4338)
+ * Move Cucumber to using RSpec-Expections and furthering JRuby support. (#4343)
### Site Enhancements
From c5b8b3315f4cddda41f008cfe82ab3c03ac48fd3 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Mon, 11 Jan 2016 14:55:34 -0600
Subject: [PATCH 0266/4996] Rearrange Cucumber and add some flair.
* Move step_definitions/jekyll.rb to just step_definitions.rb
* Rename the formatter to Jekyll::Cucumber::Formatter, it's Jekyll's.
* Add some flair; switch to checks!
* Rename env.rb to helpers.rb
---
.../jekyll_steps.rb => step_definitions.rb} | 0
.../support/{overview.rb => formatter.rb} | 130 +++++++++++-------
features/support/{env.rb => helpers.rb} | 0
script/cucumber | 11 +-
4 files changed, 84 insertions(+), 57 deletions(-)
rename features/{step_definitions/jekyll_steps.rb => step_definitions.rb} (100%)
rename features/support/{overview.rb => formatter.rb} (56%)
rename features/support/{env.rb => helpers.rb} (100%)
diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions.rb
similarity index 100%
rename from features/step_definitions/jekyll_steps.rb
rename to features/step_definitions.rb
diff --git a/features/support/overview.rb b/features/support/formatter.rb
similarity index 56%
rename from features/support/overview.rb
rename to features/support/formatter.rb
index 9045eafbf5a..f399a3ce16c 100644
--- a/features/support/overview.rb
+++ b/features/support/formatter.rb
@@ -3,142 +3,176 @@
require 'cucumber/formatter/console'
require 'cucumber/formatter/io'
-module Features
- module Support
- # The formatter used for --format pretty (the default formatter).
- #
- # This formatter prints features to plain text - exactly how they were parsed,
- # just prettier. That means with proper indentation and alignment of table columns.
- #
- # If the output is STDOUT (and not a file), there are bright colours to watch too.
- #
- class Overview
+module Jekyll
+ module Cucumber
+ class Formatter
+ attr_accessor :indent, :runtime
+ include ::Cucumber::Formatter::Console
+ include ::Cucumber::Formatter::Io
include FileUtils
- include Cucumber::Formatter::Console
- include Cucumber::Formatter::Io
- attr_writer :indent
- attr_reader :runtime
+
+ CHARS = {
+ :failed => "\u2718".red,
+ :pending => "\u203D".yellow,
+ :undefined => "\u2718".red,
+ :passed => "\u2714".green,
+ :skipped => "\u203D".blue
+ }
+
+ #
def initialize(runtime, path_or_io, options)
- @runtime, @io, @options = runtime, ensure_io(path_or_io), options
- @exceptions = []
- @indent = 0
+ @runtime = runtime
+ @snippets_input = []
+ @io = ensure_io(path_or_io)
@prefixes = options[:prefixes] || {}
@delayed_messages = []
- @snippets_input = []
+ @options = options
+ @exceptions = []
+ @indent = 0
end
+ #
+
def before_features(features)
print_profile_information
end
+ #
+
def after_features(features)
@io.puts
print_summary(features)
end
+ #
+
def before_feature(feature)
@exceptions = []
@indent = 0
end
- def comment_line(comment_line)
- end
+ #
- def after_tags(tags)
- end
+ def tag_name(tag_name); end
+ def comment_line(comment_line); end
+ def after_feature_element(feature_element); end
+ def after_tags(tags); end
- def tag_name(tag_name)
- end
+ #
def before_feature_element(feature_element)
@indent = 2
@scenario_indent = 2
end
- def after_feature_element(feature_element)
- end
+ #
def before_background(background)
- @indent = 2
@scenario_indent = 2
@in_background = true
+ @indent = 2
end
+ #
+
def after_background(background)
@in_background = nil
end
- def background_name(keyword, name, file_colon_line, source_indent)
- print_feature_element_name(keyword, name, file_colon_line, source_indent)
+ #
+
+ def background_name(keyword, name, source_line, indend)
+ print_feature_element_name(
+ keyword, name, source_line, indend
+ )
end
- def scenario_name(keyword, name, file_colon_line, source_indent)
- print_feature_element_name(keyword, name, file_colon_line, source_indent)
+ #
+
+ def scenario_name(keyword, name, source_line, indent)
+ print_feature_element_name(
+ keyword, name, source_line, indent
+ )
end
+ #
+
def before_step(step)
@current_step = step
end
- def before_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line)
+ #
+
+ def before_step_result(keyword, step_match, multiline_arg, status, exception, \
+ source_indent, background, file_colon_line)
+
@hide_this_step = false
if exception
if @exceptions.include?(exception)
@hide_this_step = true
return
end
+
@exceptions << exception
end
+
if status != :failed && @in_background ^ background
@hide_this_step = true
return
end
+
@status = status
end
- CHARS = {
- :failed => "x".red,
- :pending => "?".yellow,
- :undefined => "x".red,
- :passed => ".".green,
- :skipped => "-".blue
- }
+ #
def step_name(keyword, step_match, status, source_indent, background, file_colon_line)
@io.print CHARS[status]
+ @io.print " "
end
+ #
+
def exception(exception, status)
return if @hide_this_step
+
@io.puts
print_exception(exception, status, @indent)
@io.flush
end
+ #
+
def after_test_step(test_step, result)
- collect_snippet_data(test_step, result)
+ collect_snippet_data(
+ test_step, result
+ )
end
- private
+ #
- def print_feature_element_name(keyword, name, file_colon_line, source_indent)
+ private
+ def print_feature_element_name(keyword, name, source_line, indent)
@io.puts
- names = name.empty? ? [name] : name.split("\n")
- line = " #{keyword}: #{names[0]}"
- if @options[:source]
- line_comment = "#{file_colon_line}"
- @io.print(line_comment)
- end
+
+ names = name.empty? ? [name] : name.each_line.to_a
+ line = " #{keyword}: #{names[0]}"
+
+ @io.print(source_line) if @options[:source]
@io.print(line)
@io.print " "
@io.flush
end
+ #
+
def cell_prefix(status)
@prefixes[status]
end
+ #
+
def print_summary(features)
@io.puts
print_stats(features, @options)
diff --git a/features/support/env.rb b/features/support/helpers.rb
similarity index 100%
rename from features/support/env.rb
rename to features/support/helpers.rb
diff --git a/script/cucumber b/script/cucumber
index 13508c84ee2..0f0ef0f7da1 100755
--- a/script/cucumber
+++ b/script/cucumber
@@ -1,11 +1,4 @@
#!/usr/bin/env bash
-if ruby --version | grep -q "jruby"
-then
- echo "Move along, we are not testing features on JRuby right now."
- exit 0
-else
- time ruby -S bundle exec cucumber \
- -f Features::Support::Overview \
- "$@"
-fi
+time ruby -S bundle exec cucumber \
+ -f Jekyll::Cucumber::Formatter "$@"
From a32c77fb87f6b2bf64e52e0070b69d7f77339bc6 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 11 Jan 2016 13:10:43 -0800
Subject: [PATCH 0267/4996] Update history to reflect merge of #4347 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 7318a05fa08..ab1d5139c67 100644
--- a/History.markdown
+++ b/History.markdown
@@ -53,6 +53,7 @@
* Remove ObectSpace dumping and start using inherited, it's faster. (#4342)
* Add script/travis so all people can play with Travis-CI images. (#4338)
* Move Cucumber to using RSpec-Expections and furthering JRuby support. (#4343)
+ * Rearrange Cucumber and add some flair. (#4347)
### Site Enhancements
From da6618c6fc85254556ec965d260a48d22f78208c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 11 Jan 2016 13:36:41 -0800
Subject: [PATCH 0268/4996] site: fix :hour, :minute, :second permalink keys to
refer to date front matter value
Fixes #4336
---
site/_docs/permalinks.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/site/_docs/permalinks.md b/site/_docs/permalinks.md
index 5aa0449aac5..9ccf27060c5 100644
--- a/site/_docs/permalinks.md
+++ b/site/_docs/permalinks.md
@@ -79,7 +79,7 @@ permalink is defined according to the format `/:categories/:year/:month/:day/:ti
- Hour of the day, 24-hour clock, zero-padded from the Post’s filename. (00..23)
+ Hour of the day, 24-hour clock, zero-padded from the post’s date front matter. (00..23)
@@ -89,7 +89,7 @@ permalink is defined according to the format `/:categories/:year/:month/:day/:ti
- Minute of the hour from the Post’s filename. (00..59)
+ Minute of the hour from the post’s date front matter. (00..59)
@@ -99,7 +99,8 @@ permalink is defined according to the format `/:categories/:year/:month/:day/:ti
- Second of the minute from the Post’s filename. (00..60)
+ Second of the minute from the post’s date front matter. (00..59)
+
From 03582c32ed39524081b843736f69dc2b538e7a24 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 11 Jan 2016 13:37:22 -0800
Subject: [PATCH 0269/4996] site: update generated history per automatic fixes
to History.markdown
---
site/_docs/history.md | 372 +++++++++++++++++++++---------------------
1 file changed, 187 insertions(+), 185 deletions(-)
diff --git a/site/_docs/history.md b/site/_docs/history.md
index a99932fb88f..a12653f2c1c 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -87,8 +87,7 @@ permalink: "/docs/history/"
- Perf: `Markdown#matches` should avoid regexp ([#3321]({{ site.repository }}/issues/3321))
- Perf: Use frozen regular expressions for `Utils#slugify` ([#3321]({{ site.repository }}/issues/3321))
- Split off Textile support into jekyll-textile-converter ([#3319]({{ site.repository }}/issues/3319))
-- Improve the navigation menu alignment in the site template on small
- screens ([#3331]({{ site.repository }}/issues/3331))
+- Improve the navigation menu alignment in the site template on small screens ([#3331]({{ site.repository }}/issues/3331))
- Show the regeneration time after the initial generation ([#3378]({{ site.repository }}/issues/3378))
- Site template: Switch default font to Helvetica Neue ([#3376]({{ site.repository }}/issues/3376))
- Make the `include` tag a teensy bit faster. ([#3391]({{ site.repository }}/issues/3391))
@@ -120,8 +119,7 @@ permalink: "/docs/history/"
- Set log level to debug when verbose flag is set ([#3665]({{ site.repository }}/issues/3665))
- Added a mention on the Gemfile to complete the instructions ([#3671]({{ site.repository }}/issues/3671))
- Perf: Cache `Document#to_liquid` and invalidate where necessary ([#3693]({{ site.repository }}/issues/3693))
-- Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and
- `keep_dirs` only once, not once per iteration ([#3696]({{ site.repository }}/issues/3696))
+- Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and `keep_dirs` only once, not once per iteration ([#3696]({{ site.repository }}/issues/3696))
- Omit jekyll/jekyll-help from list of resources. ([#3698]({{ site.repository }}/issues/3698))
- Add basic `jekyll doctor` test to detect fsnotify (OSX) anomalies. ([#3704]({{ site.repository }}/issues/3704))
- Added talk.jekyllrb.com to "Have questions?" ([#3694]({{ site.repository }}/issues/3694))
@@ -423,8 +421,7 @@ permalink: "/docs/history/"
- Strip newlines in site template `` description. ([#2982]({{ site.repository }}/issues/2982))
- Add link to atom feed in `head` of site template files ([#2996]({{ site.repository }}/issues/2996))
- Performance optimizations ([#2994]({{ site.repository }}/issues/2994))
-- Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration
- over hash keys. ([#3017]({{ site.repository }}/issues/3017))
+- Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration over hash keys. ([#3017]({{ site.repository }}/issues/3017))
- Further minor performance enhancements. ([#3022]({{ site.repository }}/issues/3022))
- Add 'b' and 's' aliases for build and serve, respectively ([#3065]({{ site.repository }}/issues/3065))
@@ -432,8 +429,7 @@ permalink: "/docs/history/"
{: #bug-fixes-v2-5-0}
- Fix Rouge's RedCarpet plugin interface integration ([#2951]({{ site.repository }}/issues/2951))
-- Remove `--watch` from the site template blog post since it defaults
- to watching in in 2.4.0 ([#2922]({{ site.repository }}/issues/2922))
+- Remove `--watch` from the site template blog post since it defaults to watching in in 2.4.0 ([#2922]({{ site.repository }}/issues/2922))
- Fix code for media query mixin in site template ([#2946]({{ site.repository }}/issues/2946))
- Allow post URL's to have `.htm` extensions ([#2925]({{ site.repository }}/issues/2925))
- `Utils.slugify`: Don't create new objects when gsubbing ([#2997]({{ site.repository }}/issues/2997))
@@ -519,11 +515,9 @@ permalink: "/docs/history/"
- Document the `name` variable for collection permalinks ([#2829]({{ site.repository }}/issues/2829))
- Adds info about installing jekyll in current dir ([#2839]({{ site.repository }}/issues/2839))
-- Remove deprecated `jekyll-projectlist` plugin from list of third-party
- plugins ([#2742]({{ site.repository }}/issues/2742))
+- Remove deprecated `jekyll-projectlist` plugin from list of third-party plugins ([#2742]({{ site.repository }}/issues/2742))
- Remove tag plugins that are built in to Jekyll ([#2751]({{ site.repository }}/issues/2751))
-- Add `markdown-writer` package for Atom Editor to list of third-party
- plugins ([#2763]({{ site.repository }}/issues/2763))
+- Add `markdown-writer` package for Atom Editor to list of third-party plugins ([#2763]({{ site.repository }}/issues/2763))
- Fix typo in site documentation for collections ([#2764]({{ site.repository }}/issues/2764))
- Fix minor typo on plugins docs page ([#2765]({{ site.repository }}/issues/2765))
- Replace markdown with HTML in `sass_dir` note on assets page ([#2791]({{ site.repository }}/issues/2791))
@@ -623,8 +617,7 @@ permalink: "/docs/history/"
{: #site-enhancements-v2-2-0}
- Update Kramdown urls ([#2588]({{ site.repository }}/issues/2588))
-- Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of
- third-party plugins ([#2596]({{ site.repository }}/issues/2596))
+- Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of third-party plugins ([#2596]({{ site.repository }}/issues/2596))
- Fix a bunch of broken links in the site ([#2601]({{ site.repository }}/issues/2601))
- Replace dead links with working links ([#2611]({{ site.repository }}/issues/2611))
- Add jekyll-hook to deployment methods ([#2617]({{ site.repository }}/issues/2617))
@@ -668,12 +661,10 @@ permalink: "/docs/history/"
- Allow subdirectories in `_data` ([#2395]({{ site.repository }}/issues/2395))
- Extract Pagination Generator into gem: `jekyll-paginate` ([#2455]({{ site.repository }}/issues/2455))
- Utilize `date_to_rfc822` filter in site template ([#2437]({{ site.repository }}/issues/2437))
-- Add categories, last build datetime, and generator to site template
- feed ([#2438]({{ site.repository }}/issues/2438))
+- Add categories, last build datetime, and generator to site template feed ([#2438]({{ site.repository }}/issues/2438))
- Configurable, replaceable Logger-compliant logger ([#2444]({{ site.repository }}/issues/2444))
- Extract `gist` tag into a separate gem ([#2469]({{ site.repository }}/issues/2469))
-- Add `collection` attribute to `Document#to_liquid` to access the
- document's collection label. ([#2436]({{ site.repository }}/issues/2436))
+- Add `collection` attribute to `Document#to_liquid` to access the document's collection label. ([#2436]({{ site.repository }}/issues/2436))
- Upgrade listen to `2.7.6 <= x < 3.0.0` ([#2492]({{ site.repository }}/issues/2492))
- Allow configuration of different Twitter and GitHub usernames in site template ([#2485]({{ site.repository }}/issues/2485))
- Bump Pygments to v0.6.0 ([#2504]({{ site.repository }}/issues/2504))
@@ -699,8 +690,7 @@ permalink: "/docs/history/"
- Allow front matter defaults to set post categories ([#2373]({{ site.repository }}/issues/2373))
- Fix command in subcommand deprecation warning ([#2457]({{ site.repository }}/issues/2457))
- Keep all parent directories of files/dirs in `keep_files` ([#2458]({{ site.repository }}/issues/2458))
-- When using RedCarpet and Rouge without Rouge installed, fixed erroneous
- error which stated that redcarpet was missing, not rouge. ([#2464]({{ site.repository }}/issues/2464))
+- When using RedCarpet and Rouge without Rouge installed, fixed erroneous error which stated that redcarpet was missing, not rouge. ([#2464]({{ site.repository }}/issues/2464))
- Ignore *all* directories and files that merit it on auto-generation ([#2459]({{ site.repository }}/issues/2459))
- Before copying file, explicitly remove the old one ([#2535]({{ site.repository }}/issues/2535))
- Merge file system categories with categories from YAML. ([#2531]({{ site.repository }}/issues/2531))
@@ -731,8 +721,7 @@ permalink: "/docs/history/"
- Prevent table from extending parent width in permalink style table ([#2424]({{ site.repository }}/issues/2424))
- Add collections to info about pagination support ([#2389]({{ site.repository }}/issues/2389))
- Add `jekyll_github_sample` plugin to list of third-party plugins ([#2463]({{ site.repository }}/issues/2463))
-- Clarify documentation around front matter defaults and add details
- about defaults for collections. ([#2439]({{ site.repository }}/issues/2439))
+- Clarify documentation around front matter defaults and add details about defaults for collections. ([#2439]({{ site.repository }}/issues/2439))
- Add Jekyll Project Version Tag to list of third-party plugins ([#2468]({{ site.repository }}/issues/2468))
- Use `https` for GitHub links across whole site ([#2470]({{ site.repository }}/issues/2470))
- Add StickerMule + Jekyll post ([#2476]({{ site.repository }}/issues/2476))
@@ -751,13 +740,11 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v2-0-3}
-- Properly prefix links in site template with URL or baseurl depending upon
- need. ([#2319]({{ site.repository }}/issues/2319))
+- Properly prefix links in site template with URL or baseurl depending upon need. ([#2319]({{ site.repository }}/issues/2319))
- Update gist tag comments and error message to require username ([#2326]({{ site.repository }}/issues/2326))
- Fix `permalink` setting in site template ([#2331]({{ site.repository }}/issues/2331))
- Don't fail if any of the path objects are nil ([#2325]({{ site.repository }}/issues/2325))
-- Instantiate all descendants for converters and generators, not just
- direct subclasses ([#2334]({{ site.repository }}/issues/2334))
+- Instantiate all descendants for converters and generators, not just direct subclasses ([#2334]({{ site.repository }}/issues/2334))
- Replace all instances of `site.name` with `site.title` in site template ([#2324]({{ site.repository }}/issues/2324))
- `Jekyll::Filters#time` now accepts UNIX timestamps in string or number form ([#2339]({{ site.repository }}/issues/2339))
- Use `item_property` for `where` filter so it doesn't break on collections ([#2359]({{ site.repository }}/issues/2359))
@@ -804,17 +791,16 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v2-0-0}
+
- Add "Collections" feature ([#2199]({{ site.repository }}/issues/2199))
- Add gem-based plugin whitelist to safe mode ([#1657]({{ site.repository }}/issues/1657))
-- Replace the commander command line parser with a more robust
- solution for our needs called `mercenary` ([#1706]({{ site.repository }}/issues/1706))
+- Replace the commander command line parser with a more robust solution for our needs called `mercenary` ([#1706]({{ site.repository }}/issues/1706))
- Remove support for Ruby 1.8.x ([#1780]({{ site.repository }}/issues/1780))
- Move to jekyll/jekyll from mojombo/jekyll ([#1817]({{ site.repository }}/issues/1817))
- Allow custom markdown processors ([#1872]({{ site.repository }}/issues/1872))
- Provide support for the Rouge syntax highlighter ([#1859]({{ site.repository }}/issues/1859))
- Provide support for Sass ([#1932]({{ site.repository }}/issues/1932))
-- Provide a 300% improvement when generating sites that use
- `Post#next` or `Post#previous` ([#1983]({{ site.repository }}/issues/1983))
+- Provide a 300% improvement when generating sites that use `Post#next` or `Post#previous` ([#1983]({{ site.repository }}/issues/1983))
- Provide support for CoffeeScript ([#1991]({{ site.repository }}/issues/1991))
- Replace Maruku with Kramdown as Default Markdown Processor ([#1988]({{ site.repository }}/issues/1988))
- Expose `site.static_files` to Liquid ([#2075]({{ site.repository }}/issues/2075))
@@ -826,10 +812,9 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v2-0-0}
-- Move the EntryFilter class into the Jekyll module to avoid polluting the
- global namespace ([#1800]({{ site.repository }}/issues/1800))
-- Add `group_by` Liquid filter create lists of items grouped by a common
- property's value ([#1788]({{ site.repository }}/issues/1788))
+
+- Move the EntryFilter class into the Jekyll module to avoid polluting the global namespace ([#1800]({{ site.repository }}/issues/1800))
+- Add `group_by` Liquid filter create lists of items grouped by a common property's value ([#1788]({{ site.repository }}/issues/1788))
- Add support for Maruku's `fenced_code_blocks` option ([#1799]({{ site.repository }}/issues/1799))
- Update Redcarpet dependency to ~> 3.0 ([#1815]({{ site.repository }}/issues/1815))
- Automatically sort all pages by name ([#1848]({{ site.repository }}/issues/1848))
@@ -840,12 +825,10 @@ permalink: "/docs/history/"
- Bump dependency `safe_yaml` to `~> 1.0` ([#1886]({{ site.repository }}/issues/1886))
- Allow sorting of content by custom properties ([#1849]({{ site.repository }}/issues/1849))
- Add `--quiet` flag to silence output during build and serve ([#1898]({{ site.repository }}/issues/1898))
-- Add a `where` filter to filter arrays based on a key/value pair
- ([#1875]({{ site.repository }}/issues/1875))
+- Add a `where` filter to filter arrays based on a key/value pair ([#1875]({{ site.repository }}/issues/1875))
- Route 404 errors to a custom 404 page in development ([#1899]({{ site.repository }}/issues/1899))
- Excludes are now relative to the site source ([#1916]({{ site.repository }}/issues/1916))
-- Bring MIME Types file for `jekyll serve` to complete parity with GH Pages
- servers ([#1993]({{ site.repository }}/issues/1993))
+- Bring MIME Types file for `jekyll serve` to complete parity with GH Pages servers ([#1993]({{ site.repository }}/issues/1993))
- Adding Breakpoint to make new site template more responsive ([#2038]({{ site.repository }}/issues/2038))
- Default to using the UTF-8 encoding when reading files. ([#2031]({{ site.repository }}/issues/2031))
- Update Redcarpet dependency to ~> 3.1 ([#2044]({{ site.repository }}/issues/2044))
@@ -863,13 +846,11 @@ permalink: "/docs/history/"
- Add support for unpublished drafts ([#2164]({{ site.repository }}/issues/2164))
- Add `force_polling` option to the `serve` command ([#2165]({{ site.repository }}/issues/2165))
- Clean up the `` in the site template ([#2186]({{ site.repository }}/issues/2186))
-- Permit YAML blocks to end with three dots to better conform with the
- YAML spec ([#2110]({{ site.repository }}/issues/2110))
+- Permit YAML blocks to end with three dots to better conform with the YAML spec ([#2110]({{ site.repository }}/issues/2110))
- Use `File.exist?` instead of deprecated `File.exists?` ([#2214]({{ site.repository }}/issues/2214))
- Require newline after start of YAML Front Matter header ([#2211]({{ site.repository }}/issues/2211))
- Add the ability for pages to be marked as `published: false` ([#1492]({{ site.repository }}/issues/1492))
-- Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy
- looking up of variable values in a Liquid context. ([#2253]({{ site.repository }}/issues/2253))
+- Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy looking up of variable values in a Liquid context. ([#2253]({{ site.repository }}/issues/2253))
- Remove literal lang name from class ([#2292]({{ site.repository }}/issues/2292))
- Return `utf-8` encoding in header for webrick error page response ([#2289]({{ site.repository }}/issues/2289))
- Make template site easier to customize ([#2268]({{ site.repository }}/issues/2268))
@@ -879,13 +860,12 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v2-0-0}
+
- Don't allow nil entries when loading posts ([#1796]({{ site.repository }}/issues/1796))
-- Remove the scrollbar that's always displayed in new sites generated
- from the site template ([#1805]({{ site.repository }}/issues/1805))
+- Remove the scrollbar that's always displayed in new sites generated from the site template ([#1805]({{ site.repository }}/issues/1805))
- Add `#path` to required methods in `Jekyll::Convertible` ([#1866]({{ site.repository }}/issues/1866))
- Default Maruku fenced code blocks to ON for 2.0.0-dev ([#1831]({{ site.repository }}/issues/1831))
-- Change short opts for host and port for `jekyll docs` to be consistent with
- other subcommands ([#1877]({{ site.repository }}/issues/1877))
+- Change short opts for host and port for `jekyll docs` to be consistent with other subcommands ([#1877]({{ site.repository }}/issues/1877))
- Fix typos ([#1910]({{ site.repository }}/issues/1910))
- Lock Maruku at 0.7.0 to prevent bugs caused by Maruku 0.7.1 ([#1958]({{ site.repository }}/issues/1958))
- Fixes full path leak to source directory when using include tag ([#1951]({{ site.repository }}/issues/1951))
@@ -898,8 +878,7 @@ permalink: "/docs/history/"
- Sanitize paths uniformly, in a Windows-friendly way ([#2065]({{ site.repository }}/issues/2065), [#2109]({{ site.repository }}/issues/2109))
- Update gem build steps to work correctly on Windows ([#2118]({{ site.repository }}/issues/2118))
- Remove obsolete `normalize_options` method call from `bin/jekyll` ([#2121]({{ site.repository }}/issues/2121)).
-- Remove `+` characters from Pygments lexer names when adding as a CSS
- class ([#994]({{ site.repository }}/issues/994))
+- Remove `+` characters from Pygments lexer names when adding as a CSS class ([#994]({{ site.repository }}/issues/994))
- Remove some code that caused Ruby interpreter warnings ([#2178]({{ site.repository }}/issues/2178))
- Only strip the drive name if it begins the string ([#2175]({{ site.repository }}/issues/2175))
- Remove default post with invalid date from site template ([#2200]({{ site.repository }}/issues/2200))
@@ -915,14 +894,14 @@ permalink: "/docs/history/"
### Development Fixes
{: #development-fixes-v2-0-0}
+
- Add a link to the site in the README.md file ([#1795]({{ site.repository }}/issues/1795))
- Add in History and site changes from `v1-stable` branch ([#1836]({{ site.repository }}/issues/1836))
- Testing additions on the Excerpt class ([#1893]({{ site.repository }}/issues/1893))
- Fix the `highlight` tag feature ([#1859]({{ site.repository }}/issues/1859))
- Test Jekyll under Ruby 2.1.0 ([#1900]({{ site.repository }}/issues/1900))
- Add script/cibuild for fun and profit ([#1912]({{ site.repository }}/issues/1912))
-- Use `Forwardable` for delegation between `Excerpt` and `Post`
- ([#1927]({{ site.repository }}/issues/1927))
+- Use `Forwardable` for delegation between `Excerpt` and `Post` ([#1927]({{ site.repository }}/issues/1927))
- Rename `read_things` to `read_content` ([#1928]({{ site.repository }}/issues/1928))
- Add `script/branding` script for ASCII art lovin' ([#1936]({{ site.repository }}/issues/1936))
- Update the README to reflect the repo move ([#1943]({{ site.repository }}/issues/1943))
@@ -951,11 +930,11 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v2-0-0}
+
- Document Kramdown's GFM parser option ([#1791]({{ site.repository }}/issues/1791))
- Move CSS to includes & update normalize.css to v2.1.3 ([#1787]({{ site.repository }}/issues/1787))
- Minify CSS only in production ([#1803]({{ site.repository }}/issues/1803))
-- Fix broken link to installation of Ruby on Mountain Lion blog post on
- Troubleshooting docs page ([#1797]({{ site.repository }}/issues/1797))
+- Fix broken link to installation of Ruby on Mountain Lion blog post on Troubleshooting docs page ([#1797]({{ site.repository }}/issues/1797))
- Fix issues with 1.4.1 release blog post ([#1804]({{ site.repository }}/issues/1804))
- Add note about deploying to OpenShift ([#1812]({{ site.repository }}/issues/1812))
- Collect all Windows-related docs onto one page ([#1818]({{ site.repository }}/issues/1818))
@@ -970,8 +949,7 @@ permalink: "/docs/history/"
- Add jekyll-compass to the plugin list ([#1923]({{ site.repository }}/issues/1923))
- Add note in Posts docs about stripping `` tags from excerpt ([#1933]({{ site.repository }}/issues/1933))
- Add additional info about the new exclude behavior ([#1938]({{ site.repository }}/issues/1938))
-- Linkify 'awesome contributors' to point to the contributors graph on
- GitHub ([#1940]({{ site.repository }}/issues/1940))
+- Linkify 'awesome contributors' to point to the contributors graph on GitHub ([#1940]({{ site.repository }}/issues/1940))
- Update `docs/sites.md` link to GitHub Training materials ([#1949]({{ site.repository }}/issues/1949))
- Update `master` with the release info from 1.4.3 ([#1947]({{ site.repository }}/issues/1947))
- Define docs nav in datafile ([#1953]({{ site.repository }}/issues/1953))
@@ -988,8 +966,7 @@ permalink: "/docs/history/"
- Update link to rack-jekyll on "Deployment Methods" page ([#2047]({{ site.repository }}/issues/2047))
- Fix typo in /docs/configuration ([#2073]({{ site.repository }}/issues/2073))
- Fix count in docs for `site.static_files` ([#2077]({{ site.repository }}/issues/2077))
-- Update configuration docs to indicate utf-8 is the default for 2.0.0
- and ASCII for 1.9.3 ([#2074]({{ site.repository }}/issues/2074))
+- Update configuration docs to indicate utf-8 is the default for 2.0.0 and ASCII for 1.9.3 ([#2074]({{ site.repository }}/issues/2074))
- Add info about unreleased feature to the site ([#2061]({{ site.repository }}/issues/2061))
- Add whitespace to liquid example in GitHub Pages docs ([#2084]({{ site.repository }}/issues/2084))
- Clarify the way Sass and CoffeeScript files are read in and output ([#2067]({{ site.repository }}/issues/2067))
@@ -1006,8 +983,7 @@ permalink: "/docs/history/"
- Some HTML tidying ([#2130]({{ site.repository }}/issues/2130))
- Remove modernizr and use html5shiv.js directly for IE less than v9 ([#2131]({{ site.repository }}/issues/2131))
- Remove unused images ([#2187]({{ site.repository }}/issues/2187))
-- Use `array_to_sentence_string` filter when outputting news item
- categories ([#2191]({{ site.repository }}/issues/2191))
+- Use `array_to_sentence_string` filter when outputting news item categories ([#2191]({{ site.repository }}/issues/2191))
- Add link to Help repo in primary navigation bar ([#2177]({{ site.repository }}/issues/2177))
- Switch to using an ico file for the shortcut icon ([#2193]({{ site.repository }}/issues/2193))
- Use numbers to specify font weights and only bring in font weights used ([#2185]({{ site.repository }}/issues/2185))
@@ -1068,6 +1044,7 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-4-3}
+
- Patch show-stopping security vulnerabilities ([#1944]({{ site.repository }}/issues/1944))
@@ -1076,6 +1053,7 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-4-2}
+
- Turn on Maruku fenced code blocks by default ([#1830]({{ site.repository }}/issues/1830))
@@ -1084,6 +1062,7 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-4-1}
+
- Don't allow nil entries when loading posts ([#1796]({{ site.repository }}/issues/1796))
@@ -1092,25 +1071,30 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-4-0}
+
- Add support for TOML config files ([#1765]({{ site.repository }}/issues/1765))
### Minor Enhancements
{: #minor-enhancements-v1-4-0}
+
- Sort plugins as a way to establish a load order ([#1682]({{ site.repository }}/issues/1682))
- Update Maruku to 0.7.0 ([#1775]({{ site.repository }}/issues/1775))
### Bug Fixes
{: #bug-fixes-v1-4-0}
+
- Add a space between two words in a Pagination warning message ([#1769]({{ site.repository }}/issues/1769))
- Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 ([#1778]({{ site.repository }}/issues/1778))
### Development Fixes
{: #development-fixes-v1-4-0}
+
- Remove some whitespace in the code ([#1755]({{ site.repository }}/issues/1755))
- Remove some duplication in the reading of posts and drafts ([#1779]({{ site.repository }}/issues/1779))
### Site Enhancements
{: #site-enhancements-v1-4-0}
+
- Fixed case of a word in the Jekyll v1.3.0 release post ([#1762]({{ site.repository }}/issues/1762))
- Fixed the mime type for the favicon ([#1772]({{ site.repository }}/issues/1772))
@@ -1120,19 +1104,20 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-3-1}
+
- Add a `--prefix` option to passthrough for the importers ([#1669]({{ site.repository }}/issues/1669))
-- Push the paginator plugin lower in the plugin priority order so
- other plugins run before it ([#1759]({{ site.repository }}/issues/1759))
+- Push the paginator plugin lower in the plugin priority order so other plugins run before it ([#1759]({{ site.repository }}/issues/1759))
### Bug Fixes
{: #bug-fixes-v1-3-1}
+
- Fix the include tag when ran in a loop ([#1726]({{ site.repository }}/issues/1726))
- Fix errors when using `--watch` on 1.8.7 ([#1730]({{ site.repository }}/issues/1730))
-- Specify where the include is called from if an included file is
- missing ([#1746]({{ site.repository }}/issues/1746))
+- Specify where the include is called from if an included file is missing ([#1746]({{ site.repository }}/issues/1746))
### Development Fixes
{: #development-fixes-v1-3-1}
+
- Extract `Site#filter_entries` into its own object ([#1697]({{ site.repository }}/issues/1697))
- Enable Travis' bundle caching ([#1734]({{ site.repository }}/issues/1734))
- Remove trailing whitespace in some files ([#1736]({{ site.repository }}/issues/1736))
@@ -1140,11 +1125,10 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-3-1}
+
- Update link to example Rakefile to point to specific commit ([#1741]({{ site.repository }}/issues/1741))
-- Fix drafts docs to indicate that draft time is based on file modification
- time, not `Time.now` ([#1695]({{ site.repository }}/issues/1695))
-- Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to
- list of third-party plugins ([#1693]({{ site.repository }}/issues/1693))
+- Fix drafts docs to indicate that draft time is based on file modification time, not `Time.now` ([#1695]({{ site.repository }}/issues/1695))
+- Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to list of third-party plugins ([#1693]({{ site.repository }}/issues/1693))
- Add `jekyll-asset-path-plugin` to list of third-party plugins ([#1670]({{ site.repository }}/issues/1670))
- Add `emoji-for-jekyll` to list of third-part plugins ([#1708]({{ site.repository }}/issues/1708))
- Fix previous section link on plugins page to point to pagination page ([#1707]({{ site.repository }}/issues/1707))
@@ -1159,47 +1143,43 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-3-0}
-- Add support for adding data as YAML files under a site's `_data`
- directory ([#1003]({{ site.repository }}/issues/1003))
+
+- Add support for adding data as YAML files under a site's `_data` directory ([#1003]({{ site.repository }}/issues/1003))
- Allow variables to be used with `include` tags ([#1495]({{ site.repository }}/issues/1495))
- Allow using gems for plugin management ([#1557]({{ site.repository }}/issues/1557))
### Minor Enhancements
{: #minor-enhancements-v1-3-0}
+
- Decrease the specificity in the site template CSS ([#1574]({{ site.repository }}/issues/1574))
- Add `encoding` configuration option ([#1449]({{ site.repository }}/issues/1449))
-- Provide better error handling for Jekyll's custom Liquid tags
- ([#1514]({{ site.repository }}/issues/1514))
-- If an included file causes a Liquid error, add the path to the
- include file that caused the error to the error message ([#1596]({{ site.repository }}/issues/1596))
-- If a layout causes a Liquid error, change the error message so that
- we know it comes from the layout ([#1601]({{ site.repository }}/issues/1601))
+- Provide better error handling for Jekyll's custom Liquid tags ([#1514]({{ site.repository }}/issues/1514))
+- If an included file causes a Liquid error, add the path to the include file that caused the error to the error message ([#1596]({{ site.repository }}/issues/1596))
+- If a layout causes a Liquid error, change the error message so that we know it comes from the layout ([#1601]({{ site.repository }}/issues/1601))
- Update Kramdown dependency to `~> 1.2` ([#1610]({{ site.repository }}/issues/1610))
- Update `safe_yaml` dependency to `~> 0.9.7` ([#1602]({{ site.repository }}/issues/1602))
- Allow layouts to be in subfolders like includes ([#1622]({{ site.repository }}/issues/1622))
- Switch to listen for site watching while serving ([#1589]({{ site.repository }}/issues/1589))
- Add a `json` liquid filter to be used in sites ([#1651]({{ site.repository }}/issues/1651))
-- Point people to the migration docs when the `jekyll-import` gem is
- missing ([#1662]({{ site.repository }}/issues/1662))
+- Point people to the migration docs when the `jekyll-import` gem is missing ([#1662]({{ site.repository }}/issues/1662))
### Bug Fixes
{: #bug-fixes-v1-3-0}
-- Fix up matching against source and destination when the two
- locations are similar ([#1556]({{ site.repository }}/issues/1556))
+
+- Fix up matching against source and destination when the two locations are similar ([#1556]({{ site.repository }}/issues/1556))
- Fix the missing `pathname` require in certain cases ([#1255]({{ site.repository }}/issues/1255))
- Use `+` instead of `Array#concat` when building `Post` attribute list ([#1571]({{ site.repository }}/issues/1571))
- Print server address when launching a server ([#1586]({{ site.repository }}/issues/1586))
- Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering ([#1598]({{ site.repository }}/issues/1598))
- Fix error with failing include tag when variable was file name ([#1613]({{ site.repository }}/issues/1613))
- Downcase lexers before passing them to pygments ([#1615]({{ site.repository }}/issues/1615))
-- Capitalize the short verbose switch because it conflicts with the
- built-in Commander switch ([#1660]({{ site.repository }}/issues/1660))
+- Capitalize the short verbose switch because it conflicts with the built-in Commander switch ([#1660]({{ site.repository }}/issues/1660))
- Fix compatibility with 1.8.x ([#1665]({{ site.repository }}/issues/1665))
-- Fix an error with the new file watching code due to library version
- incompatibilities ([#1687]({{ site.repository }}/issues/1687))
+- Fix an error with the new file watching code due to library version incompatibilities ([#1687]({{ site.repository }}/issues/1687))
### Development Fixes
{: #development-fixes-v1-3-0}
+
- Add coverage reporting with Coveralls ([#1539]({{ site.repository }}/issues/1539))
- Refactor the Liquid `include` tag ([#1490]({{ site.repository }}/issues/1490))
- Update launchy dependency to `~> 2.3` ([#1608]({{ site.repository }}/issues/1608))
@@ -1217,6 +1197,7 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-3-0}
+
- Fix params for `JekyllImport::WordPress.process` arguments ([#1554]({{ site.repository }}/issues/1554))
- Add `jekyll-suggested-tweet` to list of third-party plugins ([#1555]({{ site.repository }}/issues/1555))
- Link to Liquid's docs for tags and filters ([#1553]({{ site.repository }}/issues/1553))
@@ -1224,8 +1205,7 @@ permalink: "/docs/history/"
- Simplify/generalize pagination docs ([#1577]({{ site.repository }}/issues/1577))
- Add documentation for the new data sources feature ([#1503]({{ site.repository }}/issues/1503))
- Add more information on how to create generators ([#1590]({{ site.repository }}/issues/1590), [#1592]({{ site.repository }}/issues/1592))
-- Improve the instructions for mimicking GitHub Flavored Markdown
- ([#1614]({{ site.repository }}/issues/1614))
+- Improve the instructions for mimicking GitHub Flavored Markdown ([#1614]({{ site.repository }}/issues/1614))
- Add `jekyll-import` warning note of missing dependencies ([#1626]({{ site.repository }}/issues/1626))
- Fix grammar in the Usage section ([#1635]({{ site.repository }}/issues/1635))
- Add documentation for the use of gems as plugins ([#1656]({{ site.repository }}/issues/1656))
@@ -1240,6 +1220,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-2-1}
+
- Print better messages for detached server. Mute output on detach. ([#1518]({{ site.repository }}/issues/1518))
- Disable reverse lookup when running `jekyll serve` ([#1363]({{ site.repository }}/issues/1363))
- Upgrade RedCarpet dependency to `~> 2.3.0` ([#1515]({{ site.repository }}/issues/1515))
@@ -1247,17 +1228,20 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-2-1}
+
- Fix file discrepancy in gemspec ([#1522]({{ site.repository }}/issues/1522))
- Force rendering of Include tag ([#1525]({{ site.repository }}/issues/1525))
### Development Fixes
{: #development-fixes-v1-2-1}
+
- Add a rake task to generate a new release post ([#1404]({{ site.repository }}/issues/1404))
- Mute LSI output in tests ([#1531]({{ site.repository }}/issues/1531))
- Update contributor documentation ([#1537]({{ site.repository }}/issues/1537))
### Site Enhancements
{: #site-enhancements-v1-2-1}
+
- Fix a couple of validation errors on the site ([#1511]({{ site.repository }}/issues/1511))
- Make navigation menus reusable ([#1507]({{ site.repository }}/issues/1507))
- Fix link to History page from Release v1.2.0 notes post.
@@ -1270,45 +1254,41 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-2-0}
+
- Disable automatically-generated excerpts when `excerpt_separator` is `""`. ([#1386]({{ site.repository }}/issues/1386))
- Add checking for URL conflicts when running `jekyll doctor` ([#1389]({{ site.repository }}/issues/1389))
### Minor Enhancements
{: #minor-enhancements-v1-2-0}
+
- Catch and fix invalid `paginate` values ([#1390]({{ site.repository }}/issues/1390))
-- Remove superfluous `div.container` from the default html template for
- `jekyll new` ([#1315]({{ site.repository }}/issues/1315))
+- Remove superfluous `div.container` from the default html template for `jekyll new` ([#1315]({{ site.repository }}/issues/1315))
- Add `-D` short-form switch for the drafts option ([#1394]({{ site.repository }}/issues/1394))
- Update the links in the site template for Twitter and GitHub ([#1400]({{ site.repository }}/issues/1400))
- Update dummy email address to example.com domain ([#1408]({{ site.repository }}/issues/1408))
-- Update normalize.css to v2.1.2 and minify; add rake task to update
- normalize.css with greater ease. ([#1430]({{ site.repository }}/issues/1430))
-- Add the ability to detach the server ran by `jekyll serve` from it's
- controlling terminal ([#1443]({{ site.repository }}/issues/1443))
+- Update normalize.css to v2.1.2 and minify; add rake task to update normalize.css with greater ease. ([#1430]({{ site.repository }}/issues/1430))
+- Add the ability to detach the server ran by `jekyll serve` from it's controlling terminal ([#1443]({{ site.repository }}/issues/1443))
- Improve permalink generation for URLs with special characters ([#944]({{ site.repository }}/issues/944))
-- Expose the current Jekyll version to posts and pages via a new
- `jekyll.version` variable ([#1481]({{ site.repository }}/issues/1481))
+- Expose the current Jekyll version to posts and pages via a new `jekyll.version` variable ([#1481]({{ site.repository }}/issues/1481))
### Bug Fixes
{: #bug-fixes-v1-2-0}
+
- Markdown extension matching matches only exact matches ([#1382]({{ site.repository }}/issues/1382))
- Fixed NoMethodError when message passed to `Stevenson#message` is nil ([#1388]({{ site.repository }}/issues/1388))
- Use binary mode when writing file ([#1364]({{ site.repository }}/issues/1364))
-- Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and
- Kramdown > 0.14.0 ([#1397]({{ site.repository }}/issues/1397))
+- Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and Kramdown > 0.14.0 ([#1397]({{ site.repository }}/issues/1397))
- Do not force the permalink to be a dir if it ends on .html ([#963]({{ site.repository }}/issues/963))
- When a Liquid Exception is caught, show the full path rel. to site source ([#1415]({{ site.repository }}/issues/1415))
-- Properly read in the config options when serving the docs locally
- ([#1444]({{ site.repository }}/issues/1444))
+- Properly read in the config options when serving the docs locally ([#1444]({{ site.repository }}/issues/1444))
- Fixed `--layouts` option for `build` and `serve` commands ([#1458]({{ site.repository }}/issues/1458))
- Remove kramdown as a runtime dependency since it's optional ([#1498]({{ site.repository }}/issues/1498))
-- Provide proper error handling for invalid file names in the include
- tag ([#1494]({{ site.repository }}/issues/1494))
+- Provide proper error handling for invalid file names in the include tag ([#1494]({{ site.repository }}/issues/1494))
### Development Fixes
{: #development-fixes-v1-2-0}
-- Remove redundant argument to
- Jekyll::Commands::New#scaffold_post_content ([#1356]({{ site.repository }}/issues/1356))
+
+- Remove redundant argument to Jekyll::Commands::New#scaffold_post_content ([#1356]({{ site.repository }}/issues/1356))
- Add new dependencies to the README ([#1360]({{ site.repository }}/issues/1360))
- Fix link to contributing page in README ([#1424]({{ site.repository }}/issues/1424))
- Update TomDoc in Pager#initialize to match params ([#1441]({{ site.repository }}/issues/1441))
@@ -1319,6 +1299,7 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-2-0}
+
- Add info about new releases ([#1353]({{ site.repository }}/issues/1353))
- Update plugin list with jekyll-rss plugin ([#1354]({{ site.repository }}/issues/1354))
- Update the site list page with Ruby's official site ([#1358]({{ site.repository }}/issues/1358))
@@ -1346,6 +1327,7 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-1-2}
+
- Require Liquid 2.5.1 ([#1349]({{ site.repository }}/issues/1349))
@@ -1354,26 +1336,26 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-1-1}
+
- Remove superfluous `table` selector from main.css in `jekyll new` template ([#1328]({{ site.repository }}/issues/1328))
- Abort with non-zero exit codes ([#1338]({{ site.repository }}/issues/1338))
### Bug Fixes
{: #bug-fixes-v1-1-1}
+
- Fix up the rendering of excerpts ([#1339]({{ site.repository }}/issues/1339))
### Site Enhancements
{: #site-enhancements-v1-1-1}
+
- Add Jekyll Image Tag to the plugins list ([#1306]({{ site.repository }}/issues/1306))
- Remove erroneous statement that `site.pages` are sorted alphabetically.
-- Add info about the `_drafts` directory to the directory structure
- docs ([#1320]({{ site.repository }}/issues/1320))
-- Improve the layout of the plugin listing by organizing it into
- categories ([#1310]({{ site.repository }}/issues/1310))
+- Add info about the `_drafts` directory to the directory structure docs ([#1320]({{ site.repository }}/issues/1320))
+- Improve the layout of the plugin listing by organizing it into categories ([#1310]({{ site.repository }}/issues/1310))
- Add generator-jekyllrb and grunt-jekyll to plugins page ([#1330]({{ site.repository }}/issues/1330))
- Mention Kramdown as option for markdown parser on Extras page ([#1318]({{ site.repository }}/issues/1318))
- Update Quick-Start page to include reminder that all requirements must be installed ([#1327]({{ site.repository }}/issues/1327))
-- Change filename in `include` example to an HTML file so as not to indicate that Jekyll
- will automatically convert them. ([#1303]({{ site.repository }}/issues/1303))
+- Change filename in `include` example to an HTML file so as not to indicate that Jekyll will automatically convert them. ([#1303]({{ site.repository }}/issues/1303))
- Add an RSS feed for commits to Jekyll ([#1343]({{ site.repository }}/issues/1343))
@@ -1382,34 +1364,33 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-1-0}
+
- Add `docs` subcommand to read Jekyll's docs when offline. ([#1046]({{ site.repository }}/issues/1046))
- Support passing parameters to templates in `include` tag ([#1204]({{ site.repository }}/issues/1204))
- Add support for Liquid tags to post excerpts ([#1302]({{ site.repository }}/issues/1302))
### Minor Enhancements
{: #minor-enhancements-v1-1-0}
-- Search the hierarchy of pagination path up to site root to determine template page for
- pagination. ([#1198]({{ site.repository }}/issues/1198))
+
+- Search the hierarchy of pagination path up to site root to determine template page for pagination. ([#1198]({{ site.repository }}/issues/1198))
- Add the ability to generate a new Jekyll site without a template ([#1171]({{ site.repository }}/issues/1171))
-- Use redcarpet as the default markdown engine in newly generated
- sites ([#1245]({{ site.repository }}/issues/1245), [#1247]({{ site.repository }}/issues/1247))
-- Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new
- sites. ([#1247]({{ site.repository }}/issues/1247))
-- In the generated site, remove files that will be replaced by a
- directory ([#1118]({{ site.repository }}/issues/1118))
+- Use redcarpet as the default markdown engine in newly generated sites ([#1245]({{ site.repository }}/issues/1245), [#1247]({{ site.repository }}/issues/1247))
+- Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new sites. ([#1247]({{ site.repository }}/issues/1247))
+- In the generated site, remove files that will be replaced by a directory ([#1118]({{ site.repository }}/issues/1118))
- Fail loudly if a user-specified configuration file doesn't exist ([#1098]({{ site.repository }}/issues/1098))
- Allow for all options for Kramdown HTML Converter ([#1201]({{ site.repository }}/issues/1201))
### Bug Fixes
{: #bug-fixes-v1-1-0}
+
- Fix pagination in subdirectories. ([#1198]({{ site.repository }}/issues/1198))
-- Fix an issue with directories and permalinks that have a plus sign
- (+) in them ([#1215]({{ site.repository }}/issues/1215))
+- Fix an issue with directories and permalinks that have a plus sign (+) in them ([#1215]({{ site.repository }}/issues/1215))
- Provide better error reporting when generating sites ([#1253]({{ site.repository }}/issues/1253))
- Latest posts first in non-LSI `related_posts` ([#1271]({{ site.repository }}/issues/1271))
### Development Fixes
{: #development-fixes-v1-1-0}
+
- Merge the theme and layout Cucumber steps into one step ([#1151]({{ site.repository }}/issues/1151))
- Restrict activesupport dependency to pre-4.0.0 to maintain compatibility with `<= 1.9.2`
- Include/exclude deprecation handling simplification ([#1284]({{ site.repository }}/issues/1284))
@@ -1418,22 +1399,20 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-1-0}
+
- Add "News" section for release notes, along with an RSS feed ([#1093]({{ site.repository }}/issues/1093), [#1285]({{ site.repository }}/issues/1285), [#1286]({{ site.repository }}/issues/1286))
- Add "History" page.
- Restructured docs sections to include "Meta" section.
-- Add message to "Templates" page that specifies that Python must be installed in order
- to use Pygments. ([#1182]({{ site.repository }}/issues/1182))
+- Add message to "Templates" page that specifies that Python must be installed in order to use Pygments. ([#1182]({{ site.repository }}/issues/1182))
- Update link to the official Maruku repo ([#1175]({{ site.repository }}/issues/1175))
- Add documentation about `paginate_path` to "Templates" page in docs ([#1129]({{ site.repository }}/issues/1129))
- Give the quick-start guide its own page ([#1191]({{ site.repository }}/issues/1191))
-- Update ProTip on Installation page in docs to point to all the info about Pygments and
- the 'highlight' tag. ([#1196]({{ site.repository }}/issues/1196))
+- Update ProTip on Installation page in docs to point to all the info about Pygments and the 'highlight' tag. ([#1196]({{ site.repository }}/issues/1196))
- Run `site/img` through ImageOptim (thanks [@qrush](https://github.com/qrush)!) ([#1208]({{ site.repository }}/issues/1208))
- Added Jade Converter to `site/docs/plugins` ([#1210]({{ site.repository }}/issues/1210))
- Fix location of docs pages in Contributing pages ([#1214]({{ site.repository }}/issues/1214))
- Add ReadInXMinutes plugin to the plugin list ([#1222]({{ site.repository }}/issues/1222))
-- Remove plugins from the plugin list that have equivalents in Jekyll
- proper ([#1223]({{ site.repository }}/issues/1223))
+- Remove plugins from the plugin list that have equivalents in Jekyll proper ([#1223]({{ site.repository }}/issues/1223))
- Add jekyll-assets to the plugin list ([#1225]({{ site.repository }}/issues/1225))
- Add jekyll-pandoc-mulitple-formats to the plugin list ([#1229]({{ site.repository }}/issues/1229))
- Remove dead link to "Using Git to maintain your blog" ([#1227]({{ site.repository }}/issues/1227))
@@ -1447,13 +1426,11 @@ permalink: "/docs/history/"
- Add `jekyll-timeago` to list of third-party plugins. ([#1260]({{ site.repository }}/issues/1260))
- Add `jekyll-swfobject` to list of third-party plugins. ([#1263]({{ site.repository }}/issues/1263))
- Add `jekyll-picture-tag` to list of third-party plugins. ([#1280]({{ site.repository }}/issues/1280))
-- Update the GitHub Pages documentation regarding relative URLs
- ([#1291]({{ site.repository }}/issues/1291))
+- Update the GitHub Pages documentation regarding relative URLs ([#1291]({{ site.repository }}/issues/1291))
- Update the S3 deployment documentation ([#1294]({{ site.repository }}/issues/1294))
- Add suggestion for Xcode CLT install to troubleshooting page in docs ([#1296]({{ site.repository }}/issues/1296))
- Add 'Working with drafts' page to docs ([#1289]({{ site.repository }}/issues/1289))
-- Add information about time zones to the documentation for a page's
- date ([#1304]({{ site.repository }}/issues/1304))
+- Add information about time zones to the documentation for a page's date ([#1304]({{ site.repository }}/issues/1304))
## 1.0.3 / 2013-06-07
@@ -1461,6 +1438,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-0-3}
+
- Add support to gist tag for private gists. ([#1189]({{ site.repository }}/issues/1189))
- Fail loudly when Maruku errors out ([#1190]({{ site.repository }}/issues/1190))
- Move the building of related posts into their own class ([#1057]({{ site.repository }}/issues/1057))
@@ -1470,17 +1448,17 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-0-3}
+
- Fix typo in Stevenson constant "ERROR". ([#1166]({{ site.repository }}/issues/1166))
- Rename Jekyll::Logger to Jekyll::Stevenson to fix inheritance issue ([#1106]({{ site.repository }}/issues/1106))
- Exit with a non-zero exit code when dealing with a Liquid error ([#1121]({{ site.repository }}/issues/1121))
-- Make the `exclude` and `include` options backwards compatible with
- versions of Jekyll prior to 1.0 ([#1114]({{ site.repository }}/issues/1114))
+- Make the `exclude` and `include` options backwards compatible with versions of Jekyll prior to 1.0 ([#1114]({{ site.repository }}/issues/1114))
- Fix pagination on Windows ([#1063]({{ site.repository }}/issues/1063))
-- Fix the application of Pygments' Generic Output style to Go code
- ([#1156]({{ site.repository }}/issues/1156))
+- Fix the application of Pygments' Generic Output style to Go code ([#1156]({{ site.repository }}/issues/1156))
### Site Enhancements
{: #site-enhancements-v1-0-3}
+
- Add a Pro Tip to docs about front matter variables being optional ([#1147]({{ site.repository }}/issues/1147))
- Add changelog to site as History page in /docs/ ([#1065]({{ site.repository }}/issues/1065))
- Add note to Upgrading page about new config options in 1.0.x ([#1146]({{ site.repository }}/issues/1146))
@@ -1494,13 +1472,13 @@ permalink: "/docs/history/"
- Fix logic for `relative_permalinks` instructions on Upgrading page ([#1101]({{ site.repository }}/issues/1101))
- Add docs for post excerpt ([#1072]({{ site.repository }}/issues/1072))
- Add docs for gist tag ([#1072]({{ site.repository }}/issues/1072))
-- Add docs indicating that Pygments does not need to be installed
- separately ([#1099]({{ site.repository }}/issues/1099), [#1119]({{ site.repository }}/issues/1119))
+- Add docs indicating that Pygments does not need to be installed separately ([#1099]({{ site.repository }}/issues/1099), [#1119]({{ site.repository }}/issues/1119))
- Update the migrator docs to be current ([#1136]({{ site.repository }}/issues/1136))
- Add the Jekyll Gallery Plugin to the plugin list ([#1143]({{ site.repository }}/issues/1143))
### Development Fixes
{: #development-fixes-v1-0-3}
+
- Use Jekyll.logger instead of Jekyll::Stevenson to log things ([#1149]({{ site.repository }}/issues/1149))
- Fix pesky Cucumber infinite loop ([#1139]({{ site.repository }}/issues/1139))
- Do not write posts with timezones in Cucumber tests ([#1124]({{ site.repository }}/issues/1124))
@@ -1512,11 +1490,13 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-0-2}
+
- Add `jekyll doctor` command to check site for any known compatibility problems ([#1081]({{ site.repository }}/issues/1081))
- Backwards-compatibilize relative permalinks ([#1081]({{ site.repository }}/issues/1081))
### Minor Enhancements
{: #minor-enhancements-v1-0-2}
+
- Add a `data-lang=""` attribute to Redcarpet code blocks ([#1066]({{ site.repository }}/issues/1066))
- Deprecate old config `server_port`, match to `port` if `port` isn't set ([#1084]({{ site.repository }}/issues/1084))
- Update pygments.rb version to 0.5.0 ([#1061]({{ site.repository }}/issues/1061))
@@ -1524,11 +1504,13 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v1-0-2}
+
- Fix issue when categories are numbers ([#1078]({{ site.repository }}/issues/1078))
- Catching that Redcarpet gem isn't installed ([#1059]({{ site.repository }}/issues/1059))
### Site Enhancements
{: #site-enhancements-v1-0-2}
+
- Add documentation about `relative_permalinks` ([#1081]({{ site.repository }}/issues/1081))
- Remove pygments-installation instructions, as pygments.rb is bundled with it ([#1079]({{ site.repository }}/issues/1079))
- Move pages to be Pages for realz ([#985]({{ site.repository }}/issues/985))
@@ -1540,12 +1522,14 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-0-1}
+
- Do not force use of `toc_token` when using `generate_tok` in RDiscount ([#1048]({{ site.repository }}/issues/1048))
- Add newer `language-` class name prefix to code blocks ([#1037]({{ site.repository }}/issues/1037))
- Commander error message now preferred over process abort with incorrect args ([#1040]({{ site.repository }}/issues/1040))
### Bug Fixes
{: #bug-fixes-v1-0-1}
+
- Make Redcarpet respect the pygments configuration option ([#1053]({{ site.repository }}/issues/1053))
- Fix the index build with LSI ([#1045]({{ site.repository }}/issues/1045))
- Don't print deprecation warning when no arguments are specified. ([#1041]({{ site.repository }}/issues/1041))
@@ -1553,6 +1537,7 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-0-1}
+
- Changed https to http in the GitHub Pages link ([#1051]({{ site.repository }}/issues/1051))
- Remove CSS cruft, fix typos, fix HTML errors ([#1028]({{ site.repository }}/issues/1028))
- Removing manual install of Pip and Distribute ([#1025]({{ site.repository }}/issues/1025))
@@ -1560,6 +1545,7 @@ permalink: "/docs/history/"
### Development Fixes
{: #development-fixes-v1-0-1}
+
- Markdownify history file ([#1027]({{ site.repository }}/issues/1027))
- Update links on README to point to new jekyllrb.com ([#1018]({{ site.repository }}/issues/1018))
@@ -1569,6 +1555,7 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v1-0-0}
+
- Add `jekyll new` subcommand: generate a Jekyll scaffold ([#764]({{ site.repository }}/issues/764))
- Refactored Jekyll commands into subcommands: build, serve, and migrate. ([#690]({{ site.repository }}/issues/690))
- Removed importers/migrators from main project, migrated to jekyll-import sub-gem ([#793]({{ site.repository }}/issues/793))
@@ -1577,6 +1564,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v1-0-0}
+
- Site template HTML5-ified ([#964]({{ site.repository }}/issues/964))
- Use post's directory path when matching for the `post_url` tag ([#998]({{ site.repository }}/issues/998))
- Loosen dependency on Pygments so it's only required when it's needed ([#1015]({{ site.repository }}/issues/1015))
@@ -1616,8 +1604,7 @@ permalink: "/docs/history/"
- Massively accelerate LSI performance ([#664]({{ site.repository }}/issues/664))
- Truncate post slugs when importing from Tumblr ([#496]({{ site.repository }}/issues/496))
- Add glob support to include, exclude option ([#743]({{ site.repository }}/issues/743))
-- Layout of Page or Post defaults to 'page' or 'post', respectively ([#580]({{ site.repository }}/issues/580))
- REPEALED by ([#977]({{ site.repository }}/issues/977))
+- Layout of Page or Post defaults to 'page' or 'post', respectively ([#580]({{ site.repository }}/issues/580)) REPEALED by ([#977]({{ site.repository }}/issues/977))
- "Keep files" feature ([#685]({{ site.repository }}/issues/685))
- Output full path & name for files that don't parse ([#745]({{ site.repository }}/issues/745))
- Add source and destination directory protection ([#535]({{ site.repository }}/issues/535))
@@ -1643,8 +1630,7 @@ permalink: "/docs/history/"
- Fixed Page#dir and Page#url for edge cases ([#536]({{ site.repository }}/issues/536))
- Fix broken `post_url` with posts with a time in their YAML front matter ([#831]({{ site.repository }}/issues/831))
- Look for plugins under the source directory ([#654]({{ site.repository }}/issues/654))
-- Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long
- post names ([#775]({{ site.repository }}/issues/775))
+- Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long post names ([#775]({{ site.repository }}/issues/775))
- Force Categories to be Strings ([#767]({{ site.repository }}/issues/767))
- Safe YAML plugin to prevent vulnerability ([#777]({{ site.repository }}/issues/777))
- Add SVG support to Jekyll/WEBrick. ([#407]({{ site.repository }}/issues/407), [#406]({{ site.repository }}/issues/406))
@@ -1652,6 +1638,7 @@ permalink: "/docs/history/"
### Site Enhancements
{: #site-enhancements-v1-0-0}
+
- Responsify ([#860]({{ site.repository }}/issues/860))
- Fix spelling, punctuation and phrasal errors ([#989]({{ site.repository }}/issues/989))
- Update quickstart instructions with `new` command ([#966]({{ site.repository }}/issues/966))
@@ -1663,15 +1650,14 @@ permalink: "/docs/history/"
### Development Fixes
{: #development-fixes-v1-0-0}
+
- Exclude Cucumber 1.2.4, which causes tests to fail in 1.9.2 ([#938]({{ site.repository }}/issues/938))
-- Added "features:html" rake task for debugging purposes, cleaned up
- Cucumber profiles ([#832]({{ site.repository }}/issues/832))
+- Added "features:html" rake task for debugging purposes, cleaned up Cucumber profiles ([#832]({{ site.repository }}/issues/832))
- Explicitly require HTTPS rubygems source in Gemfile ([#826]({{ site.repository }}/issues/826))
- Changed Ruby version for development to 1.9.3-p374 from p362 ([#801]({{ site.repository }}/issues/801))
- Including a link to the GitHub Ruby style guide in CONTRIBUTING.md ([#806]({{ site.repository }}/issues/806))
- Added script/bootstrap ([#776]({{ site.repository }}/issues/776))
-- Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version
- of greater than 1.9 ([#771]({{ site.repository }}/issues/771))
+- Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version of greater than 1.9 ([#771]({{ site.repository }}/issues/771))
- Switch to Simplecov for coverage report ([#765]({{ site.repository }}/issues/765))
@@ -1680,6 +1666,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-12-1}
+
- Update Kramdown version to 0.14.1 ([#744]({{ site.repository }}/issues/744))
- Test Enhancements
- Update Rake version to 10.0.3 ([#744]({{ site.repository }}/issues/744))
@@ -1692,6 +1679,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-12-0}
+
- Add ability to explicitly specify included files ([#261]({{ site.repository }}/issues/261))
- Add `--default-mimetype` option ([#279]({{ site.repository }}/issues/279))
- Allow setting of RedCloth options ([#284]({{ site.repository }}/issues/284))
@@ -1713,12 +1701,14 @@ permalink: "/docs/history/"
## 0.11.2 / 2011-12-27
{: #v0-11-2}
+
- Bug Fixes
- Fix gemspec
## 0.11.1 / 2011-12-27
{: #v0-11-1}
+
- Bug Fixes
- Fix extra blank line in highlight blocks ([#409]({{ site.repository }}/issues/409))
- Update dependencies
@@ -1729,6 +1719,7 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-11-0}
+
- Add command line importer functionality ([#253]({{ site.repository }}/issues/253))
- Add Redcarpet Markdown support ([#318]({{ site.repository }}/issues/318))
- Make markdown/textile extensions configurable ([#312]({{ site.repository }}/issues/312))
@@ -1736,6 +1727,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-11-0}
+
- Switch to Albino gem
- Bundler support
- Use English library to avoid hoops ([#292]({{ site.repository }}/issues/292))
@@ -1751,6 +1743,7 @@ permalink: "/docs/history/"
## 0.10.0 / 2010-12-16
{: #v0-10-0}
+
- Bug Fixes
- Add `--no-server` option.
@@ -1760,6 +1753,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-9-0}
+
- Use OptionParser's `[no-]` functionality for better boolean parsing.
- Add Drupal migrator ([#245]({{ site.repository }}/issues/245))
- Complain about YAML and Liquid errors ([#249]({{ site.repository }}/issues/249))
@@ -1772,6 +1766,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-8-0}
+
- Add wordpress.com importer ([#207]({{ site.repository }}/issues/207))
- Add `--limit-posts` cli option ([#212]({{ site.repository }}/issues/212))
- Add `uri_escape` filter ([#234]({{ site.repository }}/issues/234))
@@ -1789,6 +1784,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-7-0}
+
- Add support for rdiscount extensions ([#173]({{ site.repository }}/issues/173))
- Bug Fixes
- Highlight should not be able to render local files
@@ -1797,6 +1793,7 @@ permalink: "/docs/history/"
## 0.6.2 / 2010-06-25
{: #v0-6-2}
+
- Bug Fixes
- Fix Rakefile 'release' task (tag pushing was missing origin)
- Ensure that RedCloth is loaded when textilize filter is used ([#183]({{ site.repository }}/issues/183))
@@ -1806,6 +1803,7 @@ permalink: "/docs/history/"
## 0.6.1 / 2010-06-24
{: #v0-6-1}
+
- Bug Fixes
- Fix Markdown Pygments prefix and suffix ([#178]({{ site.repository }}/issues/178))
@@ -1815,19 +1813,18 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-6-0}
+
- Proper plugin system ([#19]({{ site.repository }}/issues/19), [#100]({{ site.repository }}/issues/100))
- Add safe mode so unsafe converters/generators can be added
-- Maruku is now the only processor dependency installed by default.
- Other processors will be lazy-loaded when necessary (and prompt the
- user to install them when necessary) ([#57]({{ site.repository }}/issues/57))
+- Maruku is now the only processor dependency installed by default. Other processors will be lazy-loaded when necessary (and prompt the user to install them when necessary) ([#57]({{ site.repository }}/issues/57))
### Minor Enhancements
{: #minor-enhancements-v0-6-0}
+
- Inclusion/exclusion of future dated posts ([#59]({{ site.repository }}/issues/59))
- Generation for a specific time ([#59]({{ site.repository }}/issues/59))
- Allocate `site.time` on render not per site_payload invocation ([#59]({{ site.repository }}/issues/59))
-- Pages now present in the site payload and can be used through the
- `site.pages` and `site.html_pages` variables
+- Pages now present in the site payload and can be used through the `site.pages` and `site.html_pages` variables
- Generate phase added to site#process and pagination is now a generator
- Switch to RakeGem for build/test process
- Only regenerate static files when they have changed ([#142]({{ site.repository }}/issues/142))
@@ -1847,24 +1844,26 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-5-7}
+
- Allow overriding of post date in the front matter ([#62]({{ site.repository }}/issues/62), [#38]({{ site.repository }}/issues/38))
- Bug Fixes
- Categories isn't always an array ([#73]({{ site.repository }}/issues/73))
- Empty tags causes error in read_posts ([#84]({{ site.repository }}/issues/84))
- Fix pagination to adhere to read/render/write paradigm
- Test Enhancement
-- Cucumber features no longer use site.posts.first where a better
- alternative is available
+- Cucumber features no longer use site.posts.first where a better alternative is available
## 0.5.6 / 2010-01-08
{: #v0-5-6}
+
- Bug Fixes
- Require redcloth >= 4.2.1 in tests ([#92]({{ site.repository }}/issues/92))
- Don't break on triple dashes in yaml front matter ([#93]({{ site.repository }}/issues/93))
### Minor Enhancements
{: #minor-enhancements-v0-5-6}
+
- Allow .mkd as markdown extension
- Use $stdout/err instead of constants ([#99]({{ site.repository }}/issues/99))
- Properly wrap code blocks ([#91]({{ site.repository }}/issues/91))
@@ -1873,52 +1872,42 @@ permalink: "/docs/history/"
## 0.5.5 / 2010-01-08
{: #v0-5-5}
+
- Bug Fixes
- Fix pagination % 0 bug ([#78]({{ site.repository }}/issues/78))
-- Ensure all posts are processed first ([#71]({{ site.repository }}/issues/71))
-
-
-## NOTE
-- After this point I will no longer be giving credit in the history;
- that is what the commit log is for.
+- Ensure all posts are processed first ([#71]({{ site.repository }}/issues/71)) ## NOTE
+- After this point I will no longer be giving credit in the history; that is what the commit log is for.
## 0.5.4 / 2009-08-23
{: #v0-5-4}
+
- Bug Fixes
- Do not allow symlinks (security vulnerability)
## 0.5.3 / 2009-07-14
{: #v0-5-3}
+
- Bug Fixes
-- Solving the permalink bug where non-html files wouldn't work
- ([@jeffrydegrande](https://github.com/jeffrydegrande))
+- Solving the permalink bug where non-html files wouldn't work ([@jeffrydegrande](https://github.com/jeffrydegrande))
## 0.5.2 / 2009-06-24
{: #v0-5-2}
+
- Enhancements
-- Added --paginate option to the executable along with a paginator object
- for the payload ([@calavera](https://github.com/calavera))
-- Upgraded RedCloth to 4.2.1, which makes `` tags work once
- again.
-- Configuration options set in config.yml are now available through the
- site payload ([@vilcans](https://github.com/vilcans))
-- Posts can now have an empty YAML front matter or none at all
- (@ bahuvrihi)
+- Added --paginate option to the executable along with a paginator object for the payload ([@calavera](https://github.com/calavera))
+- Upgraded RedCloth to 4.2.1, which makes `` tags work once again.
+- Configuration options set in config.yml are now available through the site payload ([@vilcans](https://github.com/vilcans))
+- Posts can now have an empty YAML front matter or none at all (@ bahuvrihi)
- Bug Fixes
-- Fixing Ruby 1.9 issue that requires `#to_s` on the err object
- ([@Chrononaut](https://github.com/Chrononaut))
+- Fixing Ruby 1.9 issue that requires `#to_s` on the err object ([@Chrononaut](https://github.com/Chrononaut))
- Fixes for pagination and ordering posts on the same day ([@ujh](https://github.com/ujh))
-- Made pages respect permalinks style and permalinks in yml front matter
- ([@eugenebolshakov](https://github.com/eugenebolshakov))
-- Index.html file should always have index.html permalink
- ([@eugenebolshakov](https://github.com/eugenebolshakov))
-- Added trailing slash to pretty permalink style so Apache is happy
- ([@eugenebolshakov](https://github.com/eugenebolshakov))
-- Bad markdown processor in config fails sooner and with better message
- (@ gcnovus)
+- Made pages respect permalinks style and permalinks in yml front matter ([@eugenebolshakov](https://github.com/eugenebolshakov))
+- Index.html file should always have index.html permalink ([@eugenebolshakov](https://github.com/eugenebolshakov))
+- Added trailing slash to pretty permalink style so Apache is happy ([@eugenebolshakov](https://github.com/eugenebolshakov))
+- Bad markdown processor in config fails sooner and with better message (@ gcnovus)
- Allow CRLFs in yaml front matter ([@juretta](https://github.com/juretta))
- Added Date#xmlschema for Ruby versions < 1.9
@@ -1928,16 +1917,15 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-5-1}
+
- Next/previous posts in site payload ([@pantulis](https://github.com/pantulis), [@tomo](https://github.com/tomo))
- Permalink templating system
- Moved most of the README out to the GitHub wiki
-- Exclude option in configuration so specified files won't be brought over
- with generated site ([@duritong](https://github.com/duritong))
+- Exclude option in configuration so specified files won't be brought over with generated site ([@duritong](https://github.com/duritong))
- Bug Fixes
- Making sure config.yaml references are all gone, using only config.yml
- Fixed syntax highlighting breaking for UTF-8 code ([@henrik](https://github.com/henrik))
-- Worked around RDiscount bug that prevents Markdown from getting parsed
- after highlight ([@henrik](https://github.com/henrik))
+- Worked around RDiscount bug that prevents Markdown from getting parsed after highlight ([@henrik](https://github.com/henrik))
- CGI escaped post titles ([@Chrononaut](https://github.com/Chrononaut))
@@ -1946,6 +1934,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v0-5-0}
+
- Ability to set post categories via YAML ([@qrush](https://github.com/qrush))
- Ability to set prevent a post from publishing via YAML ([@qrush](https://github.com/qrush))
- Add textilize filter ([@willcodeforfoo](https://github.com/willcodeforfoo))
@@ -1967,6 +1956,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v--}
+
- Changed date format on wordpress converter (zeropadding) ([@dysinger](https://github.com/dysinger))
- Bug Fixes
- Add Jekyll binary as executable to gemspec ([@dysinger](https://github.com/dysinger))
@@ -1977,10 +1967,12 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-4-0}
+
- Switch to Jeweler for packaging tasks
### Minor Enhancements
{: #minor-enhancements-v0-4-0}
+
- Type importer ([@codeslinger](https://github.com/codeslinger))
- `site.topics` accessor ([@baz](https://github.com/baz))
- Add `array_to_sentence_string` filter ([@mchung](https://github.com/mchung))
@@ -2002,43 +1994,46 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-3-0}
-- Added `--server` option to start a simple WEBrick server on destination
- directory ([@johnreilly](https://github.com/johnreilly) and [@mchung](https://github.com/mchung))
+
+- Added `--server` option to start a simple WEBrick server on destination directory ([@johnreilly](https://github.com/johnreilly) and [@mchung](https://github.com/mchung))
### Minor Enhancements
{: #minor-enhancements-v0-3-0}
+
- Added post categories based on directories containing `_posts` ([@mreid](https://github.com/mreid))
- Added post topics based on directories underneath `_posts`
- Added new date filter that shows the full month name ([@mreid](https://github.com/mreid))
- Merge Post's YAML front matter into its to_liquid payload ([@remi](https://github.com/remi))
- Restrict includes to regular files underneath `_includes`
- Bug Fixes
-- Change YAML delimiter matcher so as to not chew up 2nd level markdown
- headers ([@mreid](https://github.com/mreid))
-- Fix bug that meant page data (such as the date) was not available in
- templates ([@mreid](https://github.com/mreid))
+- Change YAML delimiter matcher so as to not chew up 2nd level markdown headers ([@mreid](https://github.com/mreid))
+- Fix bug that meant page data (such as the date) was not available in templates ([@mreid](https://github.com/mreid))
- Properly reject directories in `_layouts`
## 0.2.1 / 2008-12-15
{: #v0-2-1}
+
- Major Changes
- Use Maruku (pure Ruby) for Markdown by default ([@mreid](https://github.com/mreid))
- Allow use of RDiscount with `--rdiscount` flag
### Minor Enhancements
{: #minor-enhancements-v0-2-1}
+
- Don't load directory_watcher unless it's needed ([@pjhyett](https://github.com/pjhyett))
## 0.2.0 / 2008-12-14
{: #v0-2-0}
+
- Major Changes
- related_posts is now found in `site.related_posts`
## 0.1.6 / 2008-12-13
{: #v0-1-6}
+
- Major Features
- Include files in `_includes` with {% raw %}`{% include x.textile %}`{% endraw %}
@@ -2048,11 +2043,13 @@ permalink: "/docs/history/"
### Major Enhancements
{: #major-enhancements-v0-1-5}
+
- Code highlighting with Pygments if `--pygments` is specified
- Disable true LSI by default, enable with `--lsi`
### Minor Enhancements
{: #minor-enhancements-v0-1-5}
+
- Output informative message if RDiscount is not available ([@JackDanger](https://github.com/JackDanger))
- Bug Fixes
- Prevent Jekyll from picking up the output directory as a source ([@JackDanger](https://github.com/JackDanger))
@@ -2061,12 +2058,14 @@ permalink: "/docs/history/"
## 0.1.4 / 2008-12-08
{: #v0-1-4}
+
- Bug Fixes
- DATA does not work properly with rubygems
## 0.1.3 / 2008-12-06
{: #v0-1-3}
+
- Major Features
- Markdown support ([@vanpelt](https://github.com/vanpelt))
- Mephisto and CSV converters ([@vanpelt](https://github.com/vanpelt))
@@ -2078,21 +2077,23 @@ permalink: "/docs/history/"
## 0.1.2 / 2008-11-22
{: #v0-1-2}
+
- Major Features
- Add a real "related posts" implementation using Classifier
- Command Line Changes
-- Allow cli to be called with 0, 1, or 2 args intuiting dir paths
- if they are omitted
+- Allow cli to be called with 0, 1, or 2 args intuiting dir paths if they are omitted
## 0.1.1 / 2008-11-22
{: #v0-1-1}
+
- Minor Additions
- Posts now support introspectional data e.g. {% raw %}`{{ page.url }}`{% endraw %}
## 0.1.0 / 2008-11-05
{: #v0-1-0}
+
- First release
- Converts posts written in Textile
- Converts regular site pages
@@ -2101,4 +2102,5 @@ permalink: "/docs/history/"
## 0.0.0 / 2008-10-19
{: #v0-0-0}
+
- Birthday!
From 1583b26627d948e68c32269a66dd528eda798a72 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Mon, 11 Jan 2016 16:45:50 -0600
Subject: [PATCH 0270/4996] Update jekyll-feed.
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 2c0d7e8a598..0abe7065947 100644
--- a/Gemfile
+++ b/Gemfile
@@ -45,7 +45,7 @@ end
gem 'jekyll-paginate', '~> 1.0'
gem 'jekyll-coffeescript', '~> 1.0'
-gem 'jekyll-feed', '~> 0.1.3'
+gem 'jekyll-feed', '~> 0.4.0'
gem 'jekyll-redirect-from', '~> 0.9.1'
gem 'jekyll-gist', '~> 1.0'
gem 'mime-types', '~> 3.0'
From ba017ebb97f3eb328fdbc7dcf6e771039cf31cca Mon Sep 17 00:00:00 2001
From: Pat Hawks
Date: Mon, 11 Jan 2016 22:32:04 -0800
Subject: [PATCH 0271/4996] Remove old Fixme note
---
test/helper.rb | 3 ---
1 file changed, 3 deletions(-)
diff --git a/test/helper.rb b/test/helper.rb
index 32363369e7e..936638d230f 100644
--- a/test/helper.rb
+++ b/test/helper.rb
@@ -35,9 +35,6 @@ def jruby?
include Jekyll
-# FIXME: If we really need this we lost the game.
-# STDERR.reopen(test(?e, '/dev/null') ? '/dev/null' : 'NUL:')
-
# Report with color.
Minitest::Reporters.use! [
Minitest::Reporters::DefaultReporter.new(
From 4595aab85583d68ef3abf728695c32ca5bf81541 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 12 Jan 2016 01:00:42 -0600
Subject: [PATCH 0272/4996] Update history.makrdown to reflect the merger of
#4349.
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index ab1d5139c67..8fb5a685270 100644
--- a/History.markdown
+++ b/History.markdown
@@ -54,6 +54,7 @@
* Add script/travis so all people can play with Travis-CI images. (#4338)
* Move Cucumber to using RSpec-Expections and furthering JRuby support. (#4343)
* Rearrange Cucumber and add some flair. (#4347)
+ * Remove old FIXME (#4349)
### Site Enhancements
From 712c16a7f10484ad9be92d612f36cbb43ec419d9 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 12 Jan 2016 06:54:45 -0600
Subject: [PATCH 0273/4996] Try to cleanup the Gemfile... again.
The problem last time was that we removed Pry and Pry brings in CodeRay, we were
testing legacy stuff and didn't have CodeRay in our dependencies, which resulted
in those tests failing.
This also quietly announces the intention to move to RSpec by moving the old
test dependencies to ":test_legacy" and is slightly less agressive in it's
organization than before.
---
.travis.yml | 5 ++-
Gemfile | 100 +++++++++++++++++++++++++++++---------------------
script/travis | 8 +++-
3 files changed, 68 insertions(+), 45 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 4bba7a8dca9..fafd57c396b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
-cache: bundler
-script: script/cibuild
+bundler_args: --without benchmark:site:development
before_script: bundle update
+script: script/cibuild
+cache: bundler
language: ruby
sudo: false
diff --git a/Gemfile b/Gemfile
index 0abe7065947..16470f69c0e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,60 +1,78 @@
-source 'https://rubygems.org'
-gemspec name: 'jekyll'
+source "https://rubygems.org"
+gemspec :name => "jekyll"
-gem 'rake', '~> 10.1'
+gem "rake", "~> 10.1"
group :development do
- gem 'rdoc', '~> 4.2'
- gem 'launchy', '~> 2.3'
- gem 'toml', '~> 0.1.0'
gem "rubocop"
- gem 'pry'
+ gem "launchy", "~> 2.3"
+ gem "pry"
end
+#
+
group :test do
- gem 'rspec-expectations'
- gem 'redgreen', '~> 1.2'
- gem 'shoulda', '~> 3.5'
- gem 'cucumber', '~> 2.1'
- gem 'simplecov', '~> 0.9'
- gem 'jekyll_test_plugin'
- gem 'jekyll_test_plugin_malicious'
+ gem "cucumber"
+ gem "jekyll_test_plugin"
+ gem "jekyll_test_plugin_malicious"
gem "codeclimate-test-reporter"
- gem 'minitest-reporters'
- gem 'minitest-profile'
- gem 'rspec-mocks'
- gem 'minitest'
- gem 'nokogiri'
+ gem "rspec-mocks"
+ gem "nokogiri"
+ gem "rspec"
+end
+
+#
+group :test_legacy do
if RUBY_PLATFORM =~ /cygwin/ || RUBY_VERSION.start_with?("2.2")
gem 'test-unit'
end
- if ENV['PROOF']
- gem 'html-proofer', '~> 2.0'
- end
+ gem "redgreen"
+ gem "simplecov"
+ gem "minitest-reporters"
+ gem "minitest-profile"
+ gem "minitest"
+ gem "shoulda"
end
+#
+
group :benchmark do
- if ENV['BENCHMARK']
- gem 'ruby-prof'
- gem 'rbtrace'
- gem 'stackprof'
- gem 'benchmark-ips'
+ if ENV["BENCHMARK"]
+ gem "ruby-prof"
+ gem "benchmark-ips"
+ gem "stackprof"
+ gem "rbtrace"
+ end
+end
+
+#
+
+group :jekyll_optional_dependencies do
+ gem "toml", "~> 0.1.0"
+ gem "coderay", "~> 1.1.0"
+ gem "jekyll-gist", "~> 1.0"
+ gem "jekyll-feed", "~> 0.1.3"
+ gem "jekyll-coffeescript", "~> 1.0"
+ gem "jekyll-redirect-from", "~> 0.9.1"
+ gem "jekyll-paginate", "~> 1.0"
+ gem "mime-types", "~> 3.0"
+ gem "kramdown", "~> 1.9"
+ gem "rdoc", "~> 4.2"
+
+ platform :ruby, :mswin, :mingw do
+ gem "rdiscount", "~> 2.0"
+ gem "pygments.rb", "~> 0.6.0"
+ gem "redcarpet", "~> 3.2", ">= 3.2.3"
+ gem "classifier-reborn", "~> 2.0"
+ gem "liquid-c", "~> 3.0"
end
end
-gem 'jekyll-paginate', '~> 1.0'
-gem 'jekyll-coffeescript', '~> 1.0'
-gem 'jekyll-feed', '~> 0.4.0'
-gem 'jekyll-redirect-from', '~> 0.9.1'
-gem 'jekyll-gist', '~> 1.0'
-gem 'mime-types', '~> 3.0'
-gem 'kramdown', '~> 1.9'
-
-platform :ruby, :mswin, :mingw do
- gem 'rdiscount', '~> 2.0'
- gem 'pygments.rb', '~> 0.6.0'
- gem 'redcarpet', '~> 3.2', '>= 3.2.3'
- gem 'classifier-reborn', '~> 2.0'
- gem 'liquid-c', '~> 3.0'
+#
+
+group :site do
+ if ENV["PROOF"]
+ gem "html-proofer", "~> 2.0"
+ end
end
diff --git a/script/travis b/script/travis
index 826ffa767ca..4d62fa9ba78 100755
--- a/script/travis
+++ b/script/travis
@@ -16,14 +16,18 @@ status=0
if [ $# -eq 2 ]; then
docker exec -it docker-travis bash -ilc " \
rvm use --install --binary --fuzzy $1
- bundle install --path vendor/bundle -j 256
+ bundle install --path vendor/bundle -j 12 \\
+ --without benchmark:site:development
+ bundle clean
script/test $2
" || status=$?
elif [ $# -eq 1 ]; then
docker exec -it docker-travis bash -ilc " \
rvm use --install --binary --fuzzy $1
- bundle install --path vendor/bundle -j 256
+ bundle install --path vendor/bundle -j 12 \\
+ --without benchmark:site:development
+ bundle clean
bundle exec rake
" || status=$?
From 5555db8c7294069b080750ae45ef2fa078404da6 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 12 Jan 2016 06:59:09 -0600
Subject: [PATCH 0274/4996] Start using Rubocop from Github, it supports our
config.
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 16470f69c0e..8e2d51eeafa 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,8 +3,8 @@ gemspec :name => "jekyll"
gem "rake", "~> 10.1"
group :development do
- gem "rubocop"
gem "launchy", "~> 2.3"
+ gem "rubocop", :branch => :master, :github => "bbatsov/rubocop"
gem "pry"
end
From 4048b8e2a735565de2f515f55036c859415a06ae Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 12 Jan 2016 08:28:10 -0800
Subject: [PATCH 0275/4996] Update history to reflect merge of #4350 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 8fb5a685270..14e016a299d 100644
--- a/History.markdown
+++ b/History.markdown
@@ -55,6 +55,7 @@
* Move Cucumber to using RSpec-Expections and furthering JRuby support. (#4343)
* Rearrange Cucumber and add some flair. (#4347)
* Remove old FIXME (#4349)
+ * Clean up the Gemfile (and keep all the necessary dependencies) (#4350)
### Site Enhancements
From 54b63958069765c18782fec3e325658b2c9ca80f Mon Sep 17 00:00:00 2001
From: musoke
Date: Fri, 15 Jan 2016 12:12:29 +1300
Subject: [PATCH 0276/4996] Correct typo in ### Precdence
The Precedence section referred to the "last example" where it should have referred to the "second to last."
---
site/_docs/configuration.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md
index a12b2e265d3..f4327d3597c 100644
--- a/site/_docs/configuration.md
+++ b/site/_docs/configuration.md
@@ -506,7 +506,7 @@ In this example the `layout` is set to `default` inside the [collection](../coll
Jekyll will apply all of the configuration settings you specify in the `defaults` section of your `_config.yml` file. However, you can choose to override settings from other scope/values pair by specifying a more specific path for the scope.
-You can see that in the last example above. First, we set the default layout to `my-site`. Then, using a more specific path, we set the default layout for files in the `projects/` path to `project`. This can be done with any value that you would set in the page or post front matter.
+You can see that in the second to last example above. First, we set the default layout to `my-site`. Then, using a more specific path, we set the default layout for files in the `projects/` path to `project`. This can be done with any value that you would set in the page or post front matter.
Finally, if you set defaults in the site configuration by adding a `defaults` section to your `_config.yml` file, you can override those settings in a post or page file. All you need to do is specify the settings in the post or page front matter. For example:
From 9368e261cc7eb4bf5d23b7f15371e132b5c7c1be Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Thu, 14 Jan 2016 16:36:11 -0800
Subject: [PATCH 0277/4996] Update history to reflect merge of #4355 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 14e016a299d..e818595532a 100644
--- a/History.markdown
+++ b/History.markdown
@@ -81,6 +81,7 @@
* Fix grammar in the documentation for posts. (#4330)
* Add documentation for smartify Liquid filter (#4333)
* Fixed broken link to blog on using mathjax with jekyll (#4344)
+ * Documentation: correct reference in Precedence section of Configuration docs (#4355)
## 3.0.1 / 2015-11-17
From f8a63157d797d16716266f46dd29e0def64a0000 Mon Sep 17 00:00:00 2001
From: Pedro Euko
Date: Mon, 28 Sep 2015 13:58:50 -0300
Subject: [PATCH 0278/4996] Empty permalink now shows an error
---
lib/jekyll/convertible.rb | 13 +++++++++++++
test/fixtures/empty_permalink.erb | 4 ++++
test/test_convertible.rb | 9 +++++++++
3 files changed, 26 insertions(+)
create mode 100644 test/fixtures/empty_permalink.erb
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 746f4bd1529..5406f13de7e 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -61,6 +61,10 @@ def read_yaml(base, name, opts = {})
Jekyll.logger.abort_with "Fatal:", "Invalid YAML front matter in #{File.join(base, name)}"
end
+ unless valid_permalink?(self.data['permalink'])
+ Jekyll.logger.error "Error:", "Invalid permalink in #{File.join(base, name)}"
+ end
+
self.data
end
@@ -266,6 +270,15 @@ def do_layout(payload, layouts)
Jekyll::Hooks.trigger hook_owner, :post_render, self
end
+ # Check data permalink
+ #
+ # permalink - the data permalink
+ #
+ # Returns true if the permalink is valid, false if otherwise
+ def valid_permalink?(permalink)
+ permalink.nil? || permalink.length > 0
+ end
+
# Write the generated page file to the destination directory.
#
# dest - The String path to the destination dir.
diff --git a/test/fixtures/empty_permalink.erb b/test/fixtures/empty_permalink.erb
new file mode 100644
index 00000000000..6dabf63b805
--- /dev/null
+++ b/test/fixtures/empty_permalink.erb
@@ -0,0 +1,4 @@
+---
+permalink: ''
+---
+Empty Permalink
diff --git a/test/test_convertible.rb b/test/test_convertible.rb
index 09c697374db..840fa323bd4 100644
--- a/test/test_convertible.rb
+++ b/test/test_convertible.rb
@@ -49,5 +49,14 @@ class TestConvertible < JekyllUnitTest
assert_match(/invalid byte sequence in UTF-8/, out)
assert_match(/#{File.join(@base, name)}/, out)
end
+
+ should "parse the front-matter but show an error if permalink is empty" do
+ name = 'empty_permalink.erb'
+ out = capture_stderr do
+ @convertible.read_yaml(@base, name)
+ end
+ assert_match(/Invalid permalink/, out)
+ assert_match(/#{File.join(@base, name)}/, out)
+ end
end
end
From 568174222382479fe7d63eee86632086d16daefa Mon Sep 17 00:00:00 2001
From: Pedro Euko
Date: Fri, 15 Jan 2016 14:04:16 -0200
Subject: [PATCH 0279/4996] Check if permalink key was given
---
lib/jekyll/convertible.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 5406f13de7e..23d338a3181 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -61,7 +61,7 @@ def read_yaml(base, name, opts = {})
Jekyll.logger.abort_with "Fatal:", "Invalid YAML front matter in #{File.join(base, name)}"
end
- unless valid_permalink?(self.data['permalink'])
+ if self.data['permalink'] && empty_permalink?(self.data['permalink'])
Jekyll.logger.error "Error:", "Invalid permalink in #{File.join(base, name)}"
end
@@ -275,8 +275,8 @@ def do_layout(payload, layouts)
# permalink - the data permalink
#
# Returns true if the permalink is valid, false if otherwise
- def valid_permalink?(permalink)
- permalink.nil? || permalink.length > 0
+ def empty_permalink?(permalink)
+ permalink.length == 0
end
# Write the generated page file to the destination directory.
From 156e093b5cca3b534c1bb7b3ad0493e8dbbdcc14 Mon Sep 17 00:00:00 2001
From: Pedro Euko
Date: Fri, 15 Jan 2016 14:34:39 -0200
Subject: [PATCH 0280/4996] Ensure no errors when there is no permalink
---
test/test_convertible.rb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/test/test_convertible.rb b/test/test_convertible.rb
index 840fa323bd4..0c5acf1a9ba 100644
--- a/test/test_convertible.rb
+++ b/test/test_convertible.rb
@@ -58,5 +58,12 @@ class TestConvertible < JekyllUnitTest
assert_match(/Invalid permalink/, out)
assert_match(/#{File.join(@base, name)}/, out)
end
+
+ should "parse the front-matter correctly whitout permalink" do
+ out = capture_stderr do
+ @convertible.read_yaml(@base, 'front_matter.erb')
+ end
+ refute_match(/Invalid permalink/, out)
+ end
end
end
From 3e81331af1beca5e99786f39ff3cdc73b3e017b7 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 10:00:45 -0800
Subject: [PATCH 0281/4996] Utils: don't require mime/types
---
lib/jekyll/utils.rb | 2 --
1 file changed, 2 deletions(-)
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 635b5d107d9..b6a05ff8cf6 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -1,5 +1,3 @@
-require 'mime/types'
-
module Jekyll
module Utils
extend self
From 22931f42b87e94d88216c3e08aba3d32dd91d43a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 10:00:56 -0800
Subject: [PATCH 0282/4996] Drop: require 'json' for #inspect call
---
lib/jekyll/drops/drop.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb
index a8342c14b44..b13db5ef43e 100644
--- a/lib/jekyll/drops/drop.rb
+++ b/lib/jekyll/drops/drop.rb
@@ -133,6 +133,7 @@ def to_h
#
# Returns a pretty generation of the hash representation of the Drop.
def inspect
+ require 'json'
JSON.pretty_generate to_h
end
From 5d79c55b2cee0aa19ca57ad331333edba9db47b7 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 10:52:18 -0800
Subject: [PATCH 0283/4996] Fix deep_merge_hashes! handling of drops and hashes
---
lib/jekyll/drops/drop.rb | 26 ++++++++++++++++++++++++++
lib/jekyll/utils.rb | 16 +++++++++-------
test/test_utils.rb | 4 ++--
3 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb
index b13db5ef43e..35f0df26e81 100644
--- a/lib/jekyll/drops/drop.rb
+++ b/lib/jekyll/drops/drop.rb
@@ -127,6 +127,7 @@ def to_h
result[key] = self[key]
end
end
+ alias_method :to_hash, :to_h
# Inspect the drop's keys and values through a JSON representation
# of its keys and values.
@@ -145,6 +146,31 @@ def inspect
def each_key(&block)
keys.each(&block)
end
+
+ def merge(other, &block)
+ self.dup.tap do |me|
+ if block.nil?
+ me.merge!(other)
+ else
+ me.merge!(other, block)
+ end
+ end
+ end
+
+ def merge!(other)
+ other.each_key do |key|
+ if block_given?
+ self[key] = yield key, self[key], other[key]
+ else
+ if Utils.mergable?(self[key]) && Utils.mergable?(other[key])
+ self[key] = Utils.deep_merge_hashes(self[key], other[key])
+ next
+ end
+
+ self[key] = other[key] unless other[key].nil?
+ end
+ end
+ end
end
end
end
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index b6a05ff8cf6..9ffff548e6f 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -31,14 +31,12 @@ def deep_merge_hashes(master_hash, other_hash)
#
# Thanks to whoever made it.
def deep_merge_hashes!(target, overwrite)
- overwrite.each_key do |key|
- if (overwrite[key].is_a?(Hash) || overwrite[key].is_a?(Drops::Drop)) &&
- (target[key].is_a?(Hash) || target[key].is_a?(Drops::Drop))
- target[key] = Utils.deep_merge_hashes(target[key], overwrite[key])
- next
+ target.merge!(overwrite) do |key, old_val, new_val|
+ if new_val.nil?
+ old_val
+ else
+ mergable?(old_val) && mergable?(new_val) ? deep_merge_hashes(old_val, new_val) : new_val
end
-
- target[key] = overwrite[key]
end
if target.respond_to?(:default_proc) && overwrite.respond_to?(:default_proc) && target.default_proc.nil?
@@ -48,6 +46,10 @@ def deep_merge_hashes!(target, overwrite)
target
end
+ def mergable?(value)
+ value.is_a?(Hash) || value.is_a?(Drops::Drop)
+ end
+
# Read array from the supplied hash favouring the singular key
# and then the plural key, and handling any nil entries.
#
diff --git a/test/test_utils.rb b/test/test_utils.rb
index 49844038229..d3720127098 100644
--- a/test/test_utils.rb
+++ b/test/test_utils.rb
@@ -13,7 +13,7 @@ class TestUtils < JekyllUnitTest
merged = Utils.deep_merge_hashes(data, @site.site_payload)
assert merged.is_a? Hash
assert merged["site"].is_a? Drops::SiteDrop
- assert_equal data["page"], {}
+ assert_equal data["page"], merged["page"]
end
should "merge a hash into a drop" do
@@ -22,7 +22,7 @@ class TestUtils < JekyllUnitTest
merged = Utils.deep_merge_hashes(@site.site_payload, data)
assert merged.is_a? Drops::UnifiedPayloadDrop
assert merged["site"].is_a? Drops::SiteDrop
- assert_equal data["page"], {}
+ assert_equal data["page"], merged["page"]
end
end
From 207fcbdef7ad7b0b72c48a806ba5af27525b13ca Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 11:23:09 -0800
Subject: [PATCH 0284/4996] Add byebug for debugging purposes.
---
.gitignore | 27 ++++++++++++++-------------
Gemfile | 1 +
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/.gitignore b/.gitignore
index 6441a147fd9..1d62ecc3876 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,22 @@
-Gemfile.lock
-test/dest
*.gem
-pkg/
*.swp
*~
-_site/
-.bundle/
.DS_Store
+.analysis
+.bundle/
+.byebug_history
+.jekyll-metadata
+.ruby-gemset
+.ruby-version
+.sass-cache
+/test/source/file_name.txt
+/vendor
+Gemfile.lock
+_site/
bbin/
+coverage
gh-pages/
+pkg/
site/_site/
-coverage
-.ruby-version
-.ruby-gemset
-.sass-cache
+test/dest
tmp/*
-.jekyll-metadata
-/vendor
-/test/source/file_name.txt
-.analysis
diff --git a/Gemfile b/Gemfile
index 8e2d51eeafa..9e4796e60ee 100644
--- a/Gemfile
+++ b/Gemfile
@@ -18,6 +18,7 @@ group :test do
gem "rspec-mocks"
gem "nokogiri"
gem "rspec"
+ gem "byebug"
end
#
From 0587a3bb57ba7d39e8f064e618163cf5c73d8cfc Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 11:30:02 -0800
Subject: [PATCH 0285/4996] Fix some debug logging.
- excluded? should now only print when it is excluded
- requiring is now properly aligned
---
lib/jekyll/entry_filter.rb | 2 +-
lib/jekyll/external.rb | 2 +-
site/_config.yml | 4 ++++
test/test_kramdown.rb | 2 +-
4 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/jekyll/entry_filter.rb b/lib/jekyll/entry_filter.rb
index e42701875df..6d42c067c55 100644
--- a/lib/jekyll/entry_filter.rb
+++ b/lib/jekyll/entry_filter.rb
@@ -47,7 +47,7 @@ def backup?(entry)
def excluded?(entry)
excluded = glob_include?(site.exclude, relative_to_source(entry))
- Jekyll.logger.debug "EntryFilter:", "excluded?(#{relative_to_source(entry)}) ==> #{excluded}"
+ Jekyll.logger.debug "EntryFilter:", "excluded #{relative_to_source(entry)}" if excluded
excluded
end
diff --git a/lib/jekyll/external.rb b/lib/jekyll/external.rb
index 2996d24b635..69b8d1eb391 100644
--- a/lib/jekyll/external.rb
+++ b/lib/jekyll/external.rb
@@ -39,7 +39,7 @@ def require_if_present(names, &block)
def require_with_graceful_fail(names)
Array(names).each do |name|
begin
- Jekyll.logger.debug("Requiring #{name}")
+ Jekyll.logger.debug "Requiring:", "#{name}"
require name
rescue LoadError => e
Jekyll.logger.error "Dependency Error:", <<-MSG
diff --git a/site/_config.yml b/site/_config.yml
index c065f9f7015..fc3f3484797 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -22,3 +22,7 @@ url: http://jekyllrb.com
gems:
- jekyll-feed
- jekyll-redirect-from
+
+exclude:
+ - README.md
+ - CNAME
diff --git a/test/test_kramdown.rb b/test/test_kramdown.rb
index 21ba5764ab1..d1668d2b31d 100644
--- a/test/test_kramdown.rb
+++ b/test/test_kramdown.rb
@@ -90,7 +90,7 @@ class TestKramdown < JekyllUnitTest
MARKDOWN
selector = "div.highlighter-coderay>div.CodeRay>div.code>pre"
- refute result.css(selector).empty?
+ refute result.css(selector).empty?, "pre tag should exist"
end
end
From ea9cac5214bb0bff25159421c72c2189caca31d1 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Fri, 15 Jan 2016 14:15:28 -0600
Subject: [PATCH 0286/4996] Add a nasty hack to reduce persistence until RSpec.
---
test/test_kramdown.rb | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/test/test_kramdown.rb b/test/test_kramdown.rb
index 21ba5764ab1..5836d369e55 100644
--- a/test/test_kramdown.rb
+++ b/test/test_kramdown.rb
@@ -37,6 +37,7 @@ class TestKramdown < JekyllUnitTest
should "support custom types" do
override = {
+ "highlighter" => nil,
'kramdown' => {
'smart_quotes' => 'lsaquo,rsaquo,laquo,raquo'
}
@@ -61,7 +62,14 @@ class TestKramdown < JekyllUnitTest
context "when a custom highlighter is chosen" do
should "use the chosen highlighter if it's available" do
- override = { "markdown" => "kramdown", "kramdown" => { "syntax_highlighter" => :coderay }}
+ override = {
+ "highlighter" => nil,
+ "markdown" => "kramdown",
+ "kramdown" => {
+ "syntax_highlighter" => :coderay
+ }
+ }
+
markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, override))
result = nokogiri_fragment(markdown.convert(Utils.strip_heredoc <<-MARKDOWN))
~~~ruby
@@ -77,11 +85,12 @@ class TestKramdown < JekyllUnitTest
override = {
"markdown" => "kramdown",
"kramdown" => {
- "syntax_highlighter" => nil,
- "enable_coderay" => true
- }
+ "enable_coderay" => true,
+ }
}
+ @config.delete("highlighter")
+ @config["kramdown"].delete("syntax_highlighter")
markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, override))
result = nokogiri_fragment(markdown.convert(Utils.strip_heredoc <<-MARKDOWN))
~~~ruby
@@ -97,6 +106,7 @@ class TestKramdown < JekyllUnitTest
should "move coderay to syntax_highlighter_opts" do
original = Kramdown::Document.method(:new)
markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, {
+ "higlighter" => nil,
"markdown" => "kramdown",
"kramdown" => {
"syntax_highlighter" => "coderay",
From 04e1768807b80f65c605cdb900ec6f7fa6ab1f45 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 15 Jan 2016 15:06:56 -0800
Subject: [PATCH 0287/4996] Update history to reflect merge of #4359 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index e818595532a..cd35e99ac9f 100644
--- a/History.markdown
+++ b/History.markdown
@@ -36,6 +36,7 @@
* utils: `has_yaml_header?` should accept files with extraneous spaces (#4290)
* Escape html from site.title and page.title in site template (#4307)
* Allow custom file extensions if defined in `permalink` YAML front matter (#4314)
+ * Fix deep_merge_hashes! handling of drops and hashes (#4359)
### Development Fixes
From 948dcf27141744095e78a3e702b896a39134aa91 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 15:51:32 -0800
Subject: [PATCH 0288/4996] Convertible: consolidate empty check into
Convertible#read
---
lib/jekyll/convertible.rb | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 23d338a3181..8edc4bfa788 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -61,8 +61,8 @@ def read_yaml(base, name, opts = {})
Jekyll.logger.abort_with "Fatal:", "Invalid YAML front matter in #{File.join(base, name)}"
end
- if self.data['permalink'] && empty_permalink?(self.data['permalink'])
- Jekyll.logger.error "Error:", "Invalid permalink in #{File.join(base, name)}"
+ if self.data['permalink'] && self.data['permalink'].size == 0
+ Jekyll.logger.abort_with "Fatal:", "Invalid permalink in #{File.join(base, name)}"
end
self.data
@@ -270,15 +270,6 @@ def do_layout(payload, layouts)
Jekyll::Hooks.trigger hook_owner, :post_render, self
end
- # Check data permalink
- #
- # permalink - the data permalink
- #
- # Returns true if the permalink is valid, false if otherwise
- def empty_permalink?(permalink)
- permalink.length == 0
- end
-
# Write the generated page file to the destination directory.
#
# dest - The String path to the destination dir.
From 89db3c63842ed4d2a4b8101e71fbc32efa34310d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 15:52:54 -0800
Subject: [PATCH 0289/4996] Convertible: separate data validation out of #read
---
lib/jekyll/convertible.rb | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 8edc4bfa788..7f3702d3846 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -56,16 +56,23 @@ def read_yaml(base, name, opts = {})
end
self.data ||= {}
+
+ validate_data!
+ validate_permalink!
+ self.data
+ end
+
+ def validate_data!
unless self.data.is_a?(Hash)
Jekyll.logger.abort_with "Fatal:", "Invalid YAML front matter in #{File.join(base, name)}"
end
-
+ end
+
+ def validate_permalink!
if self.data['permalink'] && self.data['permalink'].size == 0
Jekyll.logger.abort_with "Fatal:", "Invalid permalink in #{File.join(base, name)}"
end
-
- self.data
end
# Transform the contents based on the content type.
From 06fa14c11ace8970b7fb7aad4159ffc1382d20d1 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 16:11:08 -0800
Subject: [PATCH 0290/4996] Restructure data validation so that permalink check
raises an error.
---
lib/jekyll/convertible.rb | 24 +++++++++++++-----------
lib/jekyll/errors.rb | 6 ++++--
test/test_convertible.rb | 4 +---
3 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 7f3702d3846..a8e1d0a4444 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -42,6 +42,8 @@ def merged_file_read_opts(opts)
#
# Returns nothing.
def read_yaml(base, name, opts = {})
+ filename = File.join(base, name)
+
begin
self.content = File.read(site.in_source_dir(base, name),
merged_file_read_opts(opts))
@@ -50,28 +52,28 @@ def read_yaml(base, name, opts = {})
self.data = SafeYAML.load(Regexp.last_match(1))
end
rescue SyntaxError => e
- Jekyll.logger.warn "YAML Exception reading #{File.join(base, name)}: #{e.message}"
+ Jekyll.logger.warn "YAML Exception reading #{filename}: #{e.message}"
rescue Exception => e
- Jekyll.logger.warn "Error reading file #{File.join(base, name)}: #{e.message}"
+ Jekyll.logger.warn "Error reading file #{filename}: #{e.message}"
end
self.data ||= {}
-
- validate_data!
- validate_permalink!
+
+ validate_data! filename
+ validate_permalink! filename
self.data
end
-
- def validate_data!
+
+ def validate_data!(filename)
unless self.data.is_a?(Hash)
- Jekyll.logger.abort_with "Fatal:", "Invalid YAML front matter in #{File.join(base, name)}"
+ raise Errors::InvalidYAMLFrontMatterError, "Invalid YAML front matter in #{filename}"
end
end
-
- def validate_permalink!
+
+ def validate_permalink!(filename)
if self.data['permalink'] && self.data['permalink'].size == 0
- Jekyll.logger.abort_with "Fatal:", "Invalid permalink in #{File.join(base, name)}"
+ raise Errors::InvalidPermalinkError, "Invalid permalink in #{filename}"
end
end
diff --git a/lib/jekyll/errors.rb b/lib/jekyll/errors.rb
index 2b0dbc0c39a..36b2643d3dc 100644
--- a/lib/jekyll/errors.rb
+++ b/lib/jekyll/errors.rb
@@ -2,7 +2,9 @@ module Jekyll
module Errors
FatalException = Class.new(::RuntimeError)
- MissingDependencyException = Class.new(FatalException)
- DropMutationException = Class.new(FatalException)
+ DropMutationException = Class.new(FatalException)
+ InvalidPermalinkError = Class.new(FatalException)
+ InvalidYAMLFrontMatterError = Class.new(FatalException)
+ MissingDependencyException = Class.new(FatalException)
end
end
diff --git a/test/test_convertible.rb b/test/test_convertible.rb
index 0c5acf1a9ba..524ecdf45e8 100644
--- a/test/test_convertible.rb
+++ b/test/test_convertible.rb
@@ -52,11 +52,9 @@ class TestConvertible < JekyllUnitTest
should "parse the front-matter but show an error if permalink is empty" do
name = 'empty_permalink.erb'
- out = capture_stderr do
+ assert_raises(Errors::InvalidPermalinkError) do
@convertible.read_yaml(@base, name)
end
- assert_match(/Invalid permalink/, out)
- assert_match(/#{File.join(@base, name)}/, out)
end
should "parse the front-matter correctly whitout permalink" do
From d9aef14063686452ba8c5221f2b300d3103f5642 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 15 Jan 2016 16:19:23 -0800
Subject: [PATCH 0291/4996] Update history to reflect merge of #4361 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index cd35e99ac9f..6eb36653eff 100644
--- a/History.markdown
+++ b/History.markdown
@@ -19,6 +19,7 @@
* drops: provide `#to_h` to allow for hash introspection (#4281)
* Shim subcommands with indication of gem possibly required so users know how to use them (#4254)
* Add smartify Liquid filter for SmartyPants (#4323)
+ * Raise error on empty permalink (#4361)
### Bug Fixes
From c678640553b71971434bceabe7bf0514921b3cbd Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 16:25:58 -0800
Subject: [PATCH 0292/4996] Release :gem: v3.1.0.pre.rc1
---
lib/jekyll/version.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index 2d2bf2c6a06..66eebc1c051 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.0.pre.beta1'
+ VERSION = '3.1.0.pre.rc1'
end
From 281f75182e63998d1fb823aee4f9562aa1f6fded Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 15 Jan 2016 16:26:08 -0800
Subject: [PATCH 0293/4996] Release :gem: 3.1.0.pre.rc1
From b3b4abe80a8ed8731bf301f0f907968f4df7eda6 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 16 Jan 2016 12:09:13 -0800
Subject: [PATCH 0294/4996] Add @jmcglone's guide to github-pages doc page
Nearly every day, when I get the report of visitors to jekyllrb.com, I see jmcglone's excellent guide. Reading through it today makes me think it is one of the finest if not _the_ finest guide to getting started with Git, GitHub, and Jekyll in order to publish successfully and happily on GitHub Pages.
@jmcglone, mind if I add this to our GitHub Pages doc page?
---
site/_docs/github-pages.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/site/_docs/github-pages.md b/site/_docs/github-pages.md
index e19cdb2d24e..03d83b35bf2 100644
--- a/site/_docs/github-pages.md
+++ b/site/_docs/github-pages.md
@@ -10,6 +10,11 @@ organizations, and repositories, that are freely hosted on GitHub's
powered by Jekyll behind the scenes, so in addition to supporting regular HTML
content, they’re also a great way to host your Jekyll-powered website for free.
+Never built a website with GitHub Pages before? [See this marvelous guide by
+Jonathan McGlone to get you up and running](http://jmcglone.com/guides/github-pages/).
+This guide will teach you what you need to know about Git, GitHub, and Jekyll to
+create your very own website on GitHub Pages.
+
## Deploying Jekyll to GitHub Pages
GitHub Pages work by looking at certain branches of repositories on GitHub.
From 9c6f33024f19446d37beff7c0cb9c88624603bff Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 16 Jan 2016 12:21:07 -0800
Subject: [PATCH 0295/4996] Restructure the resources page a bit
---
site/_docs/resources.md | 40 ++++++++++++++++------------------------
1 file changed, 16 insertions(+), 24 deletions(-)
diff --git a/site/_docs/resources.md b/site/_docs/resources.md
index b414c90de0b..2ba5f25eeb5 100644
--- a/site/_docs/resources.md
+++ b/site/_docs/resources.md
@@ -6,41 +6,33 @@ permalink: /docs/resources/
Jekyll’s growing use is producing a wide variety of tutorials, frameworks, extensions, examples, and other resources that can be very helpful. Below is a collection of links to some of the most popular Jekyll resources.
-### Jekyll tips & tricks, and examples
-
-- [Tips for working with GitHub Pages Integration](https://gist.github.com/2890453)
-
- Code example reuse, and keeping documentation up to date.
-
-- [Use FormKeep as a backend for forms (contact forms, hiring forms, etc.)](https://formkeep.com/guides/how-to-make-a-contact-form-in-jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=contact-form-jekyll)
-- [Use Simple Form to integrate a simple contact
- form](http://getsimpleform.com/)
-- [JekyllBootstrap.com](http://jekyllbootstrap.com)
-
- Provides detailed explanations, examples, and helper-code to make
- getting started with Jekyll easier.
-
-### Tutorials
-
-#### Integrating Jekyll with Git
+### Useful Guides
+- [“Creating and Hosting a Personal Site on GitHub”](http://jmcglone.com/guides/github-pages/)
+- [‘Build A Blog With Jekyll And GitHub Pages’ on Smashing Magazine](http://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/)
+- Publishing to GitHub Pages? [Check out our documentation page for just that purpose](/docs/github-pages/).
- [Blogging with Git, Emacs and Jekyll](http://metajack.im/2009/01/23/blogging-with-git-emacs-and-jekyll/)
+- [Tips for working with GitHub Pages Integration](https://gist.github.com/jedschneider/2890453)
-#### Other hacks
+### Integrations
+- [Use FormKeep as a backend for forms (contact forms, hiring forms, etc.)](https://formkeep.com/guides/how-to-make-a-contact-form-in-jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=contact-form-jekyll)
+- [Use Simple Form to add a simple contact form](http://getsimpleform.com/)
+- [Jekyll Bootstrap](http://jekyllbootstrap.com), 0 to Blog in 3 minutes. Provides detailed explanations, examples, and helper-code to make getting started with Jekyll easier.
- [Integrating Twitter with Jekyll](http://www.justkez.com/integrating-twitter-with-jekyll/)
> “Having migrated Justkez.com to be based on Jekyll, I was pondering how I might include my recent twitterings on the front page of the site. In the WordPress world, this would have been done via a plugin which may or may not have hung the loading of the page, might have employed caching, but would certainly have had some overheads. … Not in Jekyll.”
+
+### Other commentary
+
- [‘My Jekyll Fork’, by Mike West](http://mikewest.org/2009/11/my-jekyll-fork)
+
> “Jekyll is a well-architected throwback to a time before WordPress, when men were men, and HTML was static. I like the ideas it espouses, and have made a few improvements to it’s core. Here, I’ll point out some highlights of my fork in the hopes that they see usage beyond this site.”
+
- [‘About this Website’, by Carter Allen](http://cartera.me/2010/08/12/about-this-website/)
+
> “Jekyll is everything that I ever wanted in a blogging engine. Really. It isn’t perfect, but what’s excellent about it is that if there’s something wrong, I know exactly how it works and how to fix it. It runs on the your machine only, and is essentially an added”build" step between you and the browser. I coded this entire site in TextMate using standard HTML5 and CSS3, and then at the end I added just a few little variables to the markup. Presto-chango, my site is built and I am at peace with the world.”
-- [‘Build A Blog With Jekyll And GitHub Pages’, by Barry Clark](http://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/)
- > “I recently migrated my blog from WordPress to Jekyll, a fantastic website generator that’s designed for building minimal, static blogs to be hosted on GitHub Pages. The simplicity of Jekyll’s theming layer and writing workflow is fantastic; however, setting up my website took a lot longer than expected. In this article we'll walk through: the quickest way to set up a Jekyll powered blog, how to avoid common problems with using Jekyll, how to import your content from Wordpress, and more.”
-- [Generating a Tag Cloud in Jekyll](http://www.justkez.com/generating-a-tag-cloud-in-jekyll/)
-A guide to implementing a tag cloud and per-tag content pages using Jekyll.
+- [Generating a Tag Cloud in Jekyll](http://www.justkez.com/generating-a-tag-cloud-in-jekyll/) – A guide to implementing a tag cloud and per-tag content pages using Jekyll.
- A way to [extend Jekyll](https://github.com/rfelix/jekyll_ext) without forking and modifying the Jekyll gem codebase and some [portable Jekyll extensions](https://wiki.github.com/rfelix/jekyll_ext/extensions) that can be reused and shared.
-
- [Using your Rails layouts in Jekyll](http://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll)
-
- [Adding Ajax pagination to Jekyll](https://eduardoboucas.com/blog/2014/11/10/adding-ajax-pagination-to-jekyll.html)
From 4482f80d3496a55e54f42ee75a55dcad215f6c31 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 18 Jan 2016 07:48:11 -0800
Subject: [PATCH 0296/4996] Update history to reflect merge of #4364 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6eb36653eff..ba8e9a81e46 100644
--- a/History.markdown
+++ b/History.markdown
@@ -84,6 +84,7 @@
* Add documentation for smartify Liquid filter (#4333)
* Fixed broken link to blog on using mathjax with jekyll (#4344)
* Documentation: correct reference in Precedence section of Configuration docs (#4355)
+ * Add @jmcglone's guide to github-pages doc page (#4364)
## 3.0.1 / 2015-11-17
From 9676b775de2ff78ae5331537083ae3c9d31f138c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 08:47:35 -0800
Subject: [PATCH 0297/4996] Want the readme and CNAME.
---
site/_config.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/site/_config.yml b/site/_config.yml
index fc3f3484797..c065f9f7015 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -22,7 +22,3 @@ url: http://jekyllrb.com
gems:
- jekyll-feed
- jekyll-redirect-from
-
-exclude:
- - README.md
- - CNAME
From d343da61eb8ac5ca776842d1c4c9f2810f443ea9 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:41:05 -0800
Subject: [PATCH 0298/4996] Page: pipe through Renderer instead of using
Convertible
---
lib/jekyll/convertible.rb | 8 +-------
lib/jekyll/page.rb | 6 ++++++
lib/jekyll/renderer.rb | 2 +-
lib/jekyll/site.rb | 3 ++-
4 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index a8e1d0a4444..383bb024dc0 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -97,13 +97,7 @@ def transform
# Returns the String extension for the output file.
# e.g. ".html" for an HTML output file.
def output_ext
- if converters.all? { |c| c.is_a?(Jekyll::Converters::Identity) }
- ext
- else
- converters.map do |c|
- c.output_ext(ext) unless c.is_a?(Jekyll::Converters::Identity)
- end.compact.last
- end
+ Jekyll::Renderer.new(site, self).output_ext
end
# Determine which converter to use based on this convertible's
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index a3519f57f53..0a93aa08ec8 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -7,6 +7,8 @@ class Page
attr_accessor :name, :ext, :basename
attr_accessor :data, :content, :output
+ alias_method :extname, :ext
+
# Attributes for Liquid templates
ATTRIBUTES_FOR_LIQUID = %w(
content
@@ -160,5 +162,9 @@ def html?
def index?
basename == 'index'
end
+
+ def trigger_hooks(hook_name, *args)
+ Jekyll::Hooks.trigger :pages, hook_name, self, *args
+ end
end
end
diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb
index e6a41aead3c..5a788c8174d 100644
--- a/lib/jekyll/renderer.rb
+++ b/lib/jekyll/renderer.rb
@@ -38,7 +38,7 @@ def run
payload["page"] = document.to_liquid
- if document.collection.label == 'posts' && document.is_a?(Document)
+ if document.is_a?(Document) && document.collection.label == 'posts'
payload['site']['related_posts'] = document.related_posts
end
diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb
index 465e154e892..15698b99d22 100644
--- a/lib/jekyll/site.rb
+++ b/lib/jekyll/site.rb
@@ -176,7 +176,8 @@ def render
pages.flatten.each do |page|
if regenerator.regenerate?(page)
- page.render(layouts, payload)
+ page.output = Jekyll::Renderer.new(self, page, payload).run
+ page.trigger_hooks(:post_render)
end
end
From 7d81c00b29f7e317566c0e79f7539ab04231befc Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:41:47 -0800
Subject: [PATCH 0299/4996] Renderer: use Convertible's way of picking the last
Converter's output extension
---
lib/jekyll/renderer.rb | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb
index 5a788c8174d..b4afa03cc71 100644
--- a/lib/jekyll/renderer.rb
+++ b/lib/jekyll/renderer.rb
@@ -25,10 +25,20 @@ def output_ext
@output_ext ||= if document.permalink
File.extname(document.permalink)
else
- converters.first.output_ext(document.extname)
+ if output_exts.size == 1
+ output_exts.last
+ else
+ output_exts[-2]
+ end
end
end
+ def output_exts
+ @output_exts ||= converters.map do |c|
+ c.output_ext(document.extname)
+ end.compact
+ end
+
######################
## DAT RENDER THO
######################
From dd15e3c368f20e84206892efebc413d1cfd48843 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:42:34 -0800
Subject: [PATCH 0300/4996] features: write EXIT STATUS to output so it all
prints when we get an exit status we aren't expecting
---
features/step_definitions.rb | 9 +++++++--
features/support/helpers.rb | 9 +++++++--
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index 64213ea4e27..d369593513f 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -228,8 +228,13 @@
#
Then %r{^I should see "(.*)" in the build output$} do |text|
- regexp = Regexp.new(text)
- expect(jekyll_run_output).to match regexp
+ expect(jekyll_run_output).to match Regexp.new(text)
+end
+
+#
+
+Then %r{^I should get a zero exit(?:\-| )status$} do
+ step %(I should see "EXIT STATUS: 0" in the build output)
end
#
diff --git a/features/support/helpers.rb b/features/support/helpers.rb
index 62892612fbb..83010b9e97d 100644
--- a/features/support/helpers.rb
+++ b/features/support/helpers.rb
@@ -100,8 +100,13 @@ def run_in_shell(*args)
end
File.write(Paths.status_file, p.value.exitstatus)
- File.write(Paths.output_file, out) if p.value.exitstatus == 0
- File.write(Paths.output_file, err) if p.value.exitstatus != 0
+ File.open(Paths.output_file, "wb") do |f|
+ f.puts args.join(" ")
+ f.puts out
+ f.puts err
+ f.puts "EXIT STATUS: #{p.value.exitstatus}"
+ end
+
p.value
end
From 2adb70a247d61a16292551ab306af0e6426cd91b Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:42:59 -0800
Subject: [PATCH 0301/4996] features: writing a configuration file should
append if it's already there
---
features/step_definitions.rb | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index d369593513f..7c9281f55d7 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -93,7 +93,13 @@
#
Given %r{^I have a configuration file with "(.*)" set to "(.*)"$} do |key, value|
- File.write("_config.yml", "#{key}: #{value}\n")
+ config = if source_dir.join("_config.yml").exist?
+ SafeYAML.load_file(source_dir.join("_config.yml"))
+ else
+ {}
+ end
+ config[key] = value
+ File.write("_config.yml", YAML.dump(config))
end
#
From e9c5c45651d7f0755b88ada09ad228818d9fdd9b Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:43:21 -0800
Subject: [PATCH 0302/4996] features: look for lack of "EXIT STATUS: 0" for
non-zero exit status
---
features/step_definitions.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index 7c9281f55d7..71a92aea15a 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -246,5 +246,5 @@
#
Then %r{^I should get a non-zero exit(?:\-| )status$} do
- expect(jekyll_run_status.to_i).to be > 0
+ expect(jekyll_run_status.to_i).not_to match(%r{EXIT STATUS: 0})
end
From 9a6f4e08b7d073d5636e73b9b8c3c7fb2395e027 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:44:00 -0800
Subject: [PATCH 0303/4996] features/permalinks: add a permalink feature for
non-html extension name for pages
Fixes
https://github.com/mpc-hc/mpc-hc.org/pull/58#issuecomment-172594526
---
features/permalinks.feature | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/features/permalinks.feature b/features/permalinks.feature
index 74f2e409f7b..5e1db21d5a7 100644
--- a/features/permalinks.feature
+++ b/features/permalinks.feature
@@ -120,3 +120,13 @@ Feature: Fancy permalinks
When I run jekyll build
Then the _site directory should exist
And I should see "Totally awesome" in "_site/2009/03/27/Custom_Schema/index.html"
+
+ Scenario: Use a non-HTML file extension in the permalink
+ Given I have a _posts directory
+ And I have an "_posts/2016-01-18-i-am-php.md" page with permalink "/2016/i-am-php.php" that contains "I am PHP"
+ And I have a "i-am-also-php.md" page with permalink "/i-am-also-php.php" that contains "I am also PHP"
+ When I run jekyll build
+ Then I should get a zero exit status
+ And the _site directory should exist
+ And I should see "I am PHP" in "_site/2016/i-am-php.php"
+ And I should see "I am also PHP" in "_site/i-am-also-php.php"
From 736a800f0ed0dafc5e6ae1944bf1cea1efc1191d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:52:31 -0800
Subject: [PATCH 0304/4996] features: validate the exit status of 0 for
successful calls
---
features/collections.feature | 33 ++++++++----
features/create_sites.feature | 48 ++++++++++++------
features/drafts.feature | 12 +++--
features/embed_filters.feature | 24 ++++++---
features/frontmatter_defaults.feature | 18 ++++---
features/hooks.feature | 27 ++++++----
features/include_tag.feature | 21 +++++---
features/incremental_rebuild.feature | 24 ++++++---
features/markdown.feature | 6 ++-
features/permalinks.feature | 36 +++++++++-----
features/plugins.feature | 9 ++--
features/post_data.feature | 72 ++++++++++++++++++---------
features/post_excerpts.feature | 9 ++--
features/rendering.feature | 15 ++++--
features/site_configuration.feature | 42 ++++++++++------
features/site_data.feature | 33 ++++++++----
16 files changed, 286 insertions(+), 143 deletions(-)
diff --git a/features/collections.feature b/features/collections.feature
index 1fcc7ccea57..888bd1c2ddc 100644
--- a/features/collections.feature
+++ b/features/collections.feature
@@ -8,7 +8,8 @@ Feature: Collections
And I have fixture collections
And I have a configuration file with "collections" set to "['methods']"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: Use Jekyll.configuration to build a full configuration for use w/Jekyll.
\n\nWhatever: foo.bar
\nSigns are nice
\nJekyll.sanitized_path is used to make sure your path is in your source.
\nRun your generators! default
\nPage without title.
\nRun your generators! default
" in "_site/index.html"
And the "_site/methods/configuration.html" file should not exist
@@ -24,7 +25,8 @@ Feature: Collections
foo: bar
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: output => true" in "_site/index.html"
And I should see "label => methods" in "_site/index.html"
And I should see "Methods metadata: bar" in "_site/collection_metadata.html"
@@ -41,7 +43,8 @@ Feature: Collections
permalink: /:collection/:path/
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Whatever: foo.bar
" in "_site/methods/configuration/index.html"
Scenario: Rendered document in a layout
@@ -56,7 +59,8 @@ Feature: Collections
foo: bar
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: output => true" in "_site/index.html"
And I should see "label => methods" in "_site/index.html"
And I should see "foo => bar" in "_site/index.html"
@@ -72,7 +76,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: Collections specified as an hash
@@ -84,7 +89,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: All the documents
@@ -96,7 +102,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "All documents: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: Documents have an output attribute, which is the converted HTML
@@ -108,7 +115,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "First document's output: Use Jekyll.configuration to build a full configuration for use w/Jekyll.
\n\nWhatever: foo.bar
" in "_site/index.html"
Scenario: Filter documents by where
@@ -120,7 +128,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Item count: 2" in "_site/index.html"
Scenario: Sort by title
@@ -132,7 +141,8 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "1. of 7: Page without title.
" in "_site/index.html"
Scenario: Sort by relative_path
@@ -144,5 +154,6 @@ Feature: Collections
- methods
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, , Site#generate," in "_site/index.html"
diff --git a/features/create_sites.feature b/features/create_sites.feature
index 898115c2344..031fa434cfe 100644
--- a/features/create_sites.feature
+++ b/features/create_sites.feature
@@ -13,7 +13,8 @@ Feature: Create sites
Scenario: Basic site
Given I have an "index.html" file that contains "Basic Site"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site" in "_site/index.html"
Scenario: Basic site with a post
@@ -22,7 +23,8 @@ Feature: Create sites
| title | date | content |
| Hackers | 2009-03-27 | My First Exploit |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "My First Exploit" in "_site/2009/03/27/hackers.html"
Scenario: Basic site with layout and a page
@@ -30,7 +32,8 @@ Feature: Create sites
And I have an "index.html" page with layout "default" that contains "Basic Site with Layout"
And I have a default layout that contains "Page Layout: {{ content }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: Basic Site with Layout" in "_site/index.html"
Scenario: Basic site with layout and a post
@@ -41,7 +44,8 @@ Feature: Create sites
| Wargames | 2009-03-27 | default | The only winning move is not to play. |
And I have a default layout that contains "Post Layout: {{ content }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post Layout: The only winning move is not to play.
" in "_site/2009/03/27/wargames.html"
Scenario: Basic site with layout inside a subfolder and a post
@@ -52,7 +56,8 @@ Feature: Create sites
| Wargames | 2009-03-27 | post/simple | The only winning move is not to play. |
And I have a post/simple layout that contains "Post Layout: {{ content }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post Layout: The only winning move is not to play.
" in "_site/2009/03/27/wargames.html"
Scenario: Basic site with layouts, pages, posts and files
@@ -75,7 +80,8 @@ Feature: Create sites
| entry3 | 2009-05-27 | post | content for entry3. |
| entry4 | 2009-06-27 | post | content for entry4. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page : Site contains 2 pages and 4 posts" in "_site/index.html"
And I should see "No replacement \{\{ site.posts.size \}\}" in "_site/about.html"
And I should see "" in "_site/another_file"
@@ -90,7 +96,8 @@ Feature: Create sites
And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}"
And I have an "_includes/about.textile" file that contains "Generated by Jekyll"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"
Scenario: Basic site with subdir include tag
@@ -99,7 +106,8 @@ Feature: Create sites
And I have an info directory
And I have an "info/index.html" page that contains "Basic Site with subdir include tag: {% include about.textile %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site with subdir include tag: Generated by Jekyll" in "_site/info/index.html"
Scenario: Basic site with nested include tag
@@ -108,7 +116,8 @@ Feature: Create sites
And I have an "_includes/jekyll.textile" file that contains "Jekyll"
And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"
Scenario: Basic site with internal post linking
@@ -120,19 +129,22 @@ Feature: Create sites
| entry1 | 2007-12-31 | post | content for entry1. |
| entry2 | 2008-01-01 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "URL: /2008/01/01/entry2/" in "_site/index.html"
Scenario: Basic site with whitelisted dotfile
Given I have an ".htaccess" file that contains "SomeDirective"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "SomeDirective" in "_site/.htaccess"
Scenario: File was replaced by a directory
Given I have a "test" file that contains "some stuff"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
When I delete the file "test"
Given I have a test directory
And I have a "test/index.html" file that contains "some other stuff"
@@ -146,13 +158,15 @@ Feature: Create sites
And I have a "secret.html" page with published "false" that contains "Unpublished page"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/index.html" file should exist
And the "_site/public.html" file should exist
But the "_site/secret.html" file should not exist
When I run jekyll build --unpublished
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/index.html" file should exist
And the "_site/public.html" file should exist
And the "_site/secret.html" file should exist
@@ -164,9 +178,11 @@ Feature: Create sites
| entry1 | 2020-12-31 | post | content for entry1. |
| entry2 | 2007-12-31 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "content for entry2" in "_site/2007/12/31/entry2.html"
And the "_site/2020/12/31/entry1.html" file should not exist
When I run jekyll build --future
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/2020/12/31/entry1.html" file should exist
diff --git a/features/drafts.feature b/features/drafts.feature
index 5d7982ecfc4..5a7f49f39d2 100644
--- a/features/drafts.feature
+++ b/features/drafts.feature
@@ -10,7 +10,8 @@ Feature: Draft Posts
| title | date | layout | content |
| Recipe | 2009-03-27 | default | Not baked yet. |
When I run jekyll build --drafts
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Not baked yet." in "_site/recipe.html"
Scenario: Don't preview a draft
@@ -21,7 +22,8 @@ Feature: Draft Posts
| title | date | layout | content |
| Recipe | 2009-03-27 | default | Not baked yet. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/recipe.html" file should not exist
Scenario: Don't preview a draft that is not published
@@ -32,7 +34,8 @@ Feature: Draft Posts
| title | date | layout | published | content |
| Recipe | 2009-03-27 | default | false | Not baked yet. |
When I run jekyll build --drafts
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/recipe.html" file should not exist
Scenario: Use page.path variable
@@ -42,5 +45,6 @@ Feature: Draft Posts
| title | date | layout | content |
| Recipe | 2009-03-27 | simple | Post path: {{ page.path }} |
When I run jekyll build --drafts
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post path: _drafts/recipe.markdown" in "_site/recipe.html"
diff --git a/features/embed_filters.feature b/features/embed_filters.feature
index d6f99fc7655..0f2d0adabd7 100644
--- a/features/embed_filters.feature
+++ b/features/embed_filters.feature
@@ -11,7 +11,8 @@ Feature: Embed filters
| Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
And I have a default layout that contains "{{ site.time | date_to_xmlschema }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see today's date in "_site/2009/03/27/star-wars.html"
Scenario: Escape text for XML
@@ -22,7 +23,8 @@ Feature: Embed filters
| Star & Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
And I have a default layout that contains "{{ page.title | xml_escape }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Star & Wars" in "_site/2009/03/27/star-wars.html"
Scenario: Calculate number of words
@@ -33,7 +35,8 @@ Feature: Embed filters
| Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
And I have a default layout that contains "{{ content | number_of_words }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "7" in "_site/2009/03/27/star-wars.html"
Scenario: Convert an array into a sentence
@@ -44,7 +47,8 @@ Feature: Embed filters
| Star Wars | 2009-03-27 | default | [scifi, movies, force] | These aren't the droids you're looking for. |
And I have a default layout that contains "{{ page.tags | array_to_sentence_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "scifi, movies, and force" in "_site/2009/03/27/star-wars.html"
Scenario: Markdownify a given string
@@ -55,7 +59,8 @@ Feature: Embed filters
| Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
And I have a default layout that contains "By {{ '_Obi-wan_' | markdownify }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "By Obi-wan
" in "_site/2009/03/27/star-wars.html"
Scenario: Sort by an arbitrary variable
@@ -68,7 +73,8 @@ Feature: Embed filters
| Page-2 | default | 6 | Something |
And I have a default layout that contains "{{ site.pages | sort:'value' | map:'title' | join:', ' }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see exactly "Page-2, Page-1" in "_site/page-1.html"
And I should see exactly "Page-2, Page-1" in "_site/page-2.html"
@@ -85,7 +91,8 @@ Feature: Embed filters
| default | Jump |
And I have a default layout that contains "{% assign sorted_pages = site.pages | sort: 'title' %}The rule of {{ sorted_pages.size }}: {% for p in sorted_pages %}{{ p.content | strip_html | strip_newlines }}, {% endfor %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see exactly "The rule of 3: Jump, Fly, Run," in "_site/bird.html"
Scenario: Sort pages by the title ordering pages without title last
@@ -101,5 +108,6 @@ Feature: Embed filters
| default | Jump |
And I have a default layout that contains "{% assign sorted_pages = site.pages | sort: 'title', 'last' %}The rule of {{ sorted_pages.size }}: {% for p in sorted_pages %}{{ p.content | strip_html | strip_newlines }}, {% endfor %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see exactly "The rule of 3: Fly, Run, Jump," in "_site/bird.html"
diff --git a/features/frontmatter_defaults.feature b/features/frontmatter_defaults.feature
index a9a64ae2818..31aee377b40 100644
--- a/features/frontmatter_defaults.feature
+++ b/features/frontmatter_defaults.feature
@@ -12,7 +12,8 @@ Feature: frontmatter defaults
And I have a configuration file with "defaults" set to "[{scope: {path: ""}, values: {layout: "pretty"}}]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "THIS IS THE LAYOUT: just some post
" in "_site/2013/09/11/default-layout.html"
And I should see "THIS IS THE LAYOUT: just some page" in "_site/index.html"
@@ -24,7 +25,8 @@ Feature: frontmatter defaults
And I have an "index.html" page that contains "just {{page.custom}} by {{page.author}}"
And I have a configuration file with "defaults" set to "[{scope: {path: ""}, values: {custom: "some special data", author: "Ben"}}]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "some special data
\nBen" in "_site/2013/09/11/default-data.html"
And I should see "just some special data by Ben" in "_site/index.html"
@@ -48,7 +50,8 @@ Feature: frontmatter defaults
And I have a configuration file with "defaults" set to "[{scope: {path: "special"}, values: {layout: "subfolder", description: "the special section"}}, {scope: {path: ""}, values: {layout: "root", description: "the webpage"}}]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "root: info on the webpage
" in "_site/2013/10/14/about.html"
And I should see "subfolder: info on the special section
" in "_site/special/2013/10/14/about.html"
And I should see "root: Overview for the webpage" in "_site/index.html"
@@ -71,7 +74,8 @@ Feature: frontmatter defaults
And I have a configuration file with "defaults" set to "[{scope: {path: "special"}, values: {layout: "main"}}, {scope: {path: "special/_posts"}, values: {layout: "main"}}, {scope: {path: "_posts"}, values: {layout: "main"}}]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "main: content of site/2013/10/14/about.html
" in "_site/2013/10/14/about.html"
And I should see "main: content of site/special/2013/10/14/about1.html
" in "_site/special/2013/10/14/about1.html"
And I should see "main: content of site/special/2013/10/14/about2.html
" in "_site/special/2013/10/14/about2.html"
@@ -132,7 +136,8 @@ Feature: frontmatter defaults
myval: "Test"
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Value: Test" in "_site/slides/slide1.html"
Scenario: Override frontmatter defaults inside a collection
@@ -159,7 +164,8 @@ Feature: frontmatter defaults
myval: "Test"
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Value: Override" in "_site/slides/slide2.html"
Scenario: Deep merge frontmatter defaults
diff --git a/features/hooks.feature b/features/hooks.feature
index 5252d562160..48b2884e37a 100644
--- a/features/hooks.feature
+++ b/features/hooks.feature
@@ -24,7 +24,8 @@ Feature: Hooks
end
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "mytinypage" in "_site/foo.html"
Scenario: Modify the payload before rendering the site
@@ -37,7 +38,8 @@ Feature: Hooks
end
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "myparam!" in "_site/index.html"
Scenario: Modify the site contents after reading
@@ -51,7 +53,8 @@ Feature: Hooks
end
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/page1.html" file should not exist
And I should see "page2" in "_site/page2.html"
@@ -67,7 +70,8 @@ Feature: Hooks
"""
And I have a "page1.html" page that contains "page1"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "page1" in "_site/firstpage.html"
Scenario: Alter a page right after it is initialized
@@ -81,7 +85,8 @@ Feature: Hooks
"""
And I have a "page1.html" page that contains "page1"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "page1" in "_site/renamed.html"
Scenario: Alter the payload for one page but not another
@@ -138,7 +143,8 @@ Feature: Hooks
| title | date | layout | content |
| entry1 | 2015-03-14 | nil | {{ page.harold }} |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "pbagrag sbe ragel1." in "_site/2015/03/14/entry1.html"
Scenario: Alter the payload for certain posts
@@ -268,7 +274,8 @@ Feature: Hooks
{{ site.memes.first.text }}
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "all your base are belong to us" in "_site/index.html"
Scenario: Update a document after rendering it, but before writing it to disk
@@ -294,7 +301,8 @@ Feature: Hooks
{{ page.text }}
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "all your base are belong to us" in "_site/memes/doc1.html"
Scenario: Perform an action after every document is written
@@ -322,5 +330,6 @@ Feature: Hooks
{{ page.text }}
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Wrote document 0" in "_site/document-build.log"
diff --git a/features/include_tag.feature b/features/include_tag.feature
index 83ae379f8a0..c8ebf717aa6 100644
--- a/features/include_tag.feature
+++ b/features/include_tag.feature
@@ -19,7 +19,8 @@ Feature: Include tags
| Parameter syntax | 2013-04-12 | html | {% include params.html param1_or_2="value" %} |
| Pass a variable | 2013-06-22 | html | {% assign var = 'some text' %}{% include params.html local=var title=page.title %} |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "My awesome blog header: myparam " in "_site/2013/03/21/include-files.html"
And I should not see "myparam" in "_site/2013/03/21/ignore-params-if-unused.html"
And I should see "
date = today " in "_site/2013/03/21/list-multiple-parameters.html"
@@ -44,7 +45,8 @@ Feature: Include tags
| include_file2 | parametrized.html |
And I have an "index.html" page that contains "{% include {{site.include_file1}} %} that {% include {{site.include_file2}} what='parameters' %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "a snippet that works with parameters" in "_site/index.html"
Scenario: Include a variable file in a loop
@@ -53,7 +55,8 @@ Feature: Include tags
And I have an "_includes/two.html" file that contains "two"
And I have an "index.html" page with files "[one.html, two.html]" that contains "{% for file in page.files %}{% include {{file}} %} {% endfor %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "one two" in "_site/index.html"
Scenario: Include a file with variables and filters
@@ -64,7 +67,8 @@ Feature: Include tags
| include_file | one |
And I have an "index.html" page that contains "{% include {{ site.include_file | append: '.html' }} %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "one included" in "_site/index.html"
Scenario: Include a file with partial variables
@@ -75,7 +79,8 @@ Feature: Include tags
| include_file | one |
And I have an "index.html" page that contains "{% include {{ site.include_file }}.html %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "one included" in "_site/index.html"
Scenario: Include a file and rebuild when include content is changed
@@ -83,7 +88,8 @@ Feature: Include tags
And I have an "_includes/one.html" file that contains "include"
And I have an "index.html" page that contains "{% include one.html %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "include" in "_site/index.html"
When I wait 1 second
Then I have an "_includes/one.html" file that contains "include content changed"
@@ -95,5 +101,6 @@ Feature: Include tags
And I have an "_includes/header-en.html" file that contains "include"
And I have an "index.html" page that contains "{% assign name = 'header' %}{% assign locale = 'en' %}{% include {{name}}-{{locale}}.html %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "include" in "_site/index.html"
diff --git a/features/incremental_rebuild.feature b/features/incremental_rebuild.feature
index fb95e0c5421..128f5800456 100644
--- a/features/incremental_rebuild.feature
+++ b/features/incremental_rebuild.feature
@@ -11,10 +11,12 @@ Feature: Incremental rebuild
| Wargames | 2009-03-27 | default | The only winning move is not to play. |
And I have a default layout that contains "Post Layout: {{ content }}"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post Layout: The only winning move is not to play.
" in "_site/2009/03/27/wargames.html"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post Layout: The only winning move is not to play.
" in "_site/2009/03/27/wargames.html"
Scenario: Generate a metadata file
@@ -25,12 +27,14 @@ Feature: Incremental rebuild
Scenario: Rebuild when content is changed
Given I have an "index.html" file that contains "Basic Site"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site" in "_site/index.html"
When I wait 1 second
Then I have an "index.html" file that contains "Bacon Site"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Bacon Site" in "_site/index.html"
Scenario: Rebuild when layout is changed
@@ -38,12 +42,14 @@ Feature: Incremental rebuild
And I have an "index.html" page with layout "default" that contains "Basic Site with Layout"
And I have a default layout that contains "Page Layout: {{ content }}"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: Basic Site with Layout" in "_site/index.html"
When I wait 1 second
Then I have a default layout that contains "Page Layout Changed: {{ content }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout Changed: Basic Site with Layout" in "_site/index.html"
Scenario: Rebuild when an include is changed
@@ -51,10 +57,12 @@ Feature: Incremental rebuild
And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}"
And I have an "_includes/about.textile" file that contains "Generated by Jekyll"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"
When I wait 1 second
Then I have an "_includes/about.textile" file that contains "Regenerated by Jekyll"
When I run jekyll build -I
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Basic Site with include tag: Regenerated by Jekyll" in "_site/index.html"
diff --git a/features/markdown.feature b/features/markdown.feature
index c0eeb25d3f4..3649a6d1013 100644
--- a/features/markdown.feature
+++ b/features/markdown.feature
@@ -11,7 +11,8 @@ Feature: Markdown
| title | date | content | type |
| Hackers | 2009-03-27 | # My Title | markdown |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Index" in "_site/index.html"
And I should see "My Title
" in "_site/2009/03/27/hackers.html"
And I should see "My Title
" in "_site/index.html"
@@ -27,6 +28,7 @@ Feature: Markdown
| title | date | content | type |
| Hackers | 2009-03-27 | # My Title | markdown |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Index" in "_site/index.html"
And I should see "My Title
" in "_site/index.html"
diff --git a/features/permalinks.feature b/features/permalinks.feature
index 5e1db21d5a7..ca0482fce90 100644
--- a/features/permalinks.feature
+++ b/features/permalinks.feature
@@ -10,7 +10,8 @@ Feature: Fancy permalinks
| None Permalink Schema | 2009-03-27 | Totally nothing. |
And I have a configuration file with "permalink" set to "none"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally nothing." in "_site/none-permalink-schema.html"
Scenario: Use pretty permalink schema
@@ -20,7 +21,8 @@ Feature: Fancy permalinks
| Pretty Permalink Schema | 2009-03-27 | Totally wordpress. |
And I have a configuration file with "permalink" set to "pretty"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally wordpress." in "_site/2009/03/27/pretty-permalink-schema/index.html"
Scenario: Use pretty permalink schema for pages
@@ -29,7 +31,8 @@ Feature: Fancy permalinks
And I have an "sitemap.xml" page that contains "Totally uhm, sitemap"
And I have a configuration file with "permalink" set to "pretty"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally index" in "_site/index.html"
And I should see "Totally awesome" in "_site/awesome/index.html"
And I should see "Totally uhm, sitemap" in "_site/sitemap.xml"
@@ -41,7 +44,8 @@ Feature: Fancy permalinks
| Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
And I have a configuration file with "permalink" set to "/blog/:year/:month/:day/:title/"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally custom." in "_site/blog/2009/03/27/custom-permalink-schema/index.html"
Scenario: Use custom permalink schema with category
@@ -51,7 +55,8 @@ Feature: Fancy permalinks
| Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
And I have a configuration file with "permalink" set to "/:categories/:title.html"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally custom." in "_site/stuff/custom-permalink-schema.html"
Scenario: Use custom permalink schema with squished date
@@ -61,7 +66,8 @@ Feature: Fancy permalinks
| Custom Permalink Schema | stuff | 2009-03-27 | Totally custom. |
And I have a configuration file with "permalink" set to "/:month-:day-:year/:title.html"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally custom." in "_site/03-27-2009/custom-permalink-schema.html"
Scenario: Use custom permalink schema with date and time
@@ -74,7 +80,8 @@ Feature: Fancy permalinks
| permalink | "/:year:month:day:hour:minute:second.html" |
| timezone | UTC |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally custom." in "_site/20090327223107.html"
Scenario: Use per-post permalink
@@ -83,7 +90,8 @@ Feature: Fancy permalinks
| title | date | permalink | content |
| Some post | 2013-04-14 | /custom/posts/1/ | bla bla |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the _site/custom/posts/1 directory should exist
And I should see "bla bla" in "_site/custom/posts/1/index.html"
@@ -93,7 +101,8 @@ Feature: Fancy permalinks
| title | date | permalink | content |
| Some post | 2013-04-14 | /custom/posts/some.html | bla bla |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the _site/custom/posts directory should exist
And I should see "bla bla" in "_site/custom/posts/some.html"
@@ -102,7 +111,8 @@ Feature: Fancy permalinks
And I have an "_posts/2009-03-27-Pretty-Permalink-Schema.md" page that contains "Totally wordpress"
And I have a configuration file with "permalink" set to "pretty"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally wordpress." in "_site/2009/03/27/Pretty-Permalink-Schema/index.html"
Scenario: Use custom permalink schema with cased file name
@@ -110,7 +120,8 @@ Feature: Fancy permalinks
And I have an "_posts/2009-03-27-Custom-Schema.md" page with title "Custom Schema" that contains "Totally awesome"
And I have a configuration file with "permalink" set to "/:year/:month/:day/:slug/"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally awesome" in "_site/2009/03/27/custom-schema/index.html"
Scenario: Use pretty permalink schema with title containing underscore
@@ -118,7 +129,8 @@ Feature: Fancy permalinks
And I have an "_posts/2009-03-27-Custom_Schema.md" page with title "Custom Schema" that contains "Totally awesome"
And I have a configuration file with "permalink" set to "pretty"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Totally awesome" in "_site/2009/03/27/Custom_Schema/index.html"
Scenario: Use a non-HTML file extension in the permalink
diff --git a/features/plugins.feature b/features/plugins.feature
index a36c6c82d1a..be01a4a918e 100644
--- a/features/plugins.feature
+++ b/features/plugins.feature
@@ -6,7 +6,8 @@ Feature: Configuring and using plugins
Given I have an "index.html" file that contains "Whatever"
And I have a configuration file with "gems" set to "[jekyll_test_plugin]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Whatever" in "_site/index.html"
And I should see "this is a test" in "_site/test.txt"
@@ -17,7 +18,8 @@ Feature: Configuring and using plugins
| gems | [jekyll_test_plugin] |
| whitelist | [] |
When I run jekyll build --safe
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Whatever" in "_site/index.html"
And the "_site/test.txt" file should not exist
@@ -28,7 +30,8 @@ Feature: Configuring and using plugins
| gems | [jekyll_test_plugin, jekyll_test_plugin_malicious] |
| whitelist | [jekyll_test_plugin] |
When I run jekyll build --safe
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Whatever" in "_site/index.html"
And the "_site/test.txt" file should exist
And I should see "this is a test" in "_site/test.txt"
diff --git a/features/post_data.feature b/features/post_data.feature
index 2792a829f93..3b4f3cf7ead 100644
--- a/features/post_data.feature
+++ b/features/post_data.feature
@@ -11,7 +11,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post title: {{ page.title }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post title: Star Wars" in "_site/2009/03/27/star-wars.html"
Scenario: Use post.url variable
@@ -22,7 +23,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post url: {{ page.url }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post url: /2009/03/27/star-wars.html" in "_site/2009/03/27/star-wars.html"
Scenario: Use post.date variable
@@ -33,7 +35,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post date: {{ page.date | date_to_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post date: 27 Mar 2009" in "_site/2009/03/27/star-wars.html"
Scenario: Use post.id variable
@@ -44,7 +47,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post id: {{ page.id }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post id: /2009/03/27/star-wars" in "_site/2009/03/27/star-wars.html"
Scenario: Use post.content variable
@@ -55,7 +59,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post content: {{ content }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post content: Luke, I am your father.
" in "_site/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in a folder
@@ -67,7 +72,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in a folder and has category in YAML
@@ -79,7 +85,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | film | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/film/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in a folder and has categories in YAML
@@ -91,7 +98,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | [film, scifi] | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/film/scifi/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in a folder and duplicated category is in YAML
@@ -103,7 +111,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | movies | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Use post.tags variable
@@ -114,7 +123,8 @@ Feature: Post data
| Star Wars | 2009-05-18 | simple | twist | Luke, I am your father. |
And I have a simple layout that contains "Post tags: {{ page.tags }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post tags: twist" in "_site/2009/05/18/star-wars.html"
Scenario: Use post.categories variable when categories are in folders
@@ -127,7 +137,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when categories are in folders with mixed case
@@ -140,7 +151,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Luke, I am your father. |
And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post categories: scifi and Movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in YAML
@@ -151,7 +163,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | movies | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when category is in YAML and is mixed-case
@@ -162,7 +175,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Movies | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: Movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when categories are in YAML
@@ -173,7 +187,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | ['scifi', 'movies'] | Luke, I am your father. |
And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post categories: scifi and movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when categories are in YAML and are duplicated
@@ -184,7 +199,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | ['movies', 'movies'] | Luke, I am your father. |
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Superdirectories of _posts applied to post.categories
@@ -193,7 +209,8 @@ Feature: Post data
And I have a _layouts directory
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Subdirectories of _posts not applied to post.categories
@@ -202,7 +219,8 @@ Feature: Post data
And I have a _layouts directory
And I have a simple layout that contains "Post category: {{ page.categories }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post category: movies" in "_site/movies/2009/03/27/star-wars.html"
Scenario: Use post.categories variable when categories are in YAML with mixed case
@@ -214,7 +232,8 @@ Feature: Post data
| Star Trek | 2013-03-17 | simple | ['SciFi', 'movies'] | Jean Luc, I am your father. |
And I have a simple layout that contains "Post categories: {{ page.categories | array_to_sentence_string }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post categories: scifi and Movies" in "_site/scifi/movies/2009/03/27/star-wars.html"
And I should see "Post categories: SciFi and movies" in "_site/scifi/movies/2013/03/17/star-trek.html"
@@ -224,7 +243,8 @@ Feature: Post data
| title | type | date | content |
| my-post | html | 2013-04-12 | Source path: {{ page.path }} |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Source path: _posts/2013-04-12-my-post.html" in "_site//2013/04/12/my-post.html"
Examples:
@@ -239,7 +259,8 @@ Feature: Post data
| title | date | path | content |
| override | 2013-04-12 | override-path.html | Non-custom path: {{ page.path }} |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Non-custom path: _posts/2013-04-12-override.markdown" in "_site/2013/04/12/override.html"
Scenario: Disable a post from being published
@@ -249,7 +270,8 @@ Feature: Post data
| title | date | layout | published | content |
| Star Wars | 2009-03-27 | simple | false | Luke, I am your father. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/2009/03/27/star-wars.html" file should not exist
And I should see "Published!" in "_site/index.html"
@@ -261,7 +283,8 @@ Feature: Post data
| Star Wars | 2009-03-27 | simple | Darth Vader | Luke, I am your father. |
And I have a simple layout that contains "Post author: {{ page.author }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Post author: Darth Vader" in "_site/2009/03/27/star-wars.html"
Scenario: Previous and next posts title
@@ -274,6 +297,7 @@ Feature: Post data
| Terminator | 2009-05-27 | ordered | Arnold | Sayonara, baby |
And I have a ordered layout that contains "Previous post: {{ page.previous.title }} and next post: {{ page.next.title }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "next post: Some like it hot" in "_site/2009/03/27/star-wars.html"
And I should see "Previous post: Some like it hot" in "_site/2009/05/27/terminator.html"
diff --git a/features/post_excerpts.feature b/features/post_excerpts.feature
index c66c527bb6c..7344000c2b2 100644
--- a/features/post_excerpts.feature
+++ b/features/post_excerpts.feature
@@ -12,7 +12,8 @@ Feature: Post excerpts
| title | date | layout | content |
| entry1 | 2007-12-31 | post | content for entry1. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see exactly "content for entry1.
" in "_site/index.html"
Scenario: An excerpt from a post with a layout
@@ -24,7 +25,8 @@ Feature: Post excerpts
| title | date | layout | content |
| entry1 | 2007-12-31 | post | content for entry1. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the _site/2007 directory should exist
And the _site/2007/12 directory should exist
And the _site/2007/12/31 directory should exist
@@ -41,7 +43,8 @@ Feature: Post excerpts
| title | date | layout | content |
| entry1 | 2007-12-31 | post | content for entry1. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the _site/2007 directory should exist
And the _site/2007/12 directory should exist
And the _site/2007/12/31 directory should exist
diff --git a/features/rendering.feature b/features/rendering.feature
index 01507cb0b1c..5031ef06d8d 100644
--- a/features/rendering.feature
+++ b/features/rendering.feature
@@ -16,7 +16,8 @@ Feature: Rendering
Given I have a "index.html" page with layout "simple" that contains "Hi there, Jekyll {{ jekyll.environment }}!"
And I have a simple layout that contains "{{ content }}Ahoy, indeed!"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Hi there, Jekyll development!\nAhoy, indeed" in "_site/index.html"
Scenario: Don't place asset files in layout
@@ -25,7 +26,8 @@ Feature: Rendering
And I have a configuration file with "gems" set to "[jekyll-coffeescript]"
And I have a simple layout that contains "{{ content }}Ahoy, indeed!"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should not see "Ahoy, indeed!" in "_site/index.css"
And I should not see "Ahoy, indeed!" in "_site/index.js"
@@ -33,18 +35,21 @@ Feature: Rendering
Given I have an "index.scss" page that contains ".foo-bar { color:{{site.color}}; }"
And I have a configuration file with "color" set to "red"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see ".foo-bar {\n color: red; }" in "_site/index.css"
Scenario: Not render liquid in CoffeeScript without explicitly including jekyll-coffeescript
Given I have an "index.coffee" page with animal "cicada" that contains "hey='for {{page.animal}}'"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/index.js" file should not exist
Scenario: Render liquid in CoffeeScript with jekyll-coffeescript enabled
Given I have an "index.coffee" page with animal "cicada" that contains "hey='for {{page.animal}}'"
And I have a configuration file with "gems" set to "[jekyll-coffeescript]"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "hey = 'for cicada';" in "_site/index.js"
diff --git a/features/site_configuration.feature b/features/site_configuration.feature
index 379cea4f214..5c495356a61 100644
--- a/features/site_configuration.feature
+++ b/features/site_configuration.feature
@@ -8,7 +8,8 @@ Feature: Site configuration
And I have an "_sourcedir/index.html" file that contains "Changing source directory"
And I have a configuration file with "source" set to "_sourcedir"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Changing source directory" in "_site/index.html"
Scenario: Change destination directory
@@ -66,27 +67,31 @@ Feature: Site configuration
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
And I have a configuration file with "markdown" set to "rdiscount"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Google" in "_site/index.html"
Scenario: Use Kramdown for markup
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
And I have a configuration file with "markdown" set to "kramdown"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Google" in "_site/index.html"
Scenario: Use Redcarpet for markup
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
And I have a configuration file with "markdown" set to "redcarpet"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Google" in "_site/index.html"
Scenario: Highlight code with pygments
Given I have an "index.html" page that contains "{% highlight ruby %} puts 'Hello world!' {% endhighlight %}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Hello world!" in "_site/index.html"
And I should see "class=\"highlight\"" in "_site/index.html"
@@ -94,7 +99,8 @@ Feature: Site configuration
Given I have an "index.html" page that contains "{% highlight ruby %} puts 'Hello world!' {% endhighlight %}"
And I have a configuration file with "highlighter" set to "rouge"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Hello world!" in "_site/index.html"
And I should see "class=\"highlight\"" in "_site/index.html"
@@ -122,7 +128,8 @@ Feature: Site configuration
| entry1 | 2007-12-31 | post | content for entry1. |
| entry2 | 2020-01-31 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: 1 on 2010-01-01" in "_site/index.html"
And I should see "Post Layout: content for entry1.
" in "_site/2007/12/31/entry1.html"
And the "_site/2020/01/31/entry2.html" file should not exist
@@ -142,7 +149,8 @@ Feature: Site configuration
| entry1 | 2007-12-31 | post | content for entry1. |
| entry2 | 2020-01-31 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: 2 on 2010-01-01" in "_site/index.html"
And I should see "Post Layout: content for entry1.
" in "_site/2007/12/31/entry1.html"
And I should see "Post Layout: content for entry2.
" in "_site/2020/01/31/entry2.html"
@@ -161,7 +169,8 @@ Feature: Site configuration
| entry1 | 2013-04-09 23:22 -0400 | post | content for entry1. |
| entry2 | 2013-04-10 03:14 -0400 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: 2" in "_site/index.html"
And I should see "Post Layout: content for entry1.
\n built at 2013-04-09T23:22:00-04:00" in "_site/2013/04/09/entry1.html"
And I should see "Post Layout: content for entry2.
\n built at 2013-04-10T03:14:00-04:00" in "_site/2013/04/10/entry2.html"
@@ -180,7 +189,8 @@ Feature: Site configuration
| entry1 | 2013-04-09 23:22 +0400 | post | content for entry1. |
| entry2 | 2013-04-10 03:14 +0400 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: 2" in "_site/index.html"
And the "_site/2013/04/09/entry1.html" file should exist
And the "_site/2013/04/09/entry2.html" file should exist
@@ -198,7 +208,8 @@ Feature: Site configuration
| Oranges | 2009-04-01 | An article about oranges |
| Bananas | 2009-04-05 | An article about bananas |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And the "_site/2009/04/05/bananas.html" file should exist
And the "_site/2009/04/01/oranges.html" file should exist
And the "_site/2009/03/27/apples.html" file should not exist
@@ -211,7 +222,8 @@ Feature: Site configuration
| .gitignore |
| .foo |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see ".DS_Store" in "_site/.gitignore"
And the "_site/.htaccess" file should not exist
@@ -231,7 +243,8 @@ Feature: Site configuration
| entry1 | 2007-12-31 | post | content for entry1. |
| entry2 | 2020-01-31 | post | content for entry2. |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Page Layout: 2 on 2010-01-01" in "_site/index.html"
And I should see "Post Layout: content for entry1.
" in "_site/2007/12/31/entry1.html"
And I should see "Post Layout: content for entry2.
" in "_site/2020/01/31/entry2.html"
@@ -240,6 +253,7 @@ Feature: Site configuration
Given I have an "index.html" page with layout "page" that contains "FOO"
And I have a "_config.yml" file that contains "layouts: '../../../../../../../../../../../../../../usr/include'"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "FOO" in "_site/index.html"
And I should not see " " in "_site/index.html"
diff --git a/features/site_data.feature b/features/site_data.feature
index a7fadf34d17..e3c99a64154 100644
--- a/features/site_data.feature
+++ b/features/site_data.feature
@@ -6,14 +6,16 @@ Feature: Site data
Scenario: Use page variable in a page
Given I have an "contact.html" page with title "Contact" that contains "{{ page.title }}: email@example.com"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Contact: email@example.com" in "_site/contact.html"
Scenario Outline: Use page.path variable in a page
Given I have a directory
And I have a "" page that contains "Source path: {{ page.path }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Source path: " in "_site/"
Examples:
@@ -25,13 +27,15 @@ Feature: Site data
Scenario: Override page.path
Given I have an "override.html" page with path "custom-override.html" that contains "Custom path: {{ page.path }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Custom path: custom-override.html" in "_site/override.html"
Scenario: Use site.time variable
Given I have an "index.html" page that contains "{{ site.time }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see today's time in "_site/index.html"
Scenario: Use site.posts variable for latest post
@@ -43,7 +47,8 @@ Feature: Site data
| Second Post | 2009-03-26 | My Second Post |
| Third Post | 2009-03-27 | My Third Post |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Third Post: /2009/03/27/third-post.html" in "_site/index.html"
Scenario: Use site.posts variable in a loop
@@ -55,7 +60,8 @@ Feature: Site data
| Second Post | 2009-03-26 | My Second Post |
| Third Post | 2009-03-27 | My Third Post |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Third Post Second Post First Post" in "_site/index.html"
Scenario: Use site.categories.code variable
@@ -66,7 +72,8 @@ Feature: Site data
| Awesome Hack | 2009-03-26 | code | puts 'Hello World' |
| Delicious Beer | 2009-03-26 | food | 1) Yuengling |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Awesome Hack" in "_site/index.html"
Scenario: Use site.tags variable
@@ -76,7 +83,8 @@ Feature: Site data
| title | date | tag | content |
| Delicious Beer | 2009-03-26 | beer | 1) Yuengling |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Yuengling" in "_site/index.html"
Scenario: Order Posts by name when on the same date
@@ -90,18 +98,21 @@ Feature: Site data
| C | 2009-03-26 | C |
| last | 2009-04-26 | last |
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "last:C, C:B,last B:A,C A:first,B first:,A" in "_site/index.html"
Scenario: Use configuration date in site payload
Given I have an "index.html" page that contains "{{ site.url }}"
And I have a configuration file with "url" set to "http://example.com"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "http://example.com" in "_site/index.html"
Scenario: Access Jekyll version via jekyll.version
Given I have an "index.html" page that contains "{{ jekyll.version }}"
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "\d+\.\d+\.\d+" in "_site/index.html"
From ae3a71ed0d82809b6e27cb50b01fa4815cdd0344 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:53:07 -0800
Subject: [PATCH 0305/4996] features: config writing should decode value from
string to ruby
---
features/step_definitions.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index 71a92aea15a..151009a618d 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -98,7 +98,7 @@
else
{}
end
- config[key] = value
+ config[key] = YAML.load(value)
File.write("_config.yml", YAML.dump(config))
end
From 0a6f289ba5e7e59421194b4de36ec36ca6399574 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 11:53:16 -0800
Subject: [PATCH 0306/4996] page: write? should always be true
---
lib/jekyll/page.rb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index 0a93aa08ec8..fde456513d8 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -166,5 +166,9 @@ def index?
def trigger_hooks(hook_name, *args)
Jekyll::Hooks.trigger :pages, hook_name, self, *args
end
+
+ def write?
+ true
+ end
end
end
From 66dc083ad05c3b383fbb7a6d0a408957fccf46b0 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 12:47:36 -0800
Subject: [PATCH 0307/4996] Renderer: set paginator
---
lib/jekyll/renderer.rb | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb
index b4afa03cc71..539c4de8e42 100644
--- a/lib/jekyll/renderer.rb
+++ b/lib/jekyll/renderer.rb
@@ -48,10 +48,18 @@ def run
payload["page"] = document.to_liquid
+ if document.respond_to? :pager
+ payload["paginator"] = document.pager.to_liquid
+ end
+
if document.is_a?(Document) && document.collection.label == 'posts'
payload['site']['related_posts'] = document.related_posts
end
+ # render and transform content (this becomes the final content of the object)
+ payload['highlighter_prefix'] = converters.first.highlighter_prefix
+ payload['highlighter_suffix'] = converters.first.highlighter_suffix
+
Jekyll.logger.debug "Pre-Render Hooks:", document.relative_path
document.trigger_hooks(:pre_render, payload)
@@ -60,10 +68,6 @@ def run
:registers => { :site => site, :page => payload['page'] }
}
- # render and transform content (this becomes the final content of the object)
- payload['highlighter_prefix'] = converters.first.highlighter_prefix
- payload['highlighter_suffix'] = converters.first.highlighter_suffix
-
output = document.content
if document.render_with_liquid?
From e5d8bdee8fe570d1f6a055fec852af9e39ef6cc7 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 12:47:48 -0800
Subject: [PATCH 0308/4996] Page: freeze true in write?
---
lib/jekyll/page.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index fde456513d8..3760410be3d 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -168,7 +168,7 @@ def trigger_hooks(hook_name, *args)
end
def write?
- true
+ true.freeze
end
end
end
From 1d369aada31e64ad4ffff2ac2ac71c86b117d9dd Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 12:48:12 -0800
Subject: [PATCH 0309/4996] features: some under-the-hood enhancements
---
features/step_definitions.rb | 6 ++----
features/support/helpers.rb | 1 +
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index 151009a618d..a6790a15c94 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -105,10 +105,8 @@
#
Given %r{^I have a configuration file with:$} do |table|
- File.open("_config.yml", "w") do |f|
- table.hashes.each do |row|
- f.write("#{row["key"]}: #{row["value"]}\n")
- end
+ table.hashes.each do |row|
+ step %(I have a configuration file with "#{row["key"]}" set to "#{row["value"]}")
end
end
diff --git a/features/support/helpers.rb b/features/support/helpers.rb
index 83010b9e97d..d65695cedab 100644
--- a/features/support/helpers.rb
+++ b/features/support/helpers.rb
@@ -2,6 +2,7 @@
require "jekyll/utils"
require "open3"
require "time"
+require "safe_yaml/load"
class Paths
SOURCE_DIR = Pathname.new(File.expand_path("../..", __dir__))
From cc6e49a3890d7a723c217578055a6f6d607b3a7a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 13:41:41 -0800
Subject: [PATCH 0310/4996] features/embed_filters: reformat a little
---
features/embed_filters.feature | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
diff --git a/features/embed_filters.feature b/features/embed_filters.feature
index 0f2d0adabd7..e3802fe55da 100644
--- a/features/embed_filters.feature
+++ b/features/embed_filters.feature
@@ -80,15 +80,13 @@ Feature: Embed filters
Scenario: Sort pages by the title
Given I have a _layouts directory
+ And I have the following pages:
+ | title | layout | content |
+ | Dog | default | Run |
+ | Bird | default | Fly |
And I have the following page:
- | title | layout | content |
- | Dog | default | Run |
- And I have the following page:
- | title | layout | content |
- | Bird | default | Fly |
- And I have the following page:
- | layout | content |
- | default | Jump |
+ | layout | content |
+ | default | Jump |
And I have a default layout that contains "{% assign sorted_pages = site.pages | sort: 'title' %}The rule of {{ sorted_pages.size }}: {% for p in sorted_pages %}{{ p.content | strip_html | strip_newlines }}, {% endfor %}"
When I run jekyll build
Then I should get a zero exit status
@@ -97,15 +95,13 @@ Feature: Embed filters
Scenario: Sort pages by the title ordering pages without title last
Given I have a _layouts directory
+ And I have the following pages:
+ | title | layout | content |
+ | Dog | default | Run |
+ | Bird | default | Fly |
And I have the following page:
- | title | layout | content |
- | Dog | default | Run |
- And I have the following page:
- | title | layout | content |
- | Bird | default | Fly |
- And I have the following page:
- | layout | content |
- | default | Jump |
+ | layout | content |
+ | default | Jump |
And I have a default layout that contains "{% assign sorted_pages = site.pages | sort: 'title', 'last' %}The rule of {{ sorted_pages.size }}: {% for p in sorted_pages %}{{ p.content | strip_html | strip_newlines }}, {% endfor %}"
When I run jekyll build
Then I should get a zero exit status
From 2554281188dd8ab9cb6864dfd27ef209400cc0a8 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 13:41:49 -0800
Subject: [PATCH 0311/4996] document#merge_data!: reformat
---
lib/jekyll/document.rb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 911cb4e6750..2911c4aa04b 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -59,7 +59,10 @@ def merge_data!(other)
end
Utils.deep_merge_hashes!(data, other)
if data.key?('date') && !data['date'].is_a?(Time)
- data['date'] = Utils.parse_date(data['date'].to_s, "Document '#{relative_path}' does not have a valid date in the YAML front matter.")
+ data['date'] = Utils.parse_date(
+ data['date'].to_s,
+ "Document '#{relative_path}' does not have a valid date in the YAML front matter."
+ )
end
data
end
From 5cf5ce979f41ab0e8534171e315392d1f8b90cff Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 13:42:03 -0800
Subject: [PATCH 0312/4996] test: add assert_exist and refute_exist
---
test/helper.rb | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/test/helper.rb b/test/helper.rb
index 936638d230f..78b1f78b375 100644
--- a/test/helper.rb
+++ b/test/helper.rb
@@ -42,6 +42,22 @@ def jruby?
)
]
+module Minitest::Assertions
+ def assert_exist(filename, msg = nil)
+ msg = message(msg) {
+ "Expected '#{filename}' to exist"
+ }
+ assert File.exist?(filename), msg
+ end
+
+ def refute_exist(filename, msg = nil)
+ msg = message(msg) {
+ "Expected '#{filename}' not to exist"
+ }
+ refute File.exist?(filename), msg
+ end
+end
+
class JekyllUnitTest < Minitest::Test
include ::RSpec::Mocks::ExampleMethods
From 2de5bacb418441a508f42101e2c83b3179269970 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 13:45:17 -0800
Subject: [PATCH 0313/4996] pages' permalink' extnames must be respected
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts a bit of the work @willnorris had made to support
extensionless permalinks. Using the ‘permalink’ front matter will no
longer work as it must allow non-html extensions to be written.
---
test/source/+/foo.md | 2 +-
test/source/deal.with.dots.html | 1 -
test/test_page.rb | 1 -
3 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/test/source/+/foo.md b/test/source/+/foo.md
index 30f9535f3a9..bd2d1482285 100644
--- a/test/source/+/foo.md
+++ b/test/source/+/foo.md
@@ -1,7 +1,7 @@
---
layout: default
title : Page inside +
-permalink: /+/plus+in+url
+permalink: /+/plus+in+url.html
---
Line 1
{{ page.title }}
diff --git a/test/source/deal.with.dots.html b/test/source/deal.with.dots.html
index 6c87d806207..fb3d473460f 100644
--- a/test/source/deal.with.dots.html
+++ b/test/source/deal.with.dots.html
@@ -1,6 +1,5 @@
---
title: Deal with dots
-permalink: /deal.with.dots
---
Let's test if jekyll deals properly with dots.
diff --git a/test/test_page.rb b/test/test_page.rb
index 904f5bd5d78..938f2fc8871 100644
--- a/test/test_page.rb
+++ b/test/test_page.rb
@@ -69,7 +69,6 @@ def do_render(page)
@dest_file = dest_dir("deal.with.dots.html")
assert_equal "deal.with.dots", @page.basename
- assert_equal "/deal.with.dots", @page.url
assert_equal @dest_file, @page.destination(dest_dir)
end
From 275d56a0fed0ce6340e9b984b551da07867a2ef4 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 13:45:36 -0800
Subject: [PATCH 0314/4996] test: use {assert,refute}_exist everywhere
---
test/test_cleaner.rb | 18 +++++++++---------
test/test_coffeescript.rb | 2 +-
test/test_generated_site.rb | 23 +++++++++++++++--------
test/test_new_command.rb | 8 ++++----
test/test_page.rb | 30 +++++++++++++++---------------
test/test_regenerator.rb | 2 +-
test/test_site.rb | 26 +++++++++++++-------------
7 files changed, 58 insertions(+), 51 deletions(-)
diff --git a/test/test_cleaner.rb b/test/test_cleaner.rb
index 819dbf5cd21..43d99503a51 100644
--- a/test/test_cleaner.rb
+++ b/test/test_cleaner.rb
@@ -21,19 +21,19 @@ class TestCleaner < JekyllUnitTest
end
should "keep the parent directory" do
- assert File.exist?(dest_dir('to_keep'))
+ assert_exist dest_dir('to_keep')
end
should "keep the child directory" do
- assert File.exist?(dest_dir('to_keep/child_dir'))
+ assert_exist dest_dir('to_keep', 'child_dir')
end
should "keep the file in the directory in keep_files" do
- assert File.exist?(File.join(dest_dir('to_keep/child_dir'), 'index.html'))
+ assert_exist dest_dir('to_keep', 'child_dir', 'index.html')
end
should "delete the file in the directory not in keep_files" do
- assert !File.exist?(File.join(dest_dir('to_keep'), 'index.html'))
+ refute_exist dest_dir('to_keep', 'index.html')
end
end
@@ -41,8 +41,8 @@ class TestCleaner < JekyllUnitTest
setup do
clear_dest
- FileUtils.mkdir_p(source_dir('no_files_inside/child_dir'))
- FileUtils.touch(File.join(source_dir('no_files_inside/child_dir'), 'index.html'))
+ FileUtils.mkdir_p(source_dir('no_files_inside', 'child_dir'))
+ FileUtils.touch(source_dir('no_files_inside', 'child_dir', 'index.html'))
@site = fixture_site
@site.process
@@ -57,15 +57,15 @@ class TestCleaner < JekyllUnitTest
end
should "keep the parent directory" do
- assert File.exist?(dest_dir('no_files_inside'))
+ assert_exist dest_dir('no_files_inside')
end
should "keep the child directory" do
- assert File.exist?(dest_dir('no_files_inside/child_dir'))
+ assert_exist dest_dir('no_files_inside', 'child_dir')
end
should "keep the file" do
- assert File.exist?(File.join(dest_dir('no_files_inside/child_dir'), 'index.html'))
+ assert_exist source_dir('no_files_inside', 'child_dir', 'index.html')
end
end
end
diff --git a/test/test_coffeescript.rb b/test/test_coffeescript.rb
index 68e19a52ae5..09c9b0a87a0 100644
--- a/test/test_coffeescript.rb
+++ b/test/test_coffeescript.rb
@@ -37,7 +37,7 @@ class TestCoffeeScript < JekyllUnitTest
end
should "write a JS file in place" do
- assert File.exist?(@test_coffeescript_file), "Can't find the converted CoffeeScript file in the dest_dir."
+ assert_exist @test_coffeescript_file, "Can't find the converted CoffeeScript file in the dest_dir."
end
should "produce JS" do
diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb
index 39a8b3d9669..400ec4d784a 100644
--- a/test/test_generated_site.rb
+++ b/test/test_generated_site.rb
@@ -31,17 +31,17 @@ class TestGeneratedSite < JekyllUnitTest
end
should "hide unpublished page" do
- assert !File.exist?(dest_dir('/unpublished.html'))
+ refute_exist dest_dir('/unpublished.html')
end
should "not copy _posts directory" do
- assert !File.exist?(dest_dir('_posts'))
+ refute_exist dest_dir('_posts')
end
should "process other static files and generate correct permalinks" do
- assert File.exist?(dest_dir('/about/index.html')), "about/index.html should exist"
- assert File.exist?(dest_dir('/contacts.html')), "contacts.html should exist"
- assert File.exist?(dest_dir('/dynamic_file.php')), "dynamic_file.php should exist"
+ assert_exist dest_dir('about', 'index.html'), "about/index.html should exist"
+ assert_exist dest_dir('contacts.html'), "contacts.html should exist"
+ assert_exist dest_dir('dynamic_file.php'), "dynamic_file.php should exist"
end
should "print a nice list of static files" do
@@ -72,15 +72,22 @@ class TestGeneratedSite < JekyllUnitTest
should "ensure limit posts is 0 or more" do
assert_raises ArgumentError do
clear_dest
- config = Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => -1})
-
+ config = Jekyll::Configuration::DEFAULTS.merge({
+ 'source' => source_dir,
+ 'destination' => dest_dir,
+ 'limit_posts' => -1
+ })
@site = fixture_site(config)
end
end
should "acceptable limit post is 0" do
clear_dest
- config = Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 0})
+ config = Jekyll::Configuration::DEFAULTS.merge({
+ 'source' => source_dir,
+ 'destination' => dest_dir,
+ 'limit_posts' => 0
+ })
assert Site.new(config), "Couldn't create a site with the given limit_posts."
end
diff --git a/test/test_new_command.rb b/test/test_new_command.rb
index 33bd1044262..f0d2a389f99 100644
--- a/test/test_new_command.rb
+++ b/test/test_new_command.rb
@@ -24,9 +24,9 @@ def site_template
end
should 'create a new directory' do
- assert !File.exist?(@full_path)
+ refute_exist @full_path
Jekyll::Commands::New.process(@args)
- assert File.exist?(@full_path)
+ assert_exist @full_path
end
should 'display a success message' do
@@ -96,9 +96,9 @@ def site_template
end
should 'create a new directory' do
- assert !File.exist?(@site_name_with_spaces)
+ refute_exist @site_name_with_spaces
capture_stdout { Jekyll::Commands::New.process(@multiple_args) }
- assert File.exist?(@site_name_with_spaces)
+ assert_exist @site_name_with_spaces
end
end
diff --git a/test/test_page.rb b/test/test_page.rb
index 938f2fc8871..2728b4e3337 100644
--- a/test/test_page.rb
+++ b/test/test_page.rb
@@ -213,7 +213,7 @@ def do_render(page)
do_render(page)
page.write(dest_dir)
- assert !File.exist?(unexpected)
+ refute_exist unexpected
end
end
@@ -238,7 +238,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts.html'))
+ assert_exist dest_dir('contacts.html')
end
should "write even when the folder name is plus and permalink has +" do
@@ -246,8 +246,8 @@ def do_render(page)
do_render(page)
page.write(dest_dir)
- assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, '+', 'plus+in+url.html'))
+ assert File.directory?(dest_dir), "#{dest_dir} should be a directory"
+ assert_exist dest_dir('+', 'plus+in+url.html')
end
should "write even when permalink has '%# +'" do
@@ -256,7 +256,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, '+', '%# +.html'))
+ assert_exist dest_dir('+', '%# +.html')
end
should "write properly without html extension" do
@@ -266,7 +266,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'index.html'))
+ assert_exist dest_dir('contacts', 'index.html')
end
should "support .htm extension and respects that" do
@@ -276,7 +276,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'index.htm'))
+ assert_exist dest_dir('contacts', 'index.htm')
end
should "support .xhtml extension and respects that" do
@@ -286,7 +286,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'index.xhtml'))
+ assert_exist dest_dir('contacts', 'index.xhtml')
end
should "write properly with extension different from html" do
@@ -295,10 +295,10 @@ def do_render(page)
do_render(page)
page.write(dest_dir)
- assert_equal("/sitemap.xml", page.url)
- assert_nil(page.url[/\.html$/])
+ assert_equal "/sitemap.xml", page.url
+ assert_nil page.url[/\.html$/]
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir,'sitemap.xml'))
+ assert_exist dest_dir('sitemap.xml')
end
should "write dotfiles properly" do
@@ -307,7 +307,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, '.htaccess'))
+ assert_exist dest_dir('.htaccess')
end
context "in a directory hierarchy" do
@@ -317,7 +317,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'index.html'))
+ assert_exist dest_dir('contacts', 'index.html')
end
should "write properly" do
@@ -326,7 +326,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'bar.html'))
+ assert_exist dest_dir('contacts', 'bar.html')
end
should "write properly without html extension" do
@@ -336,7 +336,7 @@ def do_render(page)
page.write(dest_dir)
assert File.directory?(dest_dir)
- assert File.exist?(File.join(dest_dir, 'contacts', 'bar', 'index.html'))
+ assert_exist dest_dir('contacts', 'bar', 'index.html')
end
end
end
diff --git a/test/test_regenerator.rb b/test/test_regenerator.rb
index c9dfb5730c3..1ed212110d5 100644
--- a/test/test_regenerator.rb
+++ b/test/test_regenerator.rb
@@ -112,7 +112,7 @@ class TestRegenerator < JekyllUnitTest
assert_equal 1, @regenerator.metadata.size
path = @regenerator.metadata.keys[0]
- assert File.exist?(@layout_path)
+ assert_exist @layout_path
@regenerator.add_dependency(path, @layout_path)
File.rename(@layout_path, @layout_path + ".tmp")
diff --git a/test/test_site.rb b/test/test_site.rb
index 970084cf165..e0883b49f90 100644
--- a/test/test_site.rb
+++ b/test/test_site.rb
@@ -275,25 +275,25 @@ def generate(site)
should 'remove orphaned files in destination' do
@site.process
- assert !File.exist?(dest_dir('obsolete.html'))
- assert !File.exist?(dest_dir('qux'))
- assert !File.exist?(dest_dir('quux'))
- assert File.exist?(dest_dir('.git'))
- assert File.exist?(dest_dir('.git/HEAD'))
+ refute_exist dest_dir('obsolete.html')
+ refute_exist dest_dir('qux')
+ refute_exist dest_dir('quux')
+ assert_exist dest_dir('.git')
+ assert_exist dest_dir('.git', 'HEAD')
end
should 'remove orphaned files in destination - keep_files .svn' do
config = site_configuration('keep_files' => %w{.svn})
@site = Site.new(config)
@site.process
- assert !File.exist?(dest_dir('.htpasswd'))
- assert !File.exist?(dest_dir('obsolete.html'))
- assert !File.exist?(dest_dir('qux'))
- assert !File.exist?(dest_dir('quux'))
- assert !File.exist?(dest_dir('.git'))
- assert !File.exist?(dest_dir('.git/HEAD'))
- assert File.exist?(dest_dir('.svn'))
- assert File.exist?(dest_dir('.svn/HEAD'))
+ refute_exist dest_dir('.htpasswd')
+ refute_exist dest_dir('obsolete.html')
+ refute_exist dest_dir('qux')
+ refute_exist dest_dir('quux')
+ refute_exist dest_dir('.git')
+ refute_exist dest_dir('.git', 'HEAD')
+ assert_exist dest_dir('.svn')
+ assert_exist dest_dir('.svn', 'HEAD')
end
end
From a351a70b030f2be33cbca4b97bb323fada9dda99 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 14:08:53 -0800
Subject: [PATCH 0315/4996] test: Slight refactor to doublecheck destination.
---
test/test_generated_site.rb | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb
index 400ec4d784a..301cd8f8fea 100644
--- a/test/test_generated_site.rb
+++ b/test/test_generated_site.rb
@@ -38,10 +38,15 @@ class TestGeneratedSite < JekyllUnitTest
refute_exist dest_dir('_posts')
end
+ should "process a page with a folder permalink properly" do
+ about = @site.pages.find {|page| page.name == 'about.html' }
+ assert_equal dest_dir('about', 'index.html'), about.destination(dest_dir)
+ assert_exist dest_dir('about', 'index.html')
+ end
+
should "process other static files and generate correct permalinks" do
- assert_exist dest_dir('about', 'index.html'), "about/index.html should exist"
- assert_exist dest_dir('contacts.html'), "contacts.html should exist"
- assert_exist dest_dir('dynamic_file.php'), "dynamic_file.php should exist"
+ assert_exist dest_dir('contacts.html')
+ assert_exist dest_dir('dynamic_file.php')
end
should "print a nice list of static files" do
From 4de1873b56c936842c8fac550cfadd9a7e355e6f Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 14:09:14 -0800
Subject: [PATCH 0316/4996] Renderer: #output_ext should check to make sure the
output extension of the permalink isn't empty
---
lib/jekyll/renderer.rb | 39 ++++++++++++++++++++++++---------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb
index 539c4de8e42..c7b6042b538 100644
--- a/lib/jekyll/renderer.rb
+++ b/lib/jekyll/renderer.rb
@@ -22,21 +22,7 @@ def converters
#
# Returns the output extname including the leading period.
def output_ext
- @output_ext ||= if document.permalink
- File.extname(document.permalink)
- else
- if output_exts.size == 1
- output_exts.last
- else
- output_exts[-2]
- end
- end
- end
-
- def output_exts
- @output_exts ||= converters.map do |c|
- c.output_ext(document.extname)
- end.compact
+ @output_ext ||= (permalink_ext || converter_output_ext)
end
######################
@@ -178,5 +164,28 @@ def place_in_layouts(content, payload, info)
output
end
+
+ private
+
+ def permalink_ext
+ if document.permalink
+ permalink_ext = File.extname(document.permalink)
+ permalink_ext unless permalink_ext.empty?
+ end
+ end
+
+ def converter_output_ext
+ if output_exts.size == 1
+ output_exts.last
+ else
+ output_exts[-2]
+ end
+ end
+
+ def output_exts
+ @output_exts ||= converters.map do |c|
+ c.output_ext(document.extname)
+ end.compact
+ end
end
end
From 2d5feab2ae45a6597a11887210f40086a59513f1 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 18 Jan 2016 15:00:47 -0800
Subject: [PATCH 0317/4996] Update history to reflect merge of #4373 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index ba8e9a81e46..5bd8a10e186 100644
--- a/History.markdown
+++ b/History.markdown
@@ -38,6 +38,7 @@
* Escape html from site.title and page.title in site template (#4307)
* Allow custom file extensions if defined in `permalink` YAML front matter (#4314)
* Fix deep_merge_hashes! handling of drops and hashes (#4359)
+ * Page should respect output extension of its permalink (#4373)
### Development Fixes
From e75d703806574db362cbe19ee0db185b0cf4174a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 15:33:58 -0800
Subject: [PATCH 0318/4996] Page#write? shouldn't freeze 'true'
---
lib/jekyll/page.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index 3760410be3d..fde456513d8 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -168,7 +168,7 @@ def trigger_hooks(hook_name, *args)
end
def write?
- true.freeze
+ true
end
end
end
From d27f1d95d56662935bfd5b00b0a63a4c02369547 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 15:34:50 -0800
Subject: [PATCH 0319/4996] features: #run_command should prefix command with $
---
features/support/helpers.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/features/support/helpers.rb b/features/support/helpers.rb
index d65695cedab..b8334cfd619 100644
--- a/features/support/helpers.rb
+++ b/features/support/helpers.rb
@@ -102,7 +102,7 @@ def run_in_shell(*args)
File.write(Paths.status_file, p.value.exitstatus)
File.open(Paths.output_file, "wb") do |f|
- f.puts args.join(" ")
+ f.puts "$ " << args.join(" ")
f.puts out
f.puts err
f.puts "EXIT STATUS: #{p.value.exitstatus}"
From be0e951bb09b8935af94c508b8b48a354c5f3ea6 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 15:35:11 -0800
Subject: [PATCH 0320/4996] features: Reorganize step definitions to reduce
duplication
---
features/step_definitions.rb | 64 +++++++++++++++++-------------------
1 file changed, 30 insertions(+), 34 deletions(-)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index a6790a15c94..2e47e369aab 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -167,72 +167,68 @@
#
-Then %r{^the (.*) directory should +exist$} do |dir|
- expect(Pathname.new(dir)).to exist
-end
-
-#
-
-Then %r{^the (.*) directory should not exist$} do |dir|
- expect(Pathname.new(dir)).not_to exist
+Then %r{^the (.*) directory should +(not )?exist$} do |dir, negative|
+ if negative.nil?
+ expect(Pathname.new(dir)).to exist
+ else
+ expect(Pathname.new(dir)).to_not exist
+ end
end
#
-Then %r{^I should see "(.*)" in "(.*)"$} do |text, file|
+Then %r{^I should (not )?see "(.*)" in "(.*)"$} do |negative, text, file|
+ step %(the "#{file}" file should exist)
regexp = Regexp.new(text, Regexp::MULTILINE)
- expect(file_contents(file)).to match regexp
+ if negative.nil? || negative.empty?
+ expect(file_contents(file)).to match regexp
+ else
+ expect(file_contents(file)).not_to match regexp
+ end
end
#
Then %r{^I should see exactly "(.*)" in "(.*)"$} do |text, file|
+ step %(the "#{file}" file should exist)
expect(file_contents(file).strip).to eq text
end
#
-Then %r{^I should not see "(.*)" in "(.*)"$} do |text, file|
- regexp = Regexp.new(text, Regexp::MULTILINE)
- expect(file_contents(file)).not_to match regexp
-end
-
-#
-
Then %r{^I should see escaped "(.*)" in "(.*)"$} do |text, file|
- regexp = Regexp.new(Regexp.escape(text))
- expect(file_contents(file)).to match regexp
-end
-
-#
-
-Then %r{^the "(.*)" file should +exist$} do |file|
- expect(Pathname.new(file)).to exist
+ step %(I should see "#{Regexp.escape(text)}" in "#{file}")
end
#
-Then %r{^the "(.*)" file should not exist$} do |file|
- expect(Pathname.new(file)).to_not exist
+Then %r{^the "(.*)" file should +(not )?exist$} do |file, negative|
+ if negative.nil?
+ expect(Pathname.new(file)).to exist
+ else
+ expect(Pathname.new(file)).to_not exist
+ end
end
#
Then %r{^I should see today's time in "(.*)"$} do |file|
- seconds = seconds_agnostic_time(Time.now)
- expect(file_contents(file)).to match Regexp.new(seconds)
+ step %(I should see "#{seconds_agnostic_time(Time.now)}" in "#{file}")
end
#
Then %r{^I should see today's date in "(.*)"$} do |file|
- regexp = Regexp.new(Date.today.to_s)
- expect(file_contents(file)).to match regexp
+ step %(I should see "#{Date.today.to_s}" in "#{file}")
end
#
-Then %r{^I should see "(.*)" in the build output$} do |text|
- expect(jekyll_run_output).to match Regexp.new(text)
+Then %r{^I should (not )?see "(.*)" in the build output$} do |negative, text|
+ if negative.nil? || negative.empty?
+ expect(jekyll_run_output).to match Regexp.new(text)
+ else
+ expect(jekyll_run_output).not_to match Regexp.new(text)
+ end
end
#
@@ -244,5 +240,5 @@
#
Then %r{^I should get a non-zero exit(?:\-| )status$} do
- expect(jekyll_run_status.to_i).not_to match(%r{EXIT STATUS: 0})
+ step %(I should not see "EXIT STATUS: 0" in the build output)
end
From 32fba4f01a4a1c9a947e1bedc52ba86e12c6a605 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 15:39:53 -0800
Subject: [PATCH 0321/4996] Release :gem: v3.1.0.pre.rc2
---
lib/jekyll/version.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index 66eebc1c051..394cef78fec 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.0.pre.rc1'
+ VERSION = '3.1.0.pre.rc2'
end
From 00285f7b9ae8652df69a8cc1ad052f424a1994bb Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 18 Jan 2016 15:39:56 -0800
Subject: [PATCH 0322/4996] Release :gem: 3.1.0.pre.rc2
From 56a711f1eea837b37d57a5868e222f435240d540 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 19 Jan 2016 10:11:54 -0600
Subject: [PATCH 0323/4996] Move to static Ruby versions so we can test on
latest versions.
---
.travis.yml | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index fafd57c396b..29b0a836f47 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,16 +6,17 @@ language: ruby
sudo: false
rvm:
-- 2.2
-- 2.1
-- 2.0
-- jruby-9.0.3.0
+- 2.0.0-p648
+- 2.1.8
+- 2.2.4
+- 2.3.0
+- jruby-9.0.4.0
- ruby-head
matrix:
fast_finish: true
allow_failures:
- - rvm: jruby-9.0.3.0
+ - rvm: jruby-9.0.4.0
- rvm: ruby-head
env:
matrix:
From ecc5121918ba6fbec97f18d766a47ee3a18328f4 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 19 Jan 2016 10:15:58 -0600
Subject: [PATCH 0324/4996] Update our badge URL's for more reliability.
---
README.markdown | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/README.markdown b/README.markdown
index 9ee529f357d..577e774c347 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,11 +1,16 @@
# [Jekyll](http://jekyllrb.com/)
-[](https://rubygems.org/gems/jekyll)
-[](https://travis-ci.org/jekyll/jekyll)
-[](https://codeclimate.com/github/jekyll/jekyll)
-[](https://codeclimate.com/github/jekyll/jekyll/coverage)
-[](https://gemnasium.com/jekyll/jekyll)
-[](https://hakiri.io/github/jekyll/jekyll/master)
+[][travis]
+[][coverage]
+[][codeclimate]
+[][gemnasium]
+[][hakiri]
+
+[gemnasium]: https://gemnasium.com/jekyll/jekyll
+[codeclimate]: https://codeclimate.com/github/jekyll/jekyll
+[coverage]: https://codeclimate.com/github/jekyll/jekyll/coverage
+[hakiri]: https://hakiri.io/github/jekyll/jekyll/master
+[travis]: https://travis-ci.org/jekyll/jekyll
By Tom Preston-Werner, Nick Quaranto, Parker Moore, and many [awesome contributors](https://github.com/jekyll/jekyll/graphs/contributors)!
From d50656021f2ff9ea0f46bd1a58eb1b4f1cc83d1e Mon Sep 17 00:00:00 2001
From: rebornix
Date: Fri, 27 Nov 2015 13:40:30 +0800
Subject: [PATCH 0325/4996] Fix #4188: Extract title from filename successfully
when dateless.
---
features/collections.feature | 19 +++++++++++++++++--
lib/jekyll/document.rb | 5 ++++-
.../_thanksgiving/2015-11-26-thanksgiving.md | 3 +++
test/source/_thanksgiving/black-friday.md | 3 +++
4 files changed, 27 insertions(+), 3 deletions(-)
create mode 100644 test/source/_thanksgiving/2015-11-26-thanksgiving.md
create mode 100644 test/source/_thanksgiving/black-friday.md
diff --git a/features/collections.feature b/features/collections.feature
index 888bd1c2ddc..90715b57cd0 100644
--- a/features/collections.feature
+++ b/features/collections.feature
@@ -155,5 +155,20 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, , Site#generate," in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate, YAML with Dots," in "_site/index.html"
+
+ Scenario: Rendered collection with date/dateless filename
+ Given I have an "index.html" page that contains "Collections: {% for method in site.thanksgiving %}{{ method.title }} {% endfor %}"
+ And I have fixture collections
+ And I have a "_config.yml" file with content:
+ """
+ collections:
+ thanksgiving:
+ output: true
+ """
+ When I run jekyll build
+ Then the _site directory should exist
+ And I should see "Thanksgiving Black Friday" in "_site/index.html"
+ And I should see "Happy Thanksgiving" in "_site/thanksgiving/2015-11-26-thanksgiving.html"
+ And I should see "Black Friday" in "_site/thanksgiving/black-friday.html"
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 2911c4aa04b..d4db403cbbc 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -8,7 +8,7 @@ class Document
attr_accessor :content, :output
YAML_FRONT_MATTER_REGEXP = /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
- DATELESS_FILENAME_MATCHER = /^(.*)(\.[^.]+)$/
+ DATELESS_FILENAME_MATCHER = /^(.+\/)*(.*)(\.[^.]+)$/
DATE_FILENAME_MATCHER = /^(.+\/)*(\d+-\d+-\d+)-(.*)(\.[^.]+)$/
# Create a new Document.
@@ -294,6 +294,9 @@ def post_read
})
merge_data!({ "date" => date }) if data['date'].nil? || data['date'].to_i == site.time.to_i
data['title'] ||= slug.split('-').select(&:capitalize).join(' ')
+ elsif DATELESS_FILENAME_MATCHER =~ relative_path
+ m, cats, slug, ext = *relative_path.match(DATELESS_FILENAME_MATCHER)
+ data['title'] ||= slug.split('-').select {|w| w.capitalize! || w }.join(' ')
end
populate_categories
populate_tags
diff --git a/test/source/_thanksgiving/2015-11-26-thanksgiving.md b/test/source/_thanksgiving/2015-11-26-thanksgiving.md
new file mode 100644
index 00000000000..48d2dd58cba
--- /dev/null
+++ b/test/source/_thanksgiving/2015-11-26-thanksgiving.md
@@ -0,0 +1,3 @@
+---
+---
+Happy {{ page.title }} !
diff --git a/test/source/_thanksgiving/black-friday.md b/test/source/_thanksgiving/black-friday.md
new file mode 100644
index 00000000000..1d8ea1bbad4
--- /dev/null
+++ b/test/source/_thanksgiving/black-friday.md
@@ -0,0 +1,3 @@
+---
+---
+{{ page.title }}
From f8e86721481eff5f12910f0be800a1e36a790381 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 28 Nov 2015 01:22:24 -0600
Subject: [PATCH 0326/4996] Fix #4191: Reduce Document#post_read complexity
slightly.
---
lib/jekyll/document.rb | 32 ++++++++++++++++++--------------
lib/jekyll/utils.rb | 8 ++++++--
2 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index d4db403cbbc..51d0514ea34 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -286,24 +286,21 @@ def read(opts = {})
end
def post_read
- if DATE_FILENAME_MATCHER =~ relative_path
- _, _, date, slug, ext = *relative_path.match(DATE_FILENAME_MATCHER)
- merge_data!({
- "slug" => slug,
- "ext" => ext
- })
- merge_data!({ "date" => date }) if data['date'].nil? || data['date'].to_i == site.time.to_i
- data['title'] ||= slug.split('-').select(&:capitalize).join(' ')
+ if relative_path =~ DATE_FILENAME_MATCHER
+ cats, date, slug, ext = $1, $2, $3, $4
+ merge_data!("date" => date) if !data['date'] || data['date'].to_i == site.time.to_i
elsif DATELESS_FILENAME_MATCHER =~ relative_path
- m, cats, slug, ext = *relative_path.match(DATELESS_FILENAME_MATCHER)
- data['title'] ||= slug.split('-').select {|w| w.capitalize! || w }.join(' ')
+ cats, slug, ext = $1, $2, $3
end
+
+ merge_data!("slug" => slug, "ext" => ext)
+
+ # Try to ensure the user gets a title.
+ data["title"] ||= Utils.titleize_slug(slug)
+
populate_categories
populate_tags
-
- if generate_excerpt?
- data['excerpt'] ||= Jekyll::Excerpt.new(self)
- end
+ generate_excerpt
end
# Add superdirectories of the special_dir to categories.
@@ -440,5 +437,12 @@ def method_missing(method, *args, &blck)
super
end
end
+
+ private # :nodoc:
+ def generate_excerpt
+ if generate_excerpt?
+ data["excerpt"] ||= Jekyll::Excerpt.new(self)
+ end
+ end
end
end
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 9ffff548e6f..6e0023de679 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -10,8 +10,12 @@ module Utils
SLUGIFY_DEFAULT_REGEXP = Regexp.new('[^[:alnum:]]+').freeze
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
- def strip_heredoc(str)
- str.gsub(/^[ \t]{#{(str.scan(/^[ \t]*(?=\S)/).min || "").size}}/, "")
+ # Takes a slug and turns it into a simple title.
+
+ def titleize_slug(slug)
+ slug.split("-").map! do |val|
+ val.capitalize!
+ end.join(" ")
end
# Non-destructive version of deep_merge_hashes! See that method.
From 805ab6b7f8c82466bd789723d312eae1456379c1 Mon Sep 17 00:00:00 2001
From: Brenton Horne
Date: Wed, 20 Jan 2016 06:59:00 +1000
Subject: [PATCH 0327/4996] Adding commit/date indicators
---
site/_docs/sites.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/site/_docs/sites.md b/site/_docs/sites.md
index 7eb6559f600..1c509f3653d 100644
--- a/site/_docs/sites.md
+++ b/site/_docs/sites.md
@@ -9,17 +9,17 @@ with. Below are some Jekyll-powered blogs which were hand-picked for
learning purposes.
- [Tom Preston-Werner](http://tom.preston-werner.com/)
- ([source](https://github.com/mojombo/mojombo.github.io))
+ ([source](https://github.com/mojombo/mojombo.github.io)) (last commit [87f9f24](https://github.com/mojombo/mojombo.github.io/commit/87f9f24) at 20 June 2015)
- [Nick Quaranto](http://quaran.to/)
- ([source](https://github.com/qrush/qrush.github.com))
+ ([source](https://github.com/qrush/qrush.github.com)) (last commit [c569be1](https://github.com/qrush/qrush.github.com/commit/c569be159c4c1075e8bf65b1995e43b262c86899) at 2 December 2014)
- [GitHub Official Teaching Materials](http://training.github.com)
- ([source](https://github.com/github/training.github.com/tree/7049d7532a6856411e34046aedfce43a4afaf424))
+ ([source](https://github.com/github/training.github.com/tree/7049d7532a6856411e34046aedfce43a4afaf424)) (last commit [7049d75](https://github.com/github-archive/training.github.com/commit/7049d7532a6856411e34046aedfce43a4afaf424) at 20 December 2013)
- [Rasmus Andersson](http://rsms.me/)
- ([source](https://github.com/rsms/rsms.github.com))
+ ([source](https://github.com/rsms/rsms.github.com)) (last commit [30e0555](https://github.com/rsms/rsms.github.com/commit/30e0555d3f22af951839e308c68ee548f6c03492) at 1 December 2015)
- [Scott Chacon](http://schacon.github.com)
- ([source](https://github.com/schacon/schacon.github.com))
+ ([source](https://github.com/schacon/schacon.github.com)) (last commit [e7396ba](https://github.com/schacon/schacon.github.com/commit/e7396ba8eb964634c24a417c8b86c5c9a251a9fd) at 2 April 2011)
- [Leonard Lamprecht](http://leo.im)
- ([source](https://github.com/leo/leo.github.io))
+ ([source](https://github.com/leo/leo.github.io)) (frequently updated)
If you would like to explore more examples, you can find a list of sites
and their sources on the ["Sites" page in the Jekyll wiki][jekyll-sites].
From 8507cda6ddfaf59fc25837df111b77a6651258fe Mon Sep 17 00:00:00 2001
From: Brenton Horne
Date: Wed, 20 Jan 2016 07:22:54 +1000
Subject: [PATCH 0328/4996] Rm date indicators and >1 year inactive sites
---
site/_docs/sites.md | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/site/_docs/sites.md b/site/_docs/sites.md
index 1c509f3653d..f0b1a9b218e 100644
--- a/site/_docs/sites.md
+++ b/site/_docs/sites.md
@@ -9,17 +9,13 @@ with. Below are some Jekyll-powered blogs which were hand-picked for
learning purposes.
- [Tom Preston-Werner](http://tom.preston-werner.com/)
- ([source](https://github.com/mojombo/mojombo.github.io)) (last commit [87f9f24](https://github.com/mojombo/mojombo.github.io/commit/87f9f24) at 20 June 2015)
-- [Nick Quaranto](http://quaran.to/)
- ([source](https://github.com/qrush/qrush.github.com)) (last commit [c569be1](https://github.com/qrush/qrush.github.com/commit/c569be159c4c1075e8bf65b1995e43b262c86899) at 2 December 2014)
+ ([source](https://github.com/mojombo/mojombo.github.io))
- [GitHub Official Teaching Materials](http://training.github.com)
- ([source](https://github.com/github/training.github.com/tree/7049d7532a6856411e34046aedfce43a4afaf424)) (last commit [7049d75](https://github.com/github-archive/training.github.com/commit/7049d7532a6856411e34046aedfce43a4afaf424) at 20 December 2013)
+ ([source](https://github.com/github/training-kit))
- [Rasmus Andersson](http://rsms.me/)
- ([source](https://github.com/rsms/rsms.github.com)) (last commit [30e0555](https://github.com/rsms/rsms.github.com/commit/30e0555d3f22af951839e308c68ee548f6c03492) at 1 December 2015)
-- [Scott Chacon](http://schacon.github.com)
- ([source](https://github.com/schacon/schacon.github.com)) (last commit [e7396ba](https://github.com/schacon/schacon.github.com/commit/e7396ba8eb964634c24a417c8b86c5c9a251a9fd) at 2 April 2011)
+ ([source](https://github.com/rsms/rsms.github.com))
- [Leonard Lamprecht](http://leo.im)
- ([source](https://github.com/leo/leo.github.io)) (frequently updated)
+ ([source](https://github.com/leo/leo.github.io))
If you would like to explore more examples, you can find a list of sites
and their sources on the ["Sites" page in the Jekyll wiki][jekyll-sites].
From 090cf5a50b0d99d2faf4346f6a1ea81e046f558b Mon Sep 17 00:00:00 2001
From: Pat Hawks
Date: Tue, 19 Jan 2016 23:12:59 -0800
Subject: [PATCH 0329/4996] Disable auto-regeneration when running server
detached
---
lib/jekyll/commands/build.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll/commands/build.rb b/lib/jekyll/commands/build.rb
index d505e2fb3ff..baa4e88a767 100644
--- a/lib/jekyll/commands/build.rb
+++ b/lib/jekyll/commands/build.rb
@@ -33,7 +33,9 @@ def process(options)
build(site, options)
end
- if options.fetch('watch', false)
+ if options.fetch('detach', false)
+ Jekyll.logger.info "Auto-regeneration:", "disabled when running server detached."
+ elsif options.fetch('watch', false)
watch(site, options)
else
Jekyll.logger.info "Auto-regeneration:", "disabled. Use --watch to enable."
From f44a9cf401f2499cc990f6fb067e64dda61aa896 Mon Sep 17 00:00:00 2001
From: Liam Bowers
Date: Wed, 20 Jan 2016 12:25:29 +0000
Subject: [PATCH 0330/4996] Added the Wordpress2Jekyll Wordpress plugin
---
site/_docs/plugins.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 067fb6e7b26..a711fd4457b 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -887,6 +887,7 @@ LESS.js files during generation.
- [vim-jekyll](https://github.com/parkr/vim-jekyll): A vim plugin to generate
new posts and run `jekyll build` all without leaving vim.
- [markdown-writer](https://atom.io/packages/markdown-writer): An Atom package for Jekyll. It can create new posts/drafts, manage tags/categories, insert link/images and add many useful key mappings.
+- [Wordpress2Jekyll](https://wordpress.org/plugins/wp2jekyll/): A Wordpress plugin that allows you to use Wordpress as your editor and (automatically) export content in to Jekyll. WordPress2Jekyll attempts to marry these two systems together in order to make a site that can be easily managed from all devices.
Jekyll Plugins Wanted
From 37e11016902b58b1b92466a7b5c841c49f1ff753 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Wed, 20 Jan 2016 07:04:22 -0600
Subject: [PATCH 0331/4996] Re-add Gem version after accidental removal.
---
README.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.markdown b/README.markdown
index 577e774c347..4401ed30c6a 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,11 +1,13 @@
# [Jekyll](http://jekyllrb.com/)
+[][ruby-gems]
[][travis]
[][coverage]
[][codeclimate]
[][gemnasium]
[][hakiri]
+[ruby-gems]: https://rubygems.org/gems/jekyll
[gemnasium]: https://gemnasium.com/jekyll/jekyll
[codeclimate]: https://codeclimate.com/github/jekyll/jekyll
[coverage]: https://codeclimate.com/github/jekyll/jekyll/coverage
From 61acafe97a1189f30f8a75c0c92bdedea96757ba Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Wed, 20 Jan 2016 07:24:16 -0600
Subject: [PATCH 0332/4996] Move ByeBug to development and disallow for JRuby.
---
Gemfile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 9e4796e60ee..091a7564d84 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,6 +6,10 @@ group :development do
gem "launchy", "~> 2.3"
gem "rubocop", :branch => :master, :github => "bbatsov/rubocop"
gem "pry"
+
+ UNLESS RUBY_ENGINE == "jruby"
+ gem "byebug"
+ end
end
#
@@ -18,7 +22,6 @@ group :test do
gem "rspec-mocks"
gem "nokogiri"
gem "rspec"
- gem "byebug"
end
#
From e50d4d6b6e1acedabedf0dfe5d34410630856193 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Wed, 20 Jan 2016 07:30:07 -0600
Subject: [PATCH 0333/4996] Fix bad UNLESS.
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 091a7564d84..4e4189d2722 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,7 +7,7 @@ group :development do
gem "rubocop", :branch => :master, :github => "bbatsov/rubocop"
gem "pry"
- UNLESS RUBY_ENGINE == "jruby"
+ unless RUBY_ENGINE == "jruby"
gem "byebug"
end
end
From af20abf1bced9bd6af40e6cd1b72d4de2a19758a Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 20 Jan 2016 11:06:31 -0800
Subject: [PATCH 0334/4996] Update history to reflect merge of #4377 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 5bd8a10e186..729d80b9ea1 100644
--- a/History.markdown
+++ b/History.markdown
@@ -86,6 +86,7 @@
* Fixed broken link to blog on using mathjax with jekyll (#4344)
* Documentation: correct reference in Precedence section of Configuration docs (#4355)
* Add @jmcglone's guide to github-pages doc page (#4364)
+ * Added the Wordpress2Jekyll Wordpress plugin (#4377)
## 3.0.1 / 2015-11-17
From f1ac1f21252ae7a2da405c0eb365b09fbc07086e Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 20 Jan 2016 11:07:34 -0800
Subject: [PATCH 0335/4996] Update history to reflect merge of #4376 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 729d80b9ea1..f3f6b1ba21a 100644
--- a/History.markdown
+++ b/History.markdown
@@ -39,6 +39,7 @@
* Allow custom file extensions if defined in `permalink` YAML front matter (#4314)
* Fix deep_merge_hashes! handling of drops and hashes (#4359)
* Page should respect output extension of its permalink (#4373)
+ * Disable auto-regeneration when running server detached (#4376)
### Development Fixes
From ec0eff3315b5694be512d82bb494efd888370288 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Wed, 20 Jan 2016 13:30:49 -0600
Subject: [PATCH 0336/4996] Switch to pry-byebug so everybody gets the benefit.
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 4e4189d2722..f63529e885a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,7 +8,7 @@ group :development do
gem "pry"
unless RUBY_ENGINE == "jruby"
- gem "byebug"
+ gem "pry-byebug"
end
end
From 1ba23c32c69ad70721615e5b5cb82aef34606534 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 20 Jan 2016 11:46:18 -0800
Subject: [PATCH 0337/4996] add Utils.strip_heredoc
---
lib/jekyll/utils.rb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 6e0023de679..6dd2b117f94 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -10,6 +10,12 @@ module Utils
SLUGIFY_DEFAULT_REGEXP = Regexp.new('[^[:alnum:]]+').freeze
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
+ # Takes an indented string and removes the preceding spaces on each line
+
+ def strip_heredoc(str)
+ str.gsub(/^[ \t]{#{(str.scan(/^[ \t]*(?=\S)/).min || "").size}}/, "")
+ end
+
# Takes a slug and turns it into a simple title.
def titleize_slug(slug)
From a72629908ae5c0886c4c1962df8ed0d1324f4868 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 20 Jan 2016 12:23:48 -0800
Subject: [PATCH 0338/4996] Document: throw a useful error when an invalid date
is given
---
features/post_data.feature | 14 ++++++++++++++
lib/jekyll/document.rb | 23 ++++++++++++++---------
lib/jekyll/site.rb | 2 +-
3 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/features/post_data.feature b/features/post_data.feature
index 3b4f3cf7ead..3692c382f53 100644
--- a/features/post_data.feature
+++ b/features/post_data.feature
@@ -39,6 +39,20 @@ Feature: Post data
And the _site directory should exist
And I should see "Post date: 27 Mar 2009" in "_site/2009/03/27/star-wars.html"
+ Scenario: Use post.date variable with invalid
+ Given I have a _posts directory
+ And I have a "_posts/2016-01-01-test.md" page with date "tuesday" that contains "I have a bad date."
+ When I run jekyll build
+ Then the _site directory should not exist
+ And I should see "Document '_posts/2016-01-01-test.md' does not have a valid date in the YAML front matter." in the build output
+
+ Scenario: Invalid date in filename
+ Given I have a _posts directory
+ And I have a "_posts/2016-22-01-test.md" page that contains "I have a bad date."
+ When I run jekyll build
+ Then the _site directory should not exist
+ And I should see "Document '_posts/2016-22-01-test.md' does not have a valid date in the filename." in the build output
+
Scenario: Use post.id variable
Given I have a _posts directory
And I have a _layouts directory
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 2911c4aa04b..8e0d3e86d31 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -50,7 +50,7 @@ def data
# Merge some data in with this document's data.
#
# Returns the merged data.
- def merge_data!(other)
+ def merge_data!(other, source: "YAML front matter")
if other.key?('categories') && !other['categories'].nil?
if other['categories'].is_a?(String)
other['categories'] = other['categories'].split(" ").map(&:strip)
@@ -61,7 +61,7 @@ def merge_data!(other)
if data.key?('date') && !data['date'].is_a?(Time)
data['date'] = Utils.parse_date(
data['date'].to_s,
- "Document '#{relative_path}' does not have a valid date in the YAML front matter."
+ "Document '#{relative_path}' does not have a valid date in the #{source}."
)
end
data
@@ -267,20 +267,23 @@ def read(opts = {})
else
begin
defaults = @site.frontmatter_defaults.all(url, collection.label.to_sym)
- merge_data!(defaults) unless defaults.empty?
+ merge_data!(defaults, source: "front matter defaults") unless defaults.empty?
self.content = File.read(path, merged_file_read_opts(opts))
if content =~ YAML_FRONT_MATTER_REGEXP
self.content = $POSTMATCH
data_file = SafeYAML.load(Regexp.last_match(1))
- merge_data!(data_file) if data_file
+ merge_data!(data_file, source: "YAML front matter") if data_file
end
post_read
rescue SyntaxError => e
- puts "YAML Exception reading #{path}: #{e.message}"
+ Jekyll.logger.error "Error:", "YAML Exception reading #{path}: #{e.message}"
rescue Exception => e
- puts "Error reading file #{path}: #{e.message}"
+ if e.is_a? Jekyll::Errors::FatalException
+ raise e
+ end
+ Jekyll.logger.error "Error:", "could not read file #{path}: #{e.message}"
end
end
end
@@ -291,9 +294,11 @@ def post_read
merge_data!({
"slug" => slug,
"ext" => ext
- })
- merge_data!({ "date" => date }) if data['date'].nil? || data['date'].to_i == site.time.to_i
+ }, source: "filename")
data['title'] ||= slug.split('-').select(&:capitalize).join(' ')
+ if data['date'].nil? || data['date'].to_i == site.time.to_i
+ merge_data!({"date" => date}, source: "filename")
+ end
end
populate_categories
populate_tags
@@ -312,7 +317,7 @@ def categories_from_path(special_dir)
superdirs = relative_path.sub(/#{special_dir}(.*)/, '').split(File::SEPARATOR).reject do |c|
c.empty? || c.eql?(special_dir) || c.eql?(basename)
end
- merge_data!({ 'categories' => superdirs })
+ merge_data!({ 'categories' => superdirs }, source: "file path")
end
def populate_categories
diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb
index 15698b99d22..72d42ad90b9 100644
--- a/lib/jekyll/site.rb
+++ b/lib/jekyll/site.rb
@@ -225,7 +225,7 @@ def post_attr_hash(post_attr)
# Build a hash map based on the specified post attribute ( post attr =>
# array of posts ) then sort each array in reverse order.
hash = Hash.new { |h, key| h[key] = [] }
- posts.docs.each { |p| p.data[post_attr].each { |t| hash[t] << p } }
+ posts.docs.each { |p| p.data[post_attr].each { |t| hash[t] << p } if p.data[post_attr] }
hash.values.each { |posts| posts.sort!.reverse! }
hash
end
From e9be8933de5590cae81c1f15fb3c9d22a86a66b5 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 20 Jan 2016 14:10:47 -0800
Subject: [PATCH 0339/4996] Release :gem: v3.0.2
---
History.markdown | 6 ++++++
site/_docs/history.md | 9 +++++++++
.../2016-01-20-jekyll-3-0-2-released.markdown | 19 +++++++++++++++++++
3 files changed, 34 insertions(+)
create mode 100644 site/_posts/2016-01-20-jekyll-3-0-2-released.markdown
diff --git a/History.markdown b/History.markdown
index f3f6b1ba21a..6bab0a71585 100644
--- a/History.markdown
+++ b/History.markdown
@@ -89,6 +89,12 @@
* Add @jmcglone's guide to github-pages doc page (#4364)
* Added the Wordpress2Jekyll Wordpress plugin (#4377)
+## 3.0.2 / 2016-01-20
+
+### Bug Fixes
+
+ * Document: throw a useful error when an invalid date is given (#4378)
+
## 3.0.1 / 2015-11-17
### Bug Fixes
diff --git a/site/_docs/history.md b/site/_docs/history.md
index a12653f2c1c..7d1ff85d0bf 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -4,6 +4,15 @@ title: History
permalink: "/docs/history/"
---
+## 3.0.2 / 2016-01-20
+{: #v3-0-2}
+
+### Bug Fixes
+{: #bug-fixes-v3-0-2}
+
+- Document: throw a useful error when an invalid date is given ([#4378]({{ site.repository }}/issues/4378))
+
+
## 3.0.1 / 2015-11-17
{: #v3-0-1}
diff --git a/site/_posts/2016-01-20-jekyll-3-0-2-released.markdown b/site/_posts/2016-01-20-jekyll-3-0-2-released.markdown
new file mode 100644
index 00000000000..88f8888f757
--- /dev/null
+++ b/site/_posts/2016-01-20-jekyll-3-0-2-released.markdown
@@ -0,0 +1,19 @@
+---
+layout: news_item
+title: 'Jekyll 3.0.2 Released'
+date: 2016-01-20 14:08:18 -0800
+author: parkr
+version: 3.0.2
+categories: [release]
+---
+
+A crucial bug was found in v3.0.1 which caused invalid post dates to go
+unnoticed in the build chain until the error that popped up was unhelpful.
+v3.0.2 [throws errors as you'd expect](https://github.com/jekyll/jekyll/issues/4375)
+when there is a post like `_posts/2016-22-01-future.md` or a post has an
+invalid date like `date: "tuesday"` in their front matter.
+
+This should make the experience of working with Jekyll just a little
+better.
+
+Happy Jekylling!
From 31ae61b419fd422b7384ab006e66814b00532657 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 21 Jan 2016 18:20:35 -0800
Subject: [PATCH 0340/4996] Drop#[]: only use public_send for keys in the
content_methods array
---
features/post_data.feature | 12 ++++++++++++
lib/jekyll/drops/drop.rb | 2 +-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/features/post_data.feature b/features/post_data.feature
index 3692c382f53..79b92c2677a 100644
--- a/features/post_data.feature
+++ b/features/post_data.feature
@@ -301,6 +301,18 @@ Feature: Post data
And the _site directory should exist
And I should see "Post author: Darth Vader" in "_site/2009/03/27/star-wars.html"
+ Scenario: Use a variable which is a reserved keyword in Ruby
+ Given I have a _posts directory
+ And I have a _layouts directory
+ And I have the following post:
+ | title | date | layout | class | content |
+ | My post | 2016-01-21 | simple | kewl-post | Luke, I am your father. |
+ And I have a simple layout that contains "{{page.title}} has class {{page.class}}"
+ When I run jekyll build
+ Then I should get a zero exit status
+ And the _site directory should exist
+ And I should see "My post has class kewl-post" in "_site/2016/01/21/my-post.html"
+
Scenario: Previous and next posts title
Given I have a _posts directory
And I have a _layouts directory
diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb
index 35f0df26e81..9e3ac329b68 100644
--- a/lib/jekyll/drops/drop.rb
+++ b/lib/jekyll/drops/drop.rb
@@ -46,7 +46,7 @@ def initialize(obj)
def [](key)
if self.class.mutable? && @mutations.key?(key)
@mutations[key]
- elsif respond_to? key
+ elsif content_methods.include? key
public_send key
else
fallback_data[key]
From 4ecdf6ce108a91c593fa9d30115f2e3d63c70830 Mon Sep 17 00:00:00 2001
From: Zshawn Syed
Date: Thu, 21 Jan 2016 23:44:30 -0600
Subject: [PATCH 0341/4996] Remove extra OR condition since a missing hash key
will return a nil anyway. Added a test to catch this nil condition since it
was missing to begin with. Reduced line length in test_page.rb
---
lib/jekyll/page.rb | 3 +--
test/test_page.rb | 9 ++++++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index fde456513d8..eda87f12346 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -63,8 +63,7 @@ def dir
#
# Returns the String permalink or nil if none has been set.
def permalink
- return nil if data.nil? || data['permalink'].nil?
- data['permalink']
+ data.nil? ? nil : data['permalink']
end
# The template of the permalink.
diff --git a/test/test_page.rb b/test/test_page.rb
index 2728b4e3337..69794107c50 100644
--- a/test/test_page.rb
+++ b/test/test_page.rb
@@ -8,7 +8,9 @@ def setup_page(*args)
end
def do_render(page)
- layouts = { "default" => Layout.new(@site, source_dir('_layouts'), "simple.html")}
+ layouts = {
+ "default" => Layout.new(@site, source_dir('_layouts'), "simple.html")
+ }
page.render(layouts, @site.site_payload)
end
@@ -206,6 +208,11 @@ def do_render(page)
assert_equal "/about/", @page.dir
end
+ should "return nil permalink if no permalink exists" do
+ @page = setup_page('')
+ assert_equal nil, @page.permalink
+ end
+
should "not be writable outside of destination" do
unexpected = File.expand_path("../../../baddie.html", dest_dir)
File.delete unexpected if File.exist?(unexpected)
From 442074fdb17ca64644118b9853e4b6dd1fcdf2c0 Mon Sep 17 00:00:00 2001
From: David Litvak Bruno
Date: Fri, 22 Jan 2016 10:42:52 -0300
Subject: [PATCH 0342/4996] Add Contentful Extension to Plugins
---
site/_docs/plugins.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index a711fd4457b..5f1ba786584 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -880,6 +880,7 @@ LESS.js files during generation.
- [Jekyll views router](https://bitbucket.org/nyufac/jekyll-views-router): Simple router between generator plugins and templates.
- [Jekyll Language Plugin](https://github.com/vwochnik/jekyll-language-plugin): Jekyll 3.0-compatible multi-language plugin for posts, pages and includes.
- [Jekyll Deploy](https://github.com/vwochnik/jekyll-deploy): Adds a `deploy` sub-command to Jekyll.
+- [Official Contentful Jekyll Plugin](https://github.com/contentful/jekyll-contentful-data-import): Adds a `contentful` sub-command to Jekyll to import data from Contentful.
#### Editors
From cf51e32d0eb8d8ba3ab7785391b8526a154b5cf3 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 08:59:48 -0800
Subject: [PATCH 0343/4996] Drop#[]: use self.class.invokable? instead of
content_methods.include? for speed
---
lib/jekyll/drops/drop.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb
index 9e3ac329b68..d1bffcc5abd 100644
--- a/lib/jekyll/drops/drop.rb
+++ b/lib/jekyll/drops/drop.rb
@@ -46,7 +46,7 @@ def initialize(obj)
def [](key)
if self.class.mutable? && @mutations.key?(key)
@mutations[key]
- elsif content_methods.include? key
+ elsif self.class.invokable? key
public_send key
else
fallback_data[key]
From 95df35134112b073c857481ca6bf32620f13d501 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 22 Jan 2016 09:01:21 -0800
Subject: [PATCH 0344/4996] Update history to reflect merge of #4390 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6bab0a71585..909dccd5eba 100644
--- a/History.markdown
+++ b/History.markdown
@@ -88,6 +88,7 @@
* Documentation: correct reference in Precedence section of Configuration docs (#4355)
* Add @jmcglone's guide to github-pages doc page (#4364)
* Added the Wordpress2Jekyll Wordpress plugin (#4377)
+ * Add Contentful Extension to list of third-party plugins (#4390)
## 3.0.2 / 2016-01-20
From c0e01597833039472d3d0e9c6b6318aa94c9fe0b Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 22 Jan 2016 09:03:44 -0800
Subject: [PATCH 0345/4996] Update history to reflect merge of #4389 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 909dccd5eba..f5b43d3264a 100644
--- a/History.markdown
+++ b/History.markdown
@@ -20,6 +20,7 @@
* Shim subcommands with indication of gem possibly required so users know how to use them (#4254)
* Add smartify Liquid filter for SmartyPants (#4323)
* Raise error on empty permalink (#4361)
+ * Refactor Page#permalink method (#4389)
### Bug Fixes
From 1298ba6908e9beaa30462ae0d6ba45e776c7e806 Mon Sep 17 00:00:00 2001
From: rebornix
Date: Fri, 27 Nov 2015 13:40:30 +0800
Subject: [PATCH 0346/4996] Fix #4188: Extract title from filename successfully
when dateless.
---
features/collections.feature | 19 +++++++++++++++++--
lib/jekyll/document.rb | 5 ++++-
.../_thanksgiving/2015-11-26-thanksgiving.md | 3 +++
test/source/_thanksgiving/black-friday.md | 3 +++
4 files changed, 27 insertions(+), 3 deletions(-)
create mode 100644 test/source/_thanksgiving/2015-11-26-thanksgiving.md
create mode 100644 test/source/_thanksgiving/black-friday.md
diff --git a/features/collections.feature b/features/collections.feature
index 888bd1c2ddc..90715b57cd0 100644
--- a/features/collections.feature
+++ b/features/collections.feature
@@ -155,5 +155,20 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, , Site#generate," in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate, YAML with Dots," in "_site/index.html"
+
+ Scenario: Rendered collection with date/dateless filename
+ Given I have an "index.html" page that contains "Collections: {% for method in site.thanksgiving %}{{ method.title }} {% endfor %}"
+ And I have fixture collections
+ And I have a "_config.yml" file with content:
+ """
+ collections:
+ thanksgiving:
+ output: true
+ """
+ When I run jekyll build
+ Then the _site directory should exist
+ And I should see "Thanksgiving Black Friday" in "_site/index.html"
+ And I should see "Happy Thanksgiving" in "_site/thanksgiving/2015-11-26-thanksgiving.html"
+ And I should see "Black Friday" in "_site/thanksgiving/black-friday.html"
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 8e0d3e86d31..b8c162a5371 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -8,7 +8,7 @@ class Document
attr_accessor :content, :output
YAML_FRONT_MATTER_REGEXP = /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
- DATELESS_FILENAME_MATCHER = /^(.*)(\.[^.]+)$/
+ DATELESS_FILENAME_MATCHER = /^(.+\/)*(.*)(\.[^.]+)$/
DATE_FILENAME_MATCHER = /^(.+\/)*(\d+-\d+-\d+)-(.*)(\.[^.]+)$/
# Create a new Document.
@@ -299,6 +299,9 @@ def post_read
if data['date'].nil? || data['date'].to_i == site.time.to_i
merge_data!({"date" => date}, source: "filename")
end
+ elsif DATELESS_FILENAME_MATCHER =~ relative_path
+ m, cats, slug, ext = *relative_path.match(DATELESS_FILENAME_MATCHER)
+ data['title'] ||= slug.split('-').select {|w| w.capitalize! || w }.join(' ')
end
populate_categories
populate_tags
diff --git a/test/source/_thanksgiving/2015-11-26-thanksgiving.md b/test/source/_thanksgiving/2015-11-26-thanksgiving.md
new file mode 100644
index 00000000000..48d2dd58cba
--- /dev/null
+++ b/test/source/_thanksgiving/2015-11-26-thanksgiving.md
@@ -0,0 +1,3 @@
+---
+---
+Happy {{ page.title }} !
diff --git a/test/source/_thanksgiving/black-friday.md b/test/source/_thanksgiving/black-friday.md
new file mode 100644
index 00000000000..1d8ea1bbad4
--- /dev/null
+++ b/test/source/_thanksgiving/black-friday.md
@@ -0,0 +1,3 @@
+---
+---
+{{ page.title }}
From 67f842546efa980146778c85fb613e6c9b53dcb4 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 28 Nov 2015 01:22:24 -0600
Subject: [PATCH 0347/4996] Fix #4191: Reduce Document#post_read complexity
slightly.
---
lib/jekyll/document.rb | 34 +++++++++++++++++++---------------
lib/jekyll/utils.rb | 8 ++++++--
2 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index b8c162a5371..c6f3cb876d0 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -289,26 +289,23 @@ def read(opts = {})
end
def post_read
- if DATE_FILENAME_MATCHER =~ relative_path
- _, _, date, slug, ext = *relative_path.match(DATE_FILENAME_MATCHER)
- merge_data!({
- "slug" => slug,
- "ext" => ext
- }, source: "filename")
- data['title'] ||= slug.split('-').select(&:capitalize).join(' ')
- if data['date'].nil? || data['date'].to_i == site.time.to_i
+ if relative_path =~ DATE_FILENAME_MATCHER
+ _, date, slug, ext = $1, $2, $3, $4
+ if !data['date'] || data['date'].to_i == site.time.to_i
merge_data!({"date" => date}, source: "filename")
end
- elsif DATELESS_FILENAME_MATCHER =~ relative_path
- m, cats, slug, ext = *relative_path.match(DATELESS_FILENAME_MATCHER)
- data['title'] ||= slug.split('-').select {|w| w.capitalize! || w }.join(' ')
+ elsif relative_path =~ DATELESS_FILENAME_MATCHER
+ _, slug, ext = $1, $2, $3
end
+
+ merge_data!({"slug" => slug, "ext" => ext}, source: "filename")
+
+ # Try to ensure the user gets a title.
+ data["title"] ||= Utils.titleize_slug(slug)
+
populate_categories
populate_tags
-
- if generate_excerpt?
- data['excerpt'] ||= Jekyll::Excerpt.new(self)
- end
+ generate_excerpt
end
# Add superdirectories of the special_dir to categories.
@@ -445,5 +442,12 @@ def method_missing(method, *args, &blck)
super
end
end
+
+ private # :nodoc:
+ def generate_excerpt
+ if generate_excerpt?
+ data["excerpt"] ||= Jekyll::Excerpt.new(self)
+ end
+ end
end
end
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 9ffff548e6f..6e0023de679 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -10,8 +10,12 @@ module Utils
SLUGIFY_DEFAULT_REGEXP = Regexp.new('[^[:alnum:]]+').freeze
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
- def strip_heredoc(str)
- str.gsub(/^[ \t]{#{(str.scan(/^[ \t]*(?=\S)/).min || "").size}}/, "")
+ # Takes a slug and turns it into a simple title.
+
+ def titleize_slug(slug)
+ slug.split("-").map! do |val|
+ val.capitalize!
+ end.join(" ")
end
# Non-destructive version of deep_merge_hashes! See that method.
From 8204e479c38f2c0fafbf504b8929c74190ee145f Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 20 Jan 2016 11:46:18 -0800
Subject: [PATCH 0348/4996] add Utils.strip_heredoc
---
lib/jekyll/utils.rb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 6e0023de679..6dd2b117f94 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -10,6 +10,12 @@ module Utils
SLUGIFY_DEFAULT_REGEXP = Regexp.new('[^[:alnum:]]+').freeze
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
+ # Takes an indented string and removes the preceding spaces on each line
+
+ def strip_heredoc(str)
+ str.gsub(/^[ \t]{#{(str.scan(/^[ \t]*(?=\S)/).min || "").size}}/, "")
+ end
+
# Takes a slug and turns it into a simple title.
def titleize_slug(slug)
From ba1cfab73c785a4153bfda14c72c7f5ac4100428 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 09:36:25 -0800
Subject: [PATCH 0349/4996] step_definitions: fixture collections should copy
_thanksgiving
---
features/step_definitions.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/features/step_definitions.rb b/features/step_definitions.rb
index 2e47e369aab..f609076d9b4 100644
--- a/features/step_definitions.rb
+++ b/features/step_definitions.rb
@@ -125,6 +125,7 @@
Given %r{^I have fixture collections$} do
FileUtils.cp_r Paths.source_dir.join("test", "source", "_methods"), source_dir
+ FileUtils.cp_r Paths.source_dir.join("test", "source", "_thanksgiving"), source_dir
end
#
From 6c40c7f553fca8eddd5cc42f86b141d1245e2a89 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 09:36:37 -0800
Subject: [PATCH 0350/4996] collections.feature: check for 0 exit status always
---
features/collections.feature | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/features/collections.feature b/features/collections.feature
index 90715b57cd0..ad17a896b99 100644
--- a/features/collections.feature
+++ b/features/collections.feature
@@ -168,7 +168,8 @@ Feature: Collections
output: true
"""
When I run jekyll build
- Then the _site directory should exist
+ Then I should get a zero exit status
+ And the _site directory should exist
And I should see "Thanksgiving Black Friday" in "_site/index.html"
And I should see "Happy Thanksgiving" in "_site/thanksgiving/2015-11-26-thanksgiving.html"
And I should see "Black Friday" in "_site/thanksgiving/black-friday.html"
From 5878acaaf1a0e0883364143abde32447b4f2f771 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 09:36:55 -0800
Subject: [PATCH 0351/4996] Document#post_read: only overwrite slug & ext if
they aren't set by YAML
---
lib/jekyll/document.rb | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index c6f3cb876d0..2840ba51078 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -290,18 +290,19 @@ def read(opts = {})
def post_read
if relative_path =~ DATE_FILENAME_MATCHER
- _, date, slug, ext = $1, $2, $3, $4
+ date, slug, ext = $2, $3, $4
if !data['date'] || data['date'].to_i == site.time.to_i
merge_data!({"date" => date}, source: "filename")
end
elsif relative_path =~ DATELESS_FILENAME_MATCHER
- _, slug, ext = $1, $2, $3
+ slug, ext = $2, $3
end
- merge_data!({"slug" => slug, "ext" => ext}, source: "filename")
-
# Try to ensure the user gets a title.
data["title"] ||= Utils.titleize_slug(slug)
+ # Only overwrite slug & ext if they aren't specified.
+ data['slug'] ||= slug
+ data['ext'] ||= ext
populate_categories
populate_tags
From 2b8de5971725d4fb5404566f5d572cbe32ebf83a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 09:38:34 -0800
Subject: [PATCH 0352/4996] remove merge conflict
---
lib/jekyll/document.rb | 4 ----
1 file changed, 4 deletions(-)
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 94def29b69d..2840ba51078 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -443,11 +443,7 @@ def method_missing(method, *args, &blck)
super
end
end
-<<<<<<< HEAD
-=======
-
->>>>>>> origin/pull/cleanup-document__post_read
private # :nodoc:
def generate_excerpt
if generate_excerpt?
From 6d67e9bdd4d5dda619109fd2175f4f9719424541 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 22 Jan 2016 13:01:05 -0800
Subject: [PATCH 0353/4996] Update history to reflect merge of #4388 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index f5b43d3264a..12834ca62aa 100644
--- a/History.markdown
+++ b/History.markdown
@@ -41,6 +41,7 @@
* Fix deep_merge_hashes! handling of drops and hashes (#4359)
* Page should respect output extension of its permalink (#4373)
* Disable auto-regeneration when running server detached (#4376)
+ * Drop#[]: only use public_send for keys in the content_methods array (#4388)
### Development Fixes
From 4d138c9ab5a20eb762835e9fd1c580961434896d Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 22 Jan 2016 13:13:19 -0800
Subject: [PATCH 0354/4996] Update history to reflect merge of #4195 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 12834ca62aa..7f1c612d6b5 100644
--- a/History.markdown
+++ b/History.markdown
@@ -42,6 +42,7 @@
* Page should respect output extension of its permalink (#4373)
* Disable auto-regeneration when running server detached (#4376)
* Drop#[]: only use public_send for keys in the content_methods array (#4388)
+ * Extract title from filename successfully when no date. (#4195)
### Development Fixes
From 4b827e1797844044c9077d16e258f2b5a4c6fc00 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 22 Jan 2016 13:15:41 -0800
Subject: [PATCH 0355/4996] Release :gem: 3.1.0.pre.rc3
---
lib/jekyll/version.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index 394cef78fec..ee1f0d383e3 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.0.pre.rc2'
+ VERSION = '3.1.0.pre.rc3'
end
From 96b80b1a727a92cef0108684f263dc94aff817a1 Mon Sep 17 00:00:00 2001
From: John Perry
Date: Sat, 23 Jan 2016 23:27:17 -0700
Subject: [PATCH 0356/4996] Minor spelling error
---
site/_docs/plugins.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 5f1ba786584..4bcdd545cbb 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -870,7 +870,7 @@ LESS.js files during generation.
- [File compressor](https://gist.github.com/2758691) by [mytharcher](https://github.com/mytharcher): Compress HTML and JavaScript files on site build.
- [Jekyll-minibundle](https://github.com/tkareine/jekyll-minibundle): Asset bundling and cache busting using external minification tool of your choice. No gem dependencies.
- [Singlepage-jekyll](https://github.com/JCB-K/singlepage-jekyll) by [JCB-K](https://github.com/JCB-K): Turns Jekyll into a dynamic one-page website.
-- [generator-jekyllrb](https://github.com/robwierzbowski/generator-jekyllrb): A generator that wraps Jekyll in [Yeoman](http://yeoman.io/), a tool collection and workflow for builing modern web apps.
+- [generator-jekyllrb](https://github.com/robwierzbowski/generator-jekyllrb): A generator that wraps Jekyll in [Yeoman](http://yeoman.io/), a tool collection and workflow for building modern web apps.
- [grunt-jekyll](https://github.com/dannygarcia/grunt-jekyll): A straightforward [Grunt](http://gruntjs.com/) plugin for Jekyll.
- [jekyll-postfiles](https://github.com/indirect/jekyll-postfiles): Add `_postfiles` directory and {% raw %}`{{ postfile }}`{% endraw %} tag so the files a post refers to will always be right there inside your repo.
- [A layout that compresses HTML](http://jch.penibelst.de/): GitHub Pages compatible, configurable way to compress HTML files on site build.
From ab8f2d6bb1cd582aaeb17d073f96b43ef7c60268 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 24 Jan 2016 08:40:31 -0600
Subject: [PATCH 0357/4996] Update History.markdown to reflect the merger of
#4394
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 7f1c612d6b5..749b03224c4 100644
--- a/History.markdown
+++ b/History.markdown
@@ -92,6 +92,7 @@
* Add @jmcglone's guide to github-pages doc page (#4364)
* Added the Wordpress2Jekyll Wordpress plugin (#4377)
* Add Contentful Extension to list of third-party plugins (#4390)
+ * Correct Minor spelling error (#4394)
## 3.0.2 / 2016-01-20
From c5818d18374b0b34d26a36013b964a5c64603ff5 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sun, 24 Jan 2016 09:50:02 -0600
Subject: [PATCH 0358/4996] Make our .travis.yml a little easier to maintain.
---
.travis.yml | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 29b0a836f47..5c6e585511d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,31 +1,31 @@
-bundler_args: --without benchmark:site:development
before_script: bundle update
+bundler_args: --without benchmark:site:development
script: script/cibuild
cache: bundler
language: ruby
sudo: false
rvm:
-- 2.0.0-p648
-- 2.1.8
-- 2.2.4
-- 2.3.0
-- jruby-9.0.4.0
-- ruby-head
+ - &ruby1 2.3.0
+ - &ruby2 2.2.4
+ - &ruby3 2.1.8
+ - &ruby4 2.0.0-p648
+ - &jruby jruby-9.0.4.0
+ - &rhead ruby-head
matrix:
fast_finish: true
allow_failures:
- - rvm: jruby-9.0.4.0
- - rvm: ruby-head
+ - rvm: *jruby
+ - rvm: *rhead
env:
matrix:
- - TEST_SUITE=test
- - TEST_SUITE=cucumber
+ - TEST_SUITE=test
+ - TEST_SUITE=cucumber
branches:
only:
- - master
+ - master
notifications:
irc:
From 368f5b67a9a8947549b7e31a954d643018d536ce Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 24 Jan 2016 13:13:15 -0800
Subject: [PATCH 0359/4996] Release :gem: 3.1.0
---
History.markdown | 2 +-
lib/jekyll/version.rb | 2 +-
site/_docs/history.md | 101 ++++++++++++++++++
.../2016-01-23-jekyll-3-1-0-released.markdown | 50 +++++++++
site/latest_version.txt | 2 +-
5 files changed, 154 insertions(+), 3 deletions(-)
create mode 100644 site/_posts/2016-01-23-jekyll-3-1-0-released.markdown
diff --git a/History.markdown b/History.markdown
index 7f1c612d6b5..d03724b4b6c 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,4 +1,4 @@
-## HEAD
+## 3.1.0 / 2016-01-23
### Minor Enhancements
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index ee1f0d383e3..b20df48404b 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.0.pre.rc3'
+ VERSION = '3.1.0'
end
diff --git a/site/_docs/history.md b/site/_docs/history.md
index 7d1ff85d0bf..b05b18b0529 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -4,6 +4,107 @@ title: History
permalink: "/docs/history/"
---
+## 3.1.0 / 2016-01-23
+{: #v3-1-0}
+
+### Minor Enhancements
+{: #minor-enhancements-v3-1-0}
+
+- Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` ([#4277]({{ site.repository }}/issues/4277))
+- Add 'sample' Liquid filter Equivalent to Array#sample functionality ([#4223]({{ site.repository }}/issues/4223))
+- Cache parsed include file to save liquid parsing time. ([#4120]({{ site.repository }}/issues/4120))
+- Slightly speed up url sanitization and handle multiples of ///. ([#4168]({{ site.repository }}/issues/4168))
+- Print debug message when a document is skipped from reading ([#4180]({{ site.repository }}/issues/4180))
+- Include tag should accept multiple variables in the include name ([#4183]({{ site.repository }}/issues/4183))
+- Add `-o` option to serve command which opens server URL ([#4144]({{ site.repository }}/issues/4144))
+- Add CodeClimate platform for better code quality. ([#4220]({{ site.repository }}/issues/4220))
+- General improvements for WEBrick via jekyll serve such as SSL & custom headers ([#4224]({{ site.repository }}/issues/4224), [#4228]({{ site.repository }}/issues/4228))
+- Add a default charset to content-type on webrick. ([#4231]({{ site.repository }}/issues/4231))
+- Switch `PluginManager` to use `require_with_graceful_fail` for better UX ([#4233]({{ site.repository }}/issues/4233))
+- Allow quoted date in front matter defaults ([#4184]({{ site.repository }}/issues/4184))
+- Add a Jekyll doctor warning for URLs that only differ by case ([#3171]({{ site.repository }}/issues/3171))
+- drops: create one base Drop class which can be set as mutable or not ([#4285]({{ site.repository }}/issues/4285))
+- drops: provide `#to_h` to allow for hash introspection ([#4281]({{ site.repository }}/issues/4281))
+- Shim subcommands with indication of gem possibly required so users know how to use them ([#4254]({{ site.repository }}/issues/4254))
+- Add smartify Liquid filter for SmartyPants ([#4323]({{ site.repository }}/issues/4323))
+- Raise error on empty permalink ([#4361]({{ site.repository }}/issues/4361))
+- Refactor Page#permalink method ([#4389]({{ site.repository }}/issues/4389))
+
+### Bug Fixes
+{: #bug-fixes-v3-1-0}
+
+- Pass build options into `clean` command ([#4177]({{ site.repository }}/issues/4177))
+- Allow users to use .htm and .xhtml (XHTML5.) ([#4160]({{ site.repository }}/issues/4160))
+- Prevent Shell Injection. ([#4200]({{ site.repository }}/issues/4200))
+- Convertible should make layout data accessible via `layout` instead of `page` ([#4205]({{ site.repository }}/issues/4205))
+- Avoid using `Dir.glob` with absolute path to allow special characters in the path ([#4150]({{ site.repository }}/issues/4150))
+- Handle empty config files ([#4052]({{ site.repository }}/issues/4052))
+- Rename `[@options](https://github.com/options)` so that it does not impact Liquid. ([#4173]({{ site.repository }}/issues/4173))
+- utils/drops: update Drop to support `Utils.deep_merge_hashes` ([#4289]({{ site.repository }}/issues/4289))
+- Make sure jekyll/drops/drop is loaded first. ([#4292]({{ site.repository }}/issues/4292))
+- Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility ([#4311]({{ site.repository }}/issues/4311))
+- Drop: fix hash setter precendence ([#4312]({{ site.repository }}/issues/4312))
+- utils: `has_yaml_header?` should accept files with extraneous spaces ([#4290]({{ site.repository }}/issues/4290))
+- Escape html from site.title and page.title in site template ([#4307]({{ site.repository }}/issues/4307))
+- Allow custom file extensions if defined in `permalink` YAML front matter ([#4314]({{ site.repository }}/issues/4314))
+- Fix deep_merge_hashes! handling of drops and hashes ([#4359]({{ site.repository }}/issues/4359))
+- Page should respect output extension of its permalink ([#4373]({{ site.repository }}/issues/4373))
+- Disable auto-regeneration when running server detached ([#4376]({{ site.repository }}/issues/4376))
+- Drop#[]: only use public_send for keys in the content_methods array ([#4388]({{ site.repository }}/issues/4388))
+- Extract title from filename successfully when no date. ([#4195]({{ site.repository }}/issues/4195))
+
+### Development Fixes
+{: #development-fixes-v3-1-0}
+
+- `jekyll-docs` should be easily release-able ([#4152]({{ site.repository }}/issues/4152))
+- Allow use of Cucumber 2.1 or greater ([#4181]({{ site.repository }}/issues/4181))
+- Modernize Kramdown for Markdown converter. ([#4109]({{ site.repository }}/issues/4109))
+- Change TestDoctorCommand to JekyllUnitTest... ([#4263]({{ site.repository }}/issues/4263))
+- Create namespaced rake tasks in separate `.rake` files under `lib/tasks` ([#4282]({{ site.repository }}/issues/4282))
+- markdown: refactor for greater readability & efficiency ([#3771]({{ site.repository }}/issues/3771))
+- Fix many Rubocop style errors ([#4301]({{ site.repository }}/issues/4301))
+- Fix spelling of "GitHub" in docs and history ([#4322]({{ site.repository }}/issues/4322))
+- Reorganize and cleanup the Gemfile, shorten required depends. ([#4318]({{ site.repository }}/issues/4318))
+- Remove script/rebund. ([#4341]({{ site.repository }}/issues/4341))
+- Implement codeclimate platform ([#4340]({{ site.repository }}/issues/4340))
+- Remove ObectSpace dumping and start using inherited, it's faster. ([#4342]({{ site.repository }}/issues/4342))
+- Add script/travis so all people can play with Travis-CI images. ([#4338]({{ site.repository }}/issues/4338))
+- Move Cucumber to using RSpec-Expections and furthering JRuby support. ([#4343]({{ site.repository }}/issues/4343))
+- Rearrange Cucumber and add some flair. ([#4347]({{ site.repository }}/issues/4347))
+- Remove old FIXME ([#4349]({{ site.repository }}/issues/4349))
+- Clean up the Gemfile (and keep all the necessary dependencies) ([#4350]({{ site.repository }}/issues/4350))
+
+### Site Enhancements
+{: #site-enhancements-v3-1-0}
+
+- Add three plugins to directory ([#4163]({{ site.repository }}/issues/4163))
+- Add upgrading docs from 2.x to 3.x ([#4157]({{ site.repository }}/issues/4157))
+- Add `protect_email` to the plugins index. ([#4169]({{ site.repository }}/issues/4169))
+- Add `jekyll-deploy` to list of third-party plugins ([#4179]({{ site.repository }}/issues/4179))
+- Clarify plugin docs ([#4154]({{ site.repository }}/issues/4154))
+- Add Kickster to deployment methods in documentation ([#4190]({{ site.repository }}/issues/4190))
+- Add DavidBurela's tutorial for Windows to Windows docs page ([#4210]({{ site.repository }}/issues/4210))
+- Change GitHub code block to highlight tag to avoid it overlaps parent div ([#4121]({{ site.repository }}/issues/4121))
+- Update FormKeep link to be something more specific to Jekyll ([#4243]({{ site.repository }}/issues/4243))
+- Remove example Roger Chapman site, as the domain doesn't exist ([#4249]({{ site.repository }}/issues/4249))
+- Added configuration options for `draft_posts` to configuration docs ([#4251]({{ site.repository }}/issues/4251))
+- Fix checklist in `_assets.md` ([#4259]({{ site.repository }}/issues/4259))
+- Add Markdown examples to Pages docs ([#4275]({{ site.repository }}/issues/4275))
+- Add jekyll-paginate-category to list of third-party plugins ([#4273]({{ site.repository }}/issues/4273))
+- Add `jekyll-responsive_image` to list of third-party plugins ([#4286]({{ site.repository }}/issues/4286))
+- Add `jekyll-commonmark` to list of third-party plugins ([#4299]({{ site.repository }}/issues/4299))
+- Add documentation for incremental regeneration ([#4293]({{ site.repository }}/issues/4293))
+- Add note about removal of relative permalink support in upgrading docs ([#4303]({{ site.repository }}/issues/4303))
+- Add Pro Tip to use front matter variable to create clean URLs ([#4296]({{ site.repository }}/issues/4296))
+- Fix grammar in the documentation for posts. ([#4330]({{ site.repository }}/issues/4330))
+- Add documentation for smartify Liquid filter ([#4333]({{ site.repository }}/issues/4333))
+- Fixed broken link to blog on using mathjax with jekyll ([#4344]({{ site.repository }}/issues/4344))
+- Documentation: correct reference in Precedence section of Configuration docs ([#4355]({{ site.repository }}/issues/4355))
+- Add [@jmcglone](https://github.com/jmcglone)'s guide to github-pages doc page ([#4364]({{ site.repository }}/issues/4364))
+- Added the Wordpress2Jekyll Wordpress plugin ([#4377]({{ site.repository }}/issues/4377))
+- Add Contentful Extension to list of third-party plugins ([#4390]({{ site.repository }}/issues/4390))
+
+
## 3.0.2 / 2016-01-20
{: #v3-0-2}
diff --git a/site/_posts/2016-01-23-jekyll-3-1-0-released.markdown b/site/_posts/2016-01-23-jekyll-3-1-0-released.markdown
new file mode 100644
index 00000000000..4acec55cb4d
--- /dev/null
+++ b/site/_posts/2016-01-23-jekyll-3-1-0-released.markdown
@@ -0,0 +1,50 @@
+---
+layout: news_item
+title: 'Jekyll 3.1.0 Released'
+date: 2016-01-23 17:32:12 -0800
+author: parkr
+version: 3.1.0
+categories: [release]
+---
+
+Happy weekend! To make your weekend all the better, we have just released
+v3.1.0 of Jekyll.
+
+There are _lots_ of great performance improvements, including a huge one
+which is to use Liquid drops instead of hashes. Much of the slowness in
+Jekyll is due to Jekyll making lots of objects it doesn't need to make.
+By making these objects only as they're needed, we can speed up Jekyll
+considerably!
+
+Some other highlights:
+
+* Fix: `permalink`s with non-HTML extensions will not be honored
+* Fix: `jekyll clean` now accepts build flags like `--source`.
+* Enhancement: `include` tags can now accept multiple liquid variables
+* Feature: adds new `sample` liquid tag which gets random element from an array
+* Fix: Jekyll will read in files with YAML front matter that has extraneous
+spaces after the first line
+* Enhancement: extract the `title` attribute from the filename for
+collection items without a date
+* Fix: gracefully handle empty configuration files
+
+... and [a whole bunch more](/docs/history/#v3-1-0)!
+
+Please [file a bug]({{ site.repository }}/issues/new?title=Jekyll+3.1.0+Issue:)
+if you encounter any issues! As always, [Jekyll Talk](https://talk.jekyllrb.com)
+is the best place to get help if you're encountering a problem.
+
+Special thanks to all our amazing contributors who helped make v3.1.0 a
+possibility:
+
+Alex J Best, Alexander Köplinger, Alfred Xing, Alistair Calder, Atul
+Bhosale, Ben Orenstein, Chi Trung Nguyen, Conor O'Callaghan, Craig P.
+Motlin, Dan K, David Burela, David Litvak Bruno, Decider UI, Ducksan Cho,
+Florian Thomas, James Wen, Jordon Bedwell, Joseph Wynn, Kakoma, Liam
+Bowers, Mike Neumegen, Nick Quaranto, Nielsen Ramon, Olivér Falvai, Pat
+Hawks, Paul Robert Lloyd, Pedro Euko, Peter Suschlik, Sam Volin, Samuel
+Wright, Sasha Friedenberg, Tim Cuthbertson, Vincent Wochnik, William
+Entriken, Zshawn Syed, chrisfinazzo, ducksan cho, leethomas,
+midnightSuyama, musoke, and rebornix
+
+Happy Jekylling!
diff --git a/site/latest_version.txt b/site/latest_version.txt
index cb2b00e4f7a..fd2a01863fd 100644
--- a/site/latest_version.txt
+++ b/site/latest_version.txt
@@ -1 +1 @@
-3.0.1
+3.1.0
From 778fa4cc0eab5df12de73927d89df4f09e48b2c2 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 24 Jan 2016 13:13:53 -0800
Subject: [PATCH 0360/4996] Release :gem: 3.1.0
From 29da9024ca339193cada226a8915e5e83fe9af25 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 24 Jan 2016 13:17:38 -0800
Subject: [PATCH 0361/4996] Today, not yesterday.
---
site/_docs/history.md | 1 +
...eased.markdown => 2016-01-24-jekyll-3-1-0-released.markdown} | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
rename site/_posts/{2016-01-23-jekyll-3-1-0-released.markdown => 2016-01-24-jekyll-3-1-0-released.markdown} (98%)
diff --git a/site/_docs/history.md b/site/_docs/history.md
index b05b18b0529..e93521e7736 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -103,6 +103,7 @@ permalink: "/docs/history/"
- Add [@jmcglone](https://github.com/jmcglone)'s guide to github-pages doc page ([#4364]({{ site.repository }}/issues/4364))
- Added the Wordpress2Jekyll Wordpress plugin ([#4377]({{ site.repository }}/issues/4377))
- Add Contentful Extension to list of third-party plugins ([#4390]({{ site.repository }}/issues/4390))
+- Correct Minor spelling error ([#4394]({{ site.repository }}/issues/4394))
## 3.0.2 / 2016-01-20
diff --git a/site/_posts/2016-01-23-jekyll-3-1-0-released.markdown b/site/_posts/2016-01-24-jekyll-3-1-0-released.markdown
similarity index 98%
rename from site/_posts/2016-01-23-jekyll-3-1-0-released.markdown
rename to site/_posts/2016-01-24-jekyll-3-1-0-released.markdown
index 4acec55cb4d..42768b9fe3e 100644
--- a/site/_posts/2016-01-23-jekyll-3-1-0-released.markdown
+++ b/site/_posts/2016-01-24-jekyll-3-1-0-released.markdown
@@ -1,7 +1,7 @@
---
layout: news_item
title: 'Jekyll 3.1.0 Released'
-date: 2016-01-23 17:32:12 -0800
+date: 2016-01-24 13:16:12 -0800
author: parkr
version: 3.1.0
categories: [release]
From e940dd1be42a58da0bf383be03fe80b8aeee927f Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 25 Jan 2016 14:09:22 -0800
Subject: [PATCH 0362/4996] Site: make github-pages project page url structure
refer to site.github.url
---
site/_docs/github-pages.md | 48 +++++++++++++++++---------------------
1 file changed, 21 insertions(+), 27 deletions(-)
diff --git a/site/_docs/github-pages.md b/site/_docs/github-pages.md
index 03d83b35bf2..add661c39e4 100644
--- a/site/_docs/github-pages.md
+++ b/site/_docs/github-pages.md
@@ -15,6 +15,26 @@ Jonathan McGlone to get you up and running](http://jmcglone.com/guides/github-pa
This guide will teach you what you need to know about Git, GitHub, and Jekyll to
create your very own website on GitHub Pages.
+### Project Page URL Structure
+
+Sometimes it's nice to preview your Jekyll site before you push your `gh-pages`
+branch to GitHub. However, the subdirectory-like URL structure GitHub uses for
+Project Pages complicates the proper resolution of URLs. In order to assure your
+site builds properly, use `site.github.url` in your URL's.
+
+{% highlight html %}
+{% raw %}
+
+
+
+{{ page.title }}
+{% endraw %}
+{% endhighlight %}
+
+This way you can preview your site locally from the site root on localhost,
+but when GitHub generates your pages from the gh-pages branch all the URLs
+will resolve properly.
+
## Deploying Jekyll to GitHub Pages
GitHub Pages work by looking at certain branches of repositories on GitHub.
@@ -101,38 +121,12 @@ GitHub Pages
GitHub Pages Documentation, Help, and Support
For more information about what you can do with GitHub Pages, as well as for
troubleshooting guides, you should check out GitHub’s Pages Help
+ href="https://help.github.com/categories/github-pages-basics/">GitHub’s Pages Help
section. If all else fails, you should contact GitHub Support.
From d7ff4234f0f311979225bb718a73e5c2aa84f8d6 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 25 Jan 2016 14:48:28 -0800
Subject: [PATCH 0363/4996] Renderer#output_ext: honor folders when looking for
ext
Previously, even if the document permalink was a folder, it would look for
an extension on that. For example, if I have:
permalink: "/new-version-jekyll-v3.0.0/"
the output_ext would be ".0". Now, the output_ext honors the trailing
slash and will report based on the converters instead.
---
lib/jekyll/renderer.rb | 2 +-
.../_with.dots/permalink.with.slash.tho.md | 5 +++
test/test_collections.rb | 2 +-
test/test_document.rb | 35 +++++++++++++++++++
4 files changed, 42 insertions(+), 2 deletions(-)
create mode 100644 test/source/_with.dots/permalink.with.slash.tho.md
diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb
index c7b6042b538..09815a600f8 100644
--- a/lib/jekyll/renderer.rb
+++ b/lib/jekyll/renderer.rb
@@ -168,7 +168,7 @@ def place_in_layouts(content, payload, info)
private
def permalink_ext
- if document.permalink
+ if document.permalink && !document.permalink.end_with?("/")
permalink_ext = File.extname(document.permalink)
permalink_ext unless permalink_ext.empty?
end
diff --git a/test/source/_with.dots/permalink.with.slash.tho.md b/test/source/_with.dots/permalink.with.slash.tho.md
new file mode 100644
index 00000000000..71b9b2e44a5
--- /dev/null
+++ b/test/source/_with.dots/permalink.with.slash.tho.md
@@ -0,0 +1,5 @@
+---
+permalink: /with.dots/permalink.with.slash.tho/
+---
+
+I'm a file with dots BUT I have a permalink which ends with a slash.
diff --git a/test/test_collections.rb b/test/test_collections.rb
index be3a932053c..138bed6bb6b 100644
--- a/test/test_collections.rb
+++ b/test/test_collections.rb
@@ -203,7 +203,7 @@ class TestCollections < JekyllUnitTest
end
should "contain one document" do
- assert_equal 2, @collection.docs.size
+ assert_equal 3, @collection.docs.size
end
should "allow dots in the filename" do
diff --git a/test/test_document.rb b/test/test_document.rb
index 7c6f7bef6b8..1197c4da941 100644
--- a/test/test_document.rb
+++ b/test/test_document.rb
@@ -207,6 +207,10 @@ def assert_equal_value(key, one, other)
should "produce the right destination file" do
assert_equal @dest_file, @document.destination(dest_dir)
end
+
+ should "honor the output extension of its permalink" do
+ assert_equal ".html", @document.output_ext
+ end
end
context "a document in a collection with pretty permalink style" do
@@ -267,6 +271,10 @@ def assert_equal_value(key, one, other)
@dest_file = dest_dir("slides/example-slide-7.php")
end
+ should "be written out properly" do
+ assert_exist @dest_file
+ end
+
should "produce the permalink as the url" do
assert_equal "/slides/example-slide-7.php", @document.url
end
@@ -274,6 +282,10 @@ def assert_equal_value(key, one, other)
should "be written to the proper directory" do
assert_equal @dest_file, @document.destination(dest_dir)
end
+
+ should "honor the output extension of its permalink" do
+ assert_equal ".php", @document.output_ext
+ end
end
context "documents in a collection with custom title permalinks" do
@@ -318,6 +330,29 @@ def assert_equal_value(key, one, other)
end
end
+ context "document with a permalink with dots & a trailing slash" do
+ setup do
+ @site = fixture_site({"collections" => {
+ "with.dots" => { "output" => true }
+ }})
+ @site.process
+ @document = @site.collections["with.dots"].docs.last
+ @dest_file = dest_dir("with.dots", "permalink.with.slash.tho", "index.html")
+ end
+
+ should "yield an HTML document" do
+ assert_equal @dest_file, @document.destination(dest_dir)
+ end
+
+ should "be written properly" do
+ assert_exist @dest_file
+ end
+
+ should "get the right output_ext" do
+ assert_equal ".html", @document.output_ext
+ end
+ end
+
context "documents in a collection" do
setup do
@site = fixture_site({
From 74fb4aca1616fb8c907357505bcfbfd4072c0277 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 25 Jan 2016 15:49:23 -0800
Subject: [PATCH 0364/4996] Update history to reflect merge of #4401 [ci skip]
---
History.markdown | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/History.markdown b/History.markdown
index 28c16468c16..15cda096640 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,3 +1,9 @@
+## HEAD
+
+### Development Fixes
+
+ * Renderer#output_ext: honor folders when looking for ext (#4401)
+
## 3.1.0 / 2016-01-23
### Minor Enhancements
From ea5e3d56f544bee22b7f2bbfb6227c9892cb4981 Mon Sep 17 00:00:00 2001
From: David Celis
Date: Mon, 25 Jan 2016 18:24:27 -0800
Subject: [PATCH 0365/4996] Update the Code of Conduct to the latest version
The Contributor Code of Conduct is now at version 1.3.0 and has several
changes. Many of these are simply wording changes, but an important note
is added that project maintainers must maintain confidentiality when
dealing with any code of conduct violations. Additionally, a note is
added that states violations will be investigated and dealt with in a
way that is deemed necessary and appropriate based on the circumstances.
Signed-off-by: David Celis
---
CONDUCT.md | 43 +++++++++++++++++++++++++++++++++++--------
1 file changed, 35 insertions(+), 8 deletions(-)
diff --git a/CONDUCT.md b/CONDUCT.md
index 65c05c57488..a0f06de773a 100644
--- a/CONDUCT.md
+++ b/CONDUCT.md
@@ -1,8 +1,14 @@
# Contributor Code of Conduct
-As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
+As contributors and maintainers of this project, and in the interest of
+fostering an open and welcoming community, we pledge to respect all people who
+contribute through reporting issues, posting feature requests, updating
+documentation, submitting pull requests or patches, and other activities.
-We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
+We are committed to making participation in this project a harassment-free
+experience for everyone, regardless of level of experience, gender, gender
+identity and expression, sexual orientation, disability, personal appearance,
+body size, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior by participants include:
@@ -10,13 +16,34 @@ Examples of unacceptable behavior by participants include:
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
-* Publishing other's private information, such as physical or electronic addresses, without explicit permission
-* Other unethical or unprofessional conduct.
+* Publishing other's private information, such as physical or electronic
+ addresses, without explicit permission
+* Other unethical or unprofessional conduct
-Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
-This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
+By adopting this Code of Conduct, project maintainers commit themselves to
+fairly and consistently applying these principles to every aspect of managing
+this project. Project maintainers who do not follow or enforce the Code of
+Conduct may be permanently removed from the project team.
-Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community.
-This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
\ No newline at end of file
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by opening an issue or contacting a project maintainer. All complaints
+will be reviewed and investigated and will result in a response that is deemed
+necessary and appropriate to the circumstances. Maintainers are obligated to
+maintain confidentiality with regard to the reporter of an incident.
+
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 1.3.0, available at
+[http://contributor-covenant.org/version/1/3/0/][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/3/0/
From ce77fe648874a8a0fa21d855bdfd6b369dc89155 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 26 Jan 2016 06:55:55 -0600
Subject: [PATCH 0366/4996] Update history.markdown to reflect the merger of
#4402
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 15cda096640..304bd7c877d 100644
--- a/History.markdown
+++ b/History.markdown
@@ -8,6 +8,7 @@
### Minor Enhancements
+ * Update the Code of Conduct to the latest version (#4402)
* Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` (#4277)
* Add 'sample' Liquid filter Equivalent to Array#sample functionality (#4223)
* Cache parsed include file to save liquid parsing time. (#4120)
From 38b64faeb2823cbf0927193f28bf83673ba4cd93 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Tue, 26 Jan 2016 16:44:30 -0800
Subject: [PATCH 0367/4996] Page#dir: ensure it ends in a slash
---
lib/jekyll/page.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index eda87f12346..6bdfb6bc46e 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -55,7 +55,9 @@ def initialize(site, base, dir, name)
#
# Returns the String destination directory.
def dir
- url[-1, 1] == '/' ? url : File.dirname(url)
+ dest_dir = url[-1, 1] == '/' ? url : File.dirname(url)
+ dest_dir << '/' unless dest_dir.end_with?('/')
+ dest_dir
end
# The full path and filename of the post. Defined in the YAML of the post
From aad54c9a8792ccf4b606cf0d2d4309ee902c65de Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Tue, 26 Jan 2016 17:08:54 -0800
Subject: [PATCH 0368/4996] Add Utils.merged_file_read_opts to unify reading &
strip the BOM
---
lib/jekyll/convertible.rb | 8 +-------
lib/jekyll/document.rb | 12 +-----------
lib/jekyll/utils.rb | 10 ++++++++++
test/test_utils.rb | 17 +++++++++++++++++
4 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 383bb024dc0..f58796f0be0 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -28,12 +28,6 @@ def published?
!(data.key?('published') && data['published'] == false)
end
- # Returns merged option hash for File.read of self.site (if exists)
- # and a given param
- def merged_file_read_opts(opts)
- (site ? site.file_read_opts : {}).merge(opts)
- end
-
# Read the YAML frontmatter.
#
# base - The String path to the dir containing the file.
@@ -46,7 +40,7 @@ def read_yaml(base, name, opts = {})
begin
self.content = File.read(site.in_source_dir(base, name),
- merged_file_read_opts(opts))
+ Utils.merged_file_read_opts(site, opts))
if content =~ /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
self.content = $POSTMATCH
self.data = SafeYAML.load(Regexp.last_match(1))
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index 2840ba51078..fc3633d8e09 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -237,16 +237,6 @@ def write(dest)
trigger_hooks(:post_write)
end
- # Returns merged option hash for File.read of self.site (if exists)
- # and a given param
- #
- # opts - override options
- #
- # Return the file read options hash.
- def merged_file_read_opts(opts)
- site ? site.file_read_opts.merge(opts) : opts
- end
-
# Whether the file is published or not, as indicated in YAML front-matter
#
# Returns true if the 'published' key is specified in the YAML front-matter and not `false`.
@@ -269,7 +259,7 @@ def read(opts = {})
defaults = @site.frontmatter_defaults.all(url, collection.label.to_sym)
merge_data!(defaults, source: "front matter defaults") unless defaults.empty?
- self.content = File.read(path, merged_file_read_opts(opts))
+ self.content = File.read(path, Utils.merged_file_read_opts(site, opts))
if content =~ YAML_FRONT_MATTER_REGEXP
self.content = $POSTMATCH
data_file = SafeYAML.load(Regexp.last_match(1))
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index 6dd2b117f94..e5d45c6d5e6 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -273,5 +273,15 @@ def safe_glob(dir, patterns, flags = 0)
end
end
+ # Returns merged option hash for File.read of self.site (if exists)
+ # and a given param
+ def merged_file_read_opts(site, opts)
+ merged = (site ? site.file_read_opts : {}).merge(opts)
+ if merged["encoding"] && !merged["encoding"].start_with?("bom|")
+ merged["encoding"].insert(0, "bom|")
+ end
+ merged
+ end
+
end
end
diff --git a/test/test_utils.rb b/test/test_utils.rb
index d3720127098..a2335391dbe 100644
--- a/test/test_utils.rb
+++ b/test/test_utils.rb
@@ -276,4 +276,21 @@ class TestUtils < JekyllUnitTest
refute Utils.has_yaml_header?(file)
end
end
+
+ context "The \`Utils.merged_file_read_opts\` method" do
+ should "ignore encoding if it's not there" do
+ opts = Utils.merged_file_read_opts(nil, {})
+ assert_nil opts["encoding"]
+ end
+
+ should "add bom to encoding" do
+ opts = Utils.merged_file_read_opts(nil, { "encoding" => "utf-8" })
+ assert_equal "bom|utf-8", opts["encoding"]
+ end
+
+ should "preserve bom in encoding" do
+ opts = Utils.merged_file_read_opts(nil, { "encoding" => "bom|utf-8" })
+ assert_equal "bom|utf-8", opts["encoding"]
+ end
+ end
end
From b70ee10198d0d43187b8071e838194a6cb90cc28 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 27 Jan 2016 08:28:41 -0800
Subject: [PATCH 0369/4996] Add benchmarks for Page#dir
---
benchmark/end-with-vs-regexp | 2 +
benchmark/file-dir-ensure-trailing-slash | 54 ++++++++++++++++++++++++
2 files changed, 56 insertions(+)
create mode 100644 benchmark/file-dir-ensure-trailing-slash
diff --git a/benchmark/end-with-vs-regexp b/benchmark/end-with-vs-regexp
index cb849f42267..76f0312b93b 100644
--- a/benchmark/end-with-vs-regexp
+++ b/benchmark/end-with-vs-regexp
@@ -4,10 +4,12 @@ Benchmark.ips do |x|
path_without_ending_slash = '/some/very/very/long/path/to/a/file/i/like'
x.report('no slash regexp') { path_without_ending_slash =~ /\/$/ }
x.report('no slash end_with?') { path_without_ending_slash.end_with?("/") }
+ x.report('no slash [-1, 1]') { path_without_ending_slash[-1, 1] == "/" }
end
Benchmark.ips do |x|
path_with_ending_slash = '/some/very/very/long/path/to/a/file/i/like/'
x.report('slash regexp') { path_with_ending_slash =~ /\/$/ }
x.report('slash end_with?') { path_with_ending_slash.end_with?("/") }
+ x.report('slash [-1, 1]') { path_with_ending_slash[-1, 1] == "/" }
end
diff --git a/benchmark/file-dir-ensure-trailing-slash b/benchmark/file-dir-ensure-trailing-slash
new file mode 100644
index 00000000000..aecfc039519
--- /dev/null
+++ b/benchmark/file-dir-ensure-trailing-slash
@@ -0,0 +1,54 @@
+#!/usr/bin/env ruby
+require 'benchmark/ips'
+
+# For this pull request, which changes Page#dir
+# https://github.com/jekyll/jekyll/pull/4403
+
+FORWARD_SLASH = '/'.freeze
+
+def pre_pr(url)
+ url[-1, 1] == FORWARD_SLASH ? url : File.dirname(url)
+end
+
+def pr(url)
+ if url.end_with?(FORWARD_SLASH)
+ url
+ else
+ url_dir = File.dirname(url)
+ url_dir.end_with?(FORWARD_SLASH) ? url_dir : "#{url_dir}/"
+ end
+end
+
+def envygeeks(url)
+ return url if url.end_with?(FORWARD_SLASH) || url == FORWARD_SLASH
+
+ url = File.dirname(url)
+ url == FORWARD_SLASH ? url : "#{url}/"
+end
+
+# Just a slash
+Benchmark.ips do |x|
+ path = '/'
+ x.report("pre_pr:#{path}") { pre_pr(path) }
+ x.report("pr:#{path}") { pr(path) }
+ x.report("envygeeks:#{path}") { pr(path) }
+ x.compare!
+end
+
+# No trailing slash
+Benchmark.ips do |x|
+ path = '/some/very/very/long/path/to/a/file/i/like'
+ x.report("pre_pr:#{path}") { pre_pr(path) }
+ x.report("pr:#{path}") { pr(path) }
+ x.report("envygeeks:#{path}") { pr(path) }
+ x.compare!
+end
+
+# No trailing slash
+Benchmark.ips do |x|
+ path = '/some/very/very/long/path/to/a/file/i/like/'
+ x.report("pre_pr:#{path}") { pre_pr(path) }
+ x.report("pr:#{path}") { pr(path) }
+ x.report("envygeeks:#{path}") { pr(path) }
+ x.compare!
+end
From 9daebe8dd253156893829cec335a18f8a2849bbb Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 27 Jan 2016 08:28:47 -0800
Subject: [PATCH 0370/4996] Use improved Page#dir
---
lib/jekyll/page.rb | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index 6bdfb6bc46e..6c402ee37d9 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -9,6 +9,8 @@ class Page
alias_method :extname, :ext
+ FORWARD_SLASH = '/'.freeze
+
# Attributes for Liquid templates
ATTRIBUTES_FOR_LIQUID = %w(
content
@@ -55,9 +57,12 @@ def initialize(site, base, dir, name)
#
# Returns the String destination directory.
def dir
- dest_dir = url[-1, 1] == '/' ? url : File.dirname(url)
- dest_dir << '/' unless dest_dir.end_with?('/')
- dest_dir
+ if url.end_with?(FORWARD_SLASH)
+ url
+ else
+ url_dir = File.dirname(url)
+ url_dir.end_with?(FORWARD_SLASH) ? url_dir : "#{url_dir}/"
+ end
end
# The full path and filename of the post. Defined in the YAML of the post
From b1868983c778b3a056b87a35300fa6f95daf2c6e Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 27 Jan 2016 08:44:59 -0800
Subject: [PATCH 0371/4996] Add test for Page#dir in :date/nil modes
---
test/test_page.rb | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/test/test_page.rb b/test/test_page.rb
index 69794107c50..8930095db87 100644
--- a/test/test_page.rb
+++ b/test/test_page.rb
@@ -150,6 +150,12 @@ def do_render(page)
assert_equal '/contacts.html', @page.url
assert_equal @dest_file, @page.destination(dest_dir)
end
+
+ should "return dir correctly" do
+ assert_equal '/', setup_page('contacts.html').dir
+ assert_equal '/contacts/', setup_page('contacts/bar.html').dir
+ assert_equal '/contacts/', setup_page('contacts/index.html').dir
+ end
end
context "with custom permalink style with trailing slash" do
@@ -194,8 +200,9 @@ def do_render(page)
context "with any other permalink style" do
should "return dir correctly" do
@site.permalink_style = nil
- @page = setup_page('contacts.html')
- assert_equal '/', @page.dir
+ assert_equal '/', setup_page('contacts.html').dir
+ assert_equal '/contacts/', setup_page('contacts/index.html').dir
+ assert_equal '/contacts/', setup_page('contacts/bar.html').dir
end
end
From e898b6e8bd8ae6a28bbf92b943f7ebb680c4ff3f Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 27 Jan 2016 11:01:26 -0800
Subject: [PATCH 0372/4996] Update history to reflect merge of #4403 [ci skip]
---
History.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/History.markdown b/History.markdown
index 304bd7c877d..8e1844b2b84 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,5 +1,9 @@
## HEAD
+### Bug Fixes
+
+ * Page#dir: ensure it ends in a slash (#4403)
+
### Development Fixes
* Renderer#output_ext: honor folders when looking for ext (#4401)
From 5fc48ffcb96f7880b036ea02e8794d975bd74082 Mon Sep 17 00:00:00 2001
From: Alfred Xing
Date: Wed, 27 Jan 2016 13:41:40 -0800
Subject: [PATCH 0373/4996] Suppress stdout in liquid profiling test
The test was spewing out some whitespace
---
test/test_site.rb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/test/test_site.rb b/test/test_site.rb
index e0883b49f90..c06c218e60c 100644
--- a/test/test_site.rb
+++ b/test/test_site.rb
@@ -465,6 +465,14 @@ def convert(*args)
@site = Site.new(site_configuration('profile' => true))
end
+ # Suppress output while testing
+ setup do
+ $stdout = StringIO.new
+ end
+ teardown do
+ $stdout = STDOUT
+ end
+
should "print profile table" do
expect(@site.liquid_renderer).to receive(:stats_table)
@site.process
From 6c4a1bf00ed3ec0fa9508b53b3e7cd19e5da6166 Mon Sep 17 00:00:00 2001
From: Michael Lee
Date: Wed, 27 Jan 2016 22:22:12 -0500
Subject: [PATCH 0374/4996] Docs: Quickstart - added documentation about the
`--force` option if directory is not empty
---
site/_docs/quickstart.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/site/_docs/quickstart.md b/site/_docs/quickstart.md
index d8ad5511943..8f5ffe8a96e 100644
--- a/site/_docs/quickstart.md
+++ b/site/_docs/quickstart.md
@@ -14,8 +14,8 @@ For the impatient, here's how to get a boilerplate Jekyll site up and running.
# => Now browse to http://localhost:4000
{% endhighlight %}
-If you wish to install jekyll into the current directory, you can do so by
-alternatively running `jekyll new .` instead of a new directory name.
+If you wish to install jekyll into an existing directory, you can do so by
+alternatively running `jekyll new .` from within the directory instead of creating a new one. If the existing directory isn't empty, you'll also have to pass the `--force` option like so `jekyll new . --force`.
That's nothing, though. The real magic happens when you start creating blog
posts, using the front matter to control templates and layouts, and taking
From 8592aed284cc13ed6d86165ef99be44edd91fbd7 Mon Sep 17 00:00:00 2001
From: chrisfinazzo
Date: Thu, 28 Jan 2016 10:45:16 -0500
Subject: [PATCH 0375/4996] Small style fix
---
site/_docs/assets.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/assets.md b/site/_docs/assets.md
index 66023147b87..10f094bd5bd 100644
--- a/site/_docs/assets.md
+++ b/site/_docs/assets.md
@@ -86,7 +86,7 @@ here, too.
To enable Coffeescript in Jekyll 3.0 and up you must
* Install the `jekyll-coffeescript` gem
-* Ensure that your `_config.yml` is up-to-date and includes the following
+* Ensure that your `_config.yml` is up-to-date and includes the following:
{% highlight yaml %}
gems:
From 5d126350d68810fe738529f55558642f6e95a37d Mon Sep 17 00:00:00 2001
From: Kroum Tzanev
Date: Thu, 28 Jan 2016 22:20:40 +0100
Subject: [PATCH 0376/4996] Correct indent in yaml preamble
---
site/_docs/configuration.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md
index f4327d3597c..4e78ab7ad9c 100644
--- a/site/_docs/configuration.md
+++ b/site/_docs/configuration.md
@@ -489,7 +489,7 @@ With these defaults, all posts would use the `my-site` layout. Any html files th
{% highlight yaml %}
collections:
- my_collection:
- output: true
+ output: true
defaults:
-
From 0deae96a7503bfddb9e8232c1dc7f7803ccebbf2 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Thu, 28 Jan 2016 14:21:41 -0800
Subject: [PATCH 0377/4996] Update history to reflect merge of #4409 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 8e1844b2b84..28d061de481 100644
--- a/History.markdown
+++ b/History.markdown
@@ -7,6 +7,7 @@
### Development Fixes
* Renderer#output_ext: honor folders when looking for ext (#4401)
+ * Suppress stdout in liquid profiling test (#4409)
## 3.1.0 / 2016-01-23
From eb5be62cba5b6ab3eadcbf154a2958fd59ea3f14 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 28 Jan 2016 17:19:06 -0800
Subject: [PATCH 0378/4996] Upgrade 2-3 docs, include note about getting one
single collection
Yay, @pathawks! https://github.com/jekyll/jekyll/issues/4392#issuecomment-174369983
---
site/_docs/history.md | 1 +
site/_docs/upgrading/2-to-3.md | 10 ++++++++++
2 files changed, 11 insertions(+)
diff --git a/site/_docs/history.md b/site/_docs/history.md
index e93521e7736..ab87f5698f5 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -10,6 +10,7 @@ permalink: "/docs/history/"
### Minor Enhancements
{: #minor-enhancements-v3-1-0}
+- Update the Code of Conduct to the latest version ([#4402]({{ site.repository }}/issues/4402))
- Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` ([#4277]({{ site.repository }}/issues/4277))
- Add 'sample' Liquid filter Equivalent to Array#sample functionality ([#4223]({{ site.repository }}/issues/4223))
- Cache parsed include file to save liquid parsing time. ([#4120]({{ site.repository }}/issues/4120))
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index e3529f63164..d3ff4a38781 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -32,6 +32,16 @@ A simple conversion must be made in your templates:
When iterating over `site.collections`, ensure the above conversions are made.
+For `site.collections.myCollection` in Jekyll 2, you now do:
+
+{% highlight liquid %}
+{% raw %}
+{% assign myCollection = site.collections | where: "label", "myCollection" | first %}
+{% endraw %}
+{% endhighlight %}
+
+This is a bit cumbersome at first, but is easier than a big `for` loop.
+
### Dropped dependencies
We dropped a number of dependencies the Core Team felt were optional. As such, in 3.0, they must be explicitly installed and included if you use any of the features. They are:
From 1d1ffdff9b5d655bf0a65ca8ee0cef38e9c88615 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Thu, 28 Jan 2016 17:20:34 -0800
Subject: [PATCH 0379/4996] Update history to reflect merge of #4404 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 28d061de481..e25582710b1 100644
--- a/History.markdown
+++ b/History.markdown
@@ -3,6 +3,7 @@
### Bug Fixes
* Page#dir: ensure it ends in a slash (#4403)
+ * Add Utils.merged_file_read_opts to unify reading & strip the BOM (#4404)
### Development Fixes
From bfee5c5b59166ee7405e8147d1f38c836156d406 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 28 Jan 2016 20:36:51 -0800
Subject: [PATCH 0380/4996] Release :gem: v3.1.1
---
History.markdown | 13 +++--
lib/jekyll/version.rb | 2 +-
rake/site.rake | 27 ++++++++-
site/_data/docs.yml | 1 +
site/_docs/conduct.md | 55 +++++++++++++++++++
site/_docs/history.md | 21 ++++++-
.../2016-01-28-jekyll-3-1-1-released.markdown | 31 +++++++++++
7 files changed, 140 insertions(+), 10 deletions(-)
create mode 100644 site/_docs/conduct.md
create mode 100644 site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
diff --git a/History.markdown b/History.markdown
index e25582710b1..ecbd1794bb2 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,20 +1,23 @@
-## HEAD
+## 3.1.1 / 2016-01-29
+
+### Meta
+
+ * Update the Code of Conduct to the latest version (#4402)
### Bug Fixes
- * Page#dir: ensure it ends in a slash (#4403)
- * Add Utils.merged_file_read_opts to unify reading & strip the BOM (#4404)
+ * `Page#dir`: ensure it ends in a slash (#4403)
+ * Add `Utils.merged_file_read_opts` to unify reading & strip the BOM (#4404)
+ * `Renderer#output_ext`: honor folders when looking for ext (#4401)
### Development Fixes
- * Renderer#output_ext: honor folders when looking for ext (#4401)
* Suppress stdout in liquid profiling test (#4409)
## 3.1.0 / 2016-01-23
### Minor Enhancements
- * Update the Code of Conduct to the latest version (#4402)
* Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` (#4277)
* Add 'sample' Liquid filter Equivalent to Array#sample functionality (#4223)
* Cache parsed include file to save liquid parsing time. (#4120)
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index b20df48404b..925e0b442d8 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.0'
+ VERSION = '3.1.1'
end
diff --git a/rake/site.rake b/rake/site.rake
index eb5b263b8d1..2a6f8186478 100644
--- a/rake/site.rake
+++ b/rake/site.rake
@@ -5,8 +5,10 @@
#############################################################################
namespace :site do
+ task :generated_pages => [:history, :version_file, :conduct]
+
desc "Generate and view the site locally"
- task :preview => [:history, :version_file] do
+ task :preview => :generated_pages do
require "launchy"
require "jekyll"
@@ -31,7 +33,7 @@ namespace :site do
end
desc "Generate the site"
- task :generate => [:history, :version_file] do
+ task :generate => :generated_pages do
require "jekyll"
Jekyll::Commands::Build.process({
"source" => File.expand_path("site"),
@@ -50,7 +52,7 @@ namespace :site do
end
desc "Commit the local site to the gh-pages branch and publish to GitHub Pages"
- task :publish => [:history, :version_file] do
+ task :publish => :generated_pages do
# Ensure the gh-pages dir exists so we can generate into it.
puts "Checking for gh-pages dir..."
unless File.exist?("./gh-pages")
@@ -119,6 +121,25 @@ namespace :site do
end
end
+ desc "Copy the Code of Conduct"
+ task :conduct do
+ code_of_conduct = File.read("CONDUCT.md")
+ header, _, body = code_of_conduct.partition("\n\n")
+ front_matter = {
+ "layout" => "docs",
+ "title" => header.sub('# Contributor ', ''),
+ "permalink" => "/docs/conduct/",
+ "redirect_from" => "/conduct/index.html",
+ "editable" => false
+ }
+ Dir.chdir('site/_docs') do
+ File.open("conduct.md", "w") do |file|
+ file.write("#{front_matter.to_yaml}---\n\n")
+ file.write(body)
+ end
+ end
+ end
+
desc "Write the site latest_version.txt file"
task :version_file do
File.open('site/latest_version.txt', 'wb') { |f| f.puts(version) } unless version =~ /(beta|rc|alpha)/i
diff --git a/site/_data/docs.yml b/site/_data/docs.yml
index dcd9ac2cb35..7cb8519893c 100644
--- a/site/_data/docs.yml
+++ b/site/_data/docs.yml
@@ -45,4 +45,5 @@
- title: Meta
docs:
- contributing
+ - conduct
- history
diff --git a/site/_docs/conduct.md b/site/_docs/conduct.md
new file mode 100644
index 00000000000..d25c32c9d86
--- /dev/null
+++ b/site/_docs/conduct.md
@@ -0,0 +1,55 @@
+---
+layout: docs
+title: Code of Conduct
+permalink: "/docs/conduct/"
+redirect_from: "/conduct/index.html"
+editable: false
+---
+
+As contributors and maintainers of this project, and in the interest of
+fostering an open and welcoming community, we pledge to respect all people who
+contribute through reporting issues, posting feature requests, updating
+documentation, submitting pull requests or patches, and other activities.
+
+We are committed to making participation in this project a harassment-free
+experience for everyone, regardless of level of experience, gender, gender
+identity and expression, sexual orientation, disability, personal appearance,
+body size, race, ethnicity, age, religion, or nationality.
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery
+* Personal attacks
+* Trolling or insulting/derogatory comments
+* Public or private harassment
+* Publishing other's private information, such as physical or electronic
+ addresses, without explicit permission
+* Other unethical or unprofessional conduct
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+By adopting this Code of Conduct, project maintainers commit themselves to
+fairly and consistently applying these principles to every aspect of managing
+this project. Project maintainers who do not follow or enforce the Code of
+Conduct may be permanently removed from the project team.
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by opening an issue or contacting a project maintainer. All complaints
+will be reviewed and investigated and will result in a response that is deemed
+necessary and appropriate to the circumstances. Maintainers are obligated to
+maintain confidentiality with regard to the reporter of an incident.
+
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 1.3.0, available at
+[http://contributor-covenant.org/version/1/3/0/][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/3/0/
diff --git a/site/_docs/history.md b/site/_docs/history.md
index ab87f5698f5..7943203b12b 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -4,13 +4,32 @@ title: History
permalink: "/docs/history/"
---
+## 3.1.1 / 2016-01-29
+{: #v3-1-1}
+
+### Meta
+
+- Update the Code of Conduct to the latest version ([#4402]({{ site.repository }}/issues/4402))
+
+### Bug Fixes
+{: #bug-fixes-v3-1-1}
+
+- `Page#dir`: ensure it ends in a slash ([#4403]({{ site.repository }}/issues/4403))
+- Add `Utils.merged_file_read_opts` to unify reading & strip the BOM ([#4404]({{ site.repository }}/issues/4404))
+- `Renderer#output_ext`: honor folders when looking for ext ([#4401]({{ site.repository }}/issues/4401))
+
+### Development Fixes
+{: #development-fixes-v3-1-1}
+
+- Suppress stdout in liquid profiling test ([#4409]({{ site.repository }}/issues/4409))
+
+
## 3.1.0 / 2016-01-23
{: #v3-1-0}
### Minor Enhancements
{: #minor-enhancements-v3-1-0}
-- Update the Code of Conduct to the latest version ([#4402]({{ site.repository }}/issues/4402))
- Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` ([#4277]({{ site.repository }}/issues/4277))
- Add 'sample' Liquid filter Equivalent to Array#sample functionality ([#4223]({{ site.repository }}/issues/4223))
- Cache parsed include file to save liquid parsing time. ([#4120]({{ site.repository }}/issues/4120))
diff --git a/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
new file mode 100644
index 00000000000..cddabd22a30
--- /dev/null
+++ b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
@@ -0,0 +1,31 @@
+---
+layout: news_item
+title: 'Jekyll 3.1.1 Released'
+date: 2016-01-28 17:21:50 -0800
+author: parkr
+version: 3.1.1
+categories: [release]
+---
+
+This release squashes a few bugs :bug: :bug: :bug: noticed by a few
+wonderful Jekyll users:
+
+* If your `permalink` ended with a `/`, your URL didn't have any extension,
+even if you wanted one
+* We now strip the BOM by default per Ruby's `IO.open`.
+* `page.dir` will not always end in a slash.
+
+We also updated our [Code of Conduct](/conduct/) to the latest version of
+the Contributor Covenant. The update includes language to ensure that the
+reporter of the incident remains confidential to non-maintainers and that
+all complaints will result in an appropriate response. I care deeply about
+Jekyll's community and will do everything in my power to ensure it is a
+welcoming community. Feel free to reach out to me directly if you feel
+there is a way we can improve the community for everyone!
+
+See links to the PR's on [the history page](/docs/history/#v3-1-1).
+
+Thanks to Jordon Bedwell, chrisfinazzo, Kroum Tzanev, David Celis, and
+Alfred Xing for their commits on this latest release! :sparkles:
+
+Happy Jekylling!
From 6fbd965509d2049bb34004e7f69a03baeda3498c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 28 Jan 2016 21:08:26 -0800
Subject: [PATCH 0381/4996] Update site/latest_version.txt
---
site/_docs/conduct.md | 2 +-
site/latest_version.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/site/_docs/conduct.md b/site/_docs/conduct.md
index d25c32c9d86..8b9ac2c5041 100644
--- a/site/_docs/conduct.md
+++ b/site/_docs/conduct.md
@@ -2,7 +2,7 @@
layout: docs
title: Code of Conduct
permalink: "/docs/conduct/"
-redirect_from: "/conduct/index.html"
+redirect_from: "/conduct/"
editable: false
---
diff --git a/site/latest_version.txt b/site/latest_version.txt
index fd2a01863fd..94ff29cc4de 100644
--- a/site/latest_version.txt
+++ b/site/latest_version.txt
@@ -1 +1 @@
-3.1.0
+3.1.1
From 39ac364b2ccec3132df0a7cd6028eecdc695e6f7 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 29 Jan 2016 15:12:17 -0800
Subject: [PATCH 0382/4996] CoC must be redirected from an HTML link due to bug
in jekyll-redirect-from
https://github.com/jekyll/jekyll-redirect-from/pull/96
---
site/_docs/conduct.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/conduct.md b/site/_docs/conduct.md
index 8b9ac2c5041..d25c32c9d86 100644
--- a/site/_docs/conduct.md
+++ b/site/_docs/conduct.md
@@ -2,7 +2,7 @@
layout: docs
title: Code of Conduct
permalink: "/docs/conduct/"
-redirect_from: "/conduct/"
+redirect_from: "/conduct/index.html"
editable: false
---
From 9dc273ca50246afd3cf58fdd1b0640f6451b227c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 29 Jan 2016 15:12:29 -0800
Subject: [PATCH 0383/4996] Release :gem: 3.1.1
From 932d6641bcd0ce2ca61f5c186d9e7e8c02234eba Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 29 Jan 2016 16:00:04 -0800
Subject: [PATCH 0384/4996] Add link to diff between CoC's in release post.
---
site/_posts/2016-01-28-jekyll-3-1-1-released.markdown | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
index cddabd22a30..18c693cfca4 100644
--- a/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
+++ b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
@@ -21,7 +21,9 @@ reporter of the incident remains confidential to non-maintainers and that
all complaints will result in an appropriate response. I care deeply about
Jekyll's community and will do everything in my power to ensure it is a
welcoming community. Feel free to reach out to me directly if you feel
-there is a way we can improve the community for everyone!
+there is a way we can improve the community for everyone! If you're
+interested in more details, [there is a diff for
+that](https://github.com/ContributorCovenant/contributor_covenant/blob/v1_4/diffs/1_3_vs_1_4.patch).
See links to the PR's on [the history page](/docs/history/#v3-1-1).
From 6e93dbbbd1147d80076eaa3bc7d20503f56e9700 Mon Sep 17 00:00:00 2001
From: Suriyaa Kudo
Date: Sat, 30 Jan 2016 13:08:12 +0100
Subject: [PATCH 0385/4996] Rename CONDUCT.md to CONDUCT.markdown
---
CONDUCT.md => CONDUCT.markdown | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename CONDUCT.md => CONDUCT.markdown (100%)
diff --git a/CONDUCT.md b/CONDUCT.markdown
similarity index 100%
rename from CONDUCT.md
rename to CONDUCT.markdown
From 183ea08de6ce1d51fff29034fa79526fce37a28c Mon Sep 17 00:00:00 2001
From: toshi
Date: Sun, 31 Jan 2016 00:47:06 +0900
Subject: [PATCH 0386/4996] Add jekyll-toc plugin
---
site/_docs/plugins.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 4bcdd545cbb..050cec0fe40 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -775,6 +775,7 @@ LESS.js files during generation.
- [pluralize](https://github.com/bdesham/pluralize): Easily combine a number and a word into a grammatically-correct amount like “1 minute” or “2 minute**s**”.
- [reading_time](https://github.com/bdesham/reading_time): Count words and estimate reading time for a piece of text, ignoring HTML elements that are unlikely to contain running text.
- [Table of Content Generator](https://github.com/dafi/jekyll-toc-generator): Generate the HTML code containing a table of content (TOC), the TOC can be customized in many way, for example you can decide which pages can be without TOC.
+- [jekyll-toc](https://github.com/toshimaru/jekyll-toc): A liquid filter plugin for Jekyll which generates a table of contents.
- [jekyll-humanize](https://github.com/23maverick23/jekyll-humanize): This is a port of the Django app humanize which adds a "human touch" to data. Each method represents a Fluid type filter that can be used in your Jekyll site templates. Given that Jekyll produces static sites, some of the original methods do not make logical sense to port (e.g. naturaltime).
- [Jekyll-Ordinal](https://github.com/PatrickC8t/Jekyll-Ordinal): Jekyll liquid filter to output a date ordinal such as "st", "nd", "rd", or "th".
- [Deprecated articles keeper](https://github.com/kzykbys/JekyllPlugins) by [Kazuya Kobayashi](http://blog.kazuya.co/): A simple Jekyll filter which monitor how old an article is.
From 4d805e29bc4b1c0df1bf6a44b00331de90643f27 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Sat, 30 Jan 2016 09:42:31 -0600
Subject: [PATCH 0387/4996] Fix #4427: Make our @config hash symbol accessible.
---
.../converters/markdown/kramdown_parser.rb | 44 ++++++++++++++++---
1 file changed, 37 insertions(+), 7 deletions(-)
diff --git a/lib/jekyll/converters/markdown/kramdown_parser.rb b/lib/jekyll/converters/markdown/kramdown_parser.rb
index 05b94337e55..d9c9c222ebe 100644
--- a/lib/jekyll/converters/markdown/kramdown_parser.rb
+++ b/lib/jekyll/converters/markdown/kramdown_parser.rb
@@ -12,7 +12,7 @@ class KramdownParser
"line_number_start" => 1,
"tab_width" => 4,
"wrap" => "div"
- }
+ }.freeze
def initialize(config)
Jekyll::External.require_with_graceful_fail "kramdown"
@@ -32,22 +32,44 @@ def setup
@config["syntax_highlighter_opts"] ||= {}
@config["coderay"] ||= {} # XXX: Legacy.
modernize_coderay_config
+ make_accessible
end
def convert(content)
Kramdown::Document.new(content, @config).to_html
end
+ private
+ def make_accessible(hash = @config)
+ proc_ = proc { |hash_, key| hash_[key.to_s] if key.is_a?(Symbol) }
+ hash.default_proc = proc_
+
+ hash.each do |_, val|
+ make_accessible val if val.is_a?(
+ Hash
+ )
+ end
+ end
+
# config[kramdown][syntax_higlighter] > config[kramdown][enable_coderay] > config[highlighter]
# Where `enable_coderay` is now deprecated because Kramdown
# supports Rouge now too.
private
def highlighter
- @highlighter ||= begin
- if highlighter = @config["syntax_highlighter"] then highlighter
- elsif @config.key?("enable_coderay") && @config["enable_coderay"]
- Jekyll::Deprecator.deprecation_message "You are using 'enable_coderay', use syntax_highlighter: coderay in your configuration file."
+ return @highlighter if @highlighter
+
+ if @config["syntax_highlighter"]
+ return @highlighter = @config[
+ "syntax_highlighter"
+ ]
+ end
+
+ @highlighter = begin
+ if @config.key?("enable_coderay") && @config["enable_coderay"]
+ Jekyll::Deprecator.deprecation_message "You are using 'enable_coderay', " \
+ "use syntax_highlighter: coderay in your configuration file."
+
"coderay"
else
@main_fallback_highlighter
@@ -59,7 +81,13 @@ def highlighter
def strip_coderay_prefix(hash)
hash.each_with_object({}) do |(key, val), hsh|
cleaned_key = key.gsub(/\Acoderay_/, "")
- Jekyll::Deprecator.deprecation_message "You are using '#{key}'. Normalizing to #{cleaned_key}." if key != cleaned_key
+
+ if key != cleaned_key
+ Jekyll::Deprecator.deprecation_message(
+ "You are using '#{key}'. Normalizing to #{cleaned_key}."
+ )
+ end
+
hsh[cleaned_key] = val
end
end
@@ -71,7 +99,9 @@ def strip_coderay_prefix(hash)
private
def modernize_coderay_config
if highlighter == "coderay"
- Jekyll::Deprecator.deprecation_message "You are using 'kramdown.coderay' in your configuration, please use 'syntax_highlighter_opts' instead."
+ Jekyll::Deprecator.deprecation_message "You are using 'kramdown.coderay' in your configuration, " \
+ "please use 'syntax_highlighter_opts' instead."
+
@config["syntax_highlighter_opts"] = begin
strip_coderay_prefix(
@config["syntax_highlighter_opts"] \
From 99aabaaf16e08a4c60a4c2711f0ff928c4ebb894 Mon Sep 17 00:00:00 2001
From: Michael Lee
Date: Mon, 1 Feb 2016 10:22:31 -0500
Subject: [PATCH 0388/4996] Docs: Quickstart - removed alternatively
---
site/_docs/quickstart.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/site/_docs/quickstart.md b/site/_docs/quickstart.md
index 8f5ffe8a96e..8a63cb33508 100644
--- a/site/_docs/quickstart.md
+++ b/site/_docs/quickstart.md
@@ -14,8 +14,7 @@ For the impatient, here's how to get a boilerplate Jekyll site up and running.
# => Now browse to http://localhost:4000
{% endhighlight %}
-If you wish to install jekyll into an existing directory, you can do so by
-alternatively running `jekyll new .` from within the directory instead of creating a new one. If the existing directory isn't empty, you'll also have to pass the `--force` option like so `jekyll new . --force`.
+If you wish to install jekyll into an existing directory, you can do so by running `jekyll new .` from within the directory instead of creating a new one. If the existing directory isn't empty, you'll also have to pass the `--force` option like so `jekyll new . --force`.
That's nothing, though. The real magic happens when you start creating blog
posts, using the front matter to control templates and layouts, and taking
From 1d58938f4bbb898cdff1422a2ef3da7a11d6dff0 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 1 Feb 2016 10:49:44 -0800
Subject: [PATCH 0389/4996] Update history to reflect merge of #4429 [ci skip]
---
History.markdown | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/History.markdown b/History.markdown
index ecbd1794bb2..d928f530e96 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,3 +1,9 @@
+## HEAD
+
+### Site Enhancements
+
+ * Add jekyll-toc plugin (#4429)
+
## 3.1.1 / 2016-01-29
### Meta
From 28148384063db9cfbfbf46568cd8d9edd165e658 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 1 Feb 2016 11:42:21 -0800
Subject: [PATCH 0390/4996] Update history to reflect merge of #4410 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index d928f530e96..e0b87a5f75d 100644
--- a/History.markdown
+++ b/History.markdown
@@ -3,6 +3,7 @@
### Site Enhancements
* Add jekyll-toc plugin (#4429)
+ * Docs: Quickstart - added documentation about the `--force` option (#4410)
## 3.1.1 / 2016-01-29
From 6e76f85b521fb1148d1304cf510ae2e30ae52f2b Mon Sep 17 00:00:00 2001
From: Chris
Date: Mon, 1 Feb 2016 15:44:20 -0600
Subject: [PATCH 0391/4996] fix broken link to CONDUCT.markdown in
README.markdown
---
README.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.markdown b/README.markdown
index 4401ed30c6a..50ec363e2ad 100644
--- a/README.markdown
+++ b/README.markdown
@@ -37,7 +37,7 @@ See: http://jekyllrb.com/docs/troubleshooting/#jekyll-amp-mac-os-x-1011
## Code of Conduct
In order to have a more open and welcoming community, Jekyll adheres to a
-[code of conduct](CONDUCT.md) adapted from the Ruby on Rails code of
+[code of conduct](CONDUCT.markdown) adapted from the Ruby on Rails code of
conduct.
Please adhere to this code of conduct in any interactions you have in the
From e32daaedb46d500fa6ff8df8987dc505c23db6f7 Mon Sep 17 00:00:00 2001
From: Daniel Schildt
Date: Tue, 2 Feb 2016 02:17:48 +0200
Subject: [PATCH 0392/4996] fix(rake) fix broken site generation
- Fix broken site generation caused by renamed CONDUCT.markdown file.
---
rake/site.rake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rake/site.rake b/rake/site.rake
index 2a6f8186478..08ad12b3ac6 100644
--- a/rake/site.rake
+++ b/rake/site.rake
@@ -123,7 +123,7 @@ namespace :site do
desc "Copy the Code of Conduct"
task :conduct do
- code_of_conduct = File.read("CONDUCT.md")
+ code_of_conduct = File.read("CONDUCT.markdown")
header, _, body = code_of_conduct.partition("\n\n")
front_matter = {
"layout" => "docs",
From 8234c01d5819b9a7cba488c0d95d0a92dfb7b0d0 Mon Sep 17 00:00:00 2001
From: Daniel Schildt
Date: Tue, 2 Feb 2016 02:19:50 +0200
Subject: [PATCH 0393/4996] fix(docs) update link to the Code of Conduct
- Update links to use `[Code of Conduct](/docs/conduct/)`
- Fix old URL that was pointing to a missing file in GitHub.
---
site/_posts/2015-10-26-jekyll-3-0-released.markdown | 2 +-
site/_posts/2016-01-28-jekyll-3-1-1-released.markdown | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/site/_posts/2015-10-26-jekyll-3-0-released.markdown b/site/_posts/2015-10-26-jekyll-3-0-released.markdown
index 0d27a458c19..e7cf9db4e8f 100644
--- a/site/_posts/2015-10-26-jekyll-3-0-released.markdown
+++ b/site/_posts/2015-10-26-jekyll-3-0-released.markdown
@@ -22,7 +22,7 @@ The much-anticipated Jekyll 3.0 has been released! Key changes:
- Lots of performance improvements
- ... and lots more!
-We also added a [Code of Conduct]({{ site.repository }}/blob/master/CONDUCT.md) to encourage a happier, nicer community where contributions and discussion is protected from negative behaviour.
+We also added a [Code of Conduct](/docs/conduct/) to encourage a happier, nicer community where contributions and discussion is protected from negative behaviour.
A huge shout-out to the amazing Jekyll Core Team members Jordon Bedwell, Alfred Xing, and Matt Rogers for all their hard work in making Jekyll 3 the best release yet.
diff --git a/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
index 18c693cfca4..b5932b0aefe 100644
--- a/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
+++ b/site/_posts/2016-01-28-jekyll-3-1-1-released.markdown
@@ -15,7 +15,7 @@ even if you wanted one
* We now strip the BOM by default per Ruby's `IO.open`.
* `page.dir` will not always end in a slash.
-We also updated our [Code of Conduct](/conduct/) to the latest version of
+We also updated our [Code of Conduct](/docs/conduct/) to the latest version of
the Contributor Covenant. The update includes language to ensure that the
reporter of the incident remains confidential to non-maintainers and that
all complaints will result in an appropriate response. I care deeply about
From 198103ce7a999ff8ee5060ae6dbc7756ab79a4e1 Mon Sep 17 00:00:00 2001
From: Pat Hawks
Date: Mon, 1 Feb 2016 17:46:31 -0800
Subject: [PATCH 0394/4996] Include .rubocop.yml in Gem
---
jekyll.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jekyll.gemspec b/jekyll.gemspec
index 470781c7834..167e424c4d4 100644
--- a/jekyll.gemspec
+++ b/jekyll.gemspec
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
s.homepage = 'https://github.com/jekyll/jekyll'
all_files = `git ls-files -z`.split("\x0")
- s.files = all_files.grep(%r{^(bin|lib)/})
+ s.files = all_files.grep(%r{^(bin|lib)/|^.rubocop.yml$})
s.executables = all_files.grep(%r{^bin/}) { |f| File.basename(f) }
s.require_paths = ['lib']
From b1b409433c119aec17806c64a8552b4d79170f4b Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 2 Feb 2016 07:41:16 -0800
Subject: [PATCH 0395/4996] Update history to reflect merge of #4436 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index e0b87a5f75d..8564082fc4b 100644
--- a/History.markdown
+++ b/History.markdown
@@ -4,6 +4,7 @@
* Add jekyll-toc plugin (#4429)
* Docs: Quickstart - added documentation about the `--force` option (#4410)
+ * Fix broken links to the Code of Conduct (#4436)
## 3.1.1 / 2016-01-29
From 7ae4973788217deef5af8e1ec6a7504e014568ca Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 2 Feb 2016 07:42:38 -0800
Subject: [PATCH 0396/4996] Update history to reflect merge of #4437 [ci skip]
---
History.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/History.markdown b/History.markdown
index 8564082fc4b..4f5005a5162 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,5 +1,9 @@
## HEAD
+### Minor Enhancements
+
+ * Include .rubocop.yml in Gem (#4437)
+
### Site Enhancements
* Add jekyll-toc plugin (#4429)
From 65a1fc4120bf5b39e0474ac6ac5c3726bd821b60 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Tue, 2 Feb 2016 12:25:50 -0600
Subject: [PATCH 0397/4996] Mispell Rouge intentionally.
---
lib/jekyll/converters/markdown/kramdown_parser.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/converters/markdown/kramdown_parser.rb b/lib/jekyll/converters/markdown/kramdown_parser.rb
index d9c9c222ebe..93605cdd181 100644
--- a/lib/jekyll/converters/markdown/kramdown_parser.rb
+++ b/lib/jekyll/converters/markdown/kramdown_parser.rb
@@ -16,7 +16,7 @@ class KramdownParser
def initialize(config)
Jekyll::External.require_with_graceful_fail "kramdown"
- @main_fallback_highlighter = config["highlighter"] || "rogue"
+ @main_fallback_highlighter = config["highlighter"] || "rouge"
@config = config["kramdown"] || {}
setup
end
From bbefef20cd09c9cd9ab46439ec6a74f70d927dbc Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 2 Feb 2016 14:02:00 -0800
Subject: [PATCH 0398/4996] Update history to reflect merge of #4428 [ci skip]
---
History.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/History.markdown b/History.markdown
index 4f5005a5162..cd9c3c3d0a4 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,5 +1,9 @@
## HEAD
+### Bug Fixes
+
+ * Fix #4427: Make our @config hash symbol accessible. (#4428)
+
### Minor Enhancements
* Include .rubocop.yml in Gem (#4437)
From 5058382d5ad9c7724cae558bfb114859708a2bc2 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Tue, 2 Feb 2016 14:43:45 -0800
Subject: [PATCH 0399/4996] LiquidRenderer#parse: parse with line numbers.
---
lib/jekyll/liquid_renderer/file.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/liquid_renderer/file.rb b/lib/jekyll/liquid_renderer/file.rb
index f91a5a2c625..7dcca1b62a1 100644
--- a/lib/jekyll/liquid_renderer/file.rb
+++ b/lib/jekyll/liquid_renderer/file.rb
@@ -8,7 +8,7 @@ def initialize(renderer, filename)
def parse(content)
measure_time do
- @template = Liquid::Template.parse(content)
+ @template = Liquid::Template.parse(content, line_numbers: true)
end
self
From 7886fdb166786e2fe63cf3cd9fd72c0c6dd4b485 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 2 Feb 2016 15:19:08 -0800
Subject: [PATCH 0400/4996] Update history to reflect merge of #4452 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index cd9c3c3d0a4..6f0ea19ec2b 100644
--- a/History.markdown
+++ b/History.markdown
@@ -7,6 +7,7 @@
### Minor Enhancements
* Include .rubocop.yml in Gem (#4437)
+ * LiquidRenderer#parse: parse with line numbers. (#4452)
### Site Enhancements
From 75b55ff4f26ee04f9b664ba354804d6b40685e6b Mon Sep 17 00:00:00 2001
From: Dean Attali
Date: Tue, 2 Feb 2016 16:16:12 -0800
Subject: [PATCH 0401/4996] upgrade notes: mention trailing slash in permalink;
fixes #4440
---
site/_docs/upgrading/2-to-3.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index d3ff4a38781..dbbda9a9e3f 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -99,4 +99,9 @@ This can be fixed by removing the following line from your `_config.yml` file:
relative_permalinks: true
{% endhighlight %}
+### Permalinks no longer automatically add a trailing slash
+
+In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash). In Jekyll 3, the URL for the same page is `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
+
+
_Did we miss something? Please click "Improve this page" above and add a section. Thanks!_
From 7df8f502487f3b6476b5ce0f296be28f70df59cb Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Tue, 2 Feb 2016 16:59:25 -0800
Subject: [PATCH 0402/4996] Update history to reflect merge of #4455 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6f0ea19ec2b..665982a8219 100644
--- a/History.markdown
+++ b/History.markdown
@@ -14,6 +14,7 @@
* Add jekyll-toc plugin (#4429)
* Docs: Quickstart - added documentation about the `--force` option (#4410)
* Fix broken links to the Code of Conduct (#4436)
+ * upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
## 3.1.1 / 2016-01-29
From 49e3180607a7bcb71c4c752d3b8454efd2b3d44c Mon Sep 17 00:00:00 2001
From: Robert Martin
Date: Tue, 2 Feb 2016 23:31:21 -0500
Subject: [PATCH 0403/4996] Update structure.md
---
site/_docs/structure.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/structure.md b/site/_docs/structure.md
index eb6a0892784..f571aea8deb 100644
--- a/site/_docs/structure.md
+++ b/site/_docs/structure.md
@@ -132,7 +132,7 @@ An overview of what each of these does:
- Well-formatted site data should be placed here. The jekyll engine
+ Well-formatted site data should be placed here. The Jekyll engine
will autoload all YAML files in this directory (using either the
.yml, .yaml, .json or
.csv formats and extensions) and they will be
From 53bb262fed1d397683c3ee49d6a77013e2edf905 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Garc=C3=A9s?=
Date: Wed, 3 Feb 2016 11:42:18 +0100
Subject: [PATCH 0404/4996] Added details about permalinks problem
Small description about how Jekyll generated the files based on a permalink
---
site/_docs/upgrading/2-to-3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index dbbda9a9e3f..9b9cedc4dd9 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -101,7 +101,7 @@ relative_permalinks: true
### Permalinks no longer automatically add a trailing slash
-In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash). In Jekyll 3, the URL for the same page is `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
+In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internaly generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
_Did we miss something? Please click "Improve this page" above and add a section. Thanks!_
From b4deb79392322ab1249dbdfd7cb6f3fc76c79239 Mon Sep 17 00:00:00 2001
From: Mitesh Shah
Date: Wed, 3 Feb 2016 17:01:01 +0530
Subject: [PATCH 0405/4996] [add note] Jekyll 3 requires newer ver. of Ruby.
Adding a note that Jekyll 3 requires Ruby version >= 2.0.0.
---
site/_docs/upgrading/2-to-3.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index dbbda9a9e3f..86cd910c499 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -13,6 +13,8 @@ Before we dive in, go ahead and fetch the latest version of Jekyll:
$ gem update jekyll
{% endhighlight %}
+Please note: Jekyll 3 requires Ruby version >= 2.0.0.
+
Diving in
Want to get a new Jekyll site up and running quickly? Simply
From aa284d90ccafc100082af4c5812966d87c9a3ee7 Mon Sep 17 00:00:00 2001
From: Nicolas Hoizey
Date: Wed, 3 Feb 2016 16:39:20 +0100
Subject: [PATCH 0406/4996] Add hooks to the plugin categories toc
---
site/_docs/plugins.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 050cec0fe40..e7823465447 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -60,12 +60,13 @@ values of the gem names of the plugins you'd like to use. An example:
-In general, plugins you make will fall into one of four categories:
+In general, plugins you make will fall into one of five categories:
1. [Generators](#generators)
2. [Converters](#converters)
3. [Commands](#commands)
4. [Tags](#tags)
+5. [Hooks](#hooks)
## Generators
From d18769aff0fae47da54ce548de270b8593d23921 Mon Sep 17 00:00:00 2001
From: chrisfinazzo
Date: Wed, 3 Feb 2016 11:31:07 -0500
Subject: [PATCH 0407/4996] Remove old flag which breaks htmlproof
---
script/proof | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/script/proof b/script/proof
index c8fff90819b..01da501651e 100755
--- a/script/proof
+++ b/script/proof
@@ -27,7 +27,7 @@ bundle install -j8 > /dev/null || bundle install > /dev/null
# 2.
msg "Building..."
-bundle exec jekyll build -s $SOURCE -d $DESTINATION --full-rebuild --trace
+bundle exec jekyll build -s $SOURCE -d $DESTINATION --trace
# 3.
msg "Proofing..."
From 53c1107eaa3ffa6f576b8dcdade543f0b6fa436d Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 3 Feb 2016 09:37:12 -0800
Subject: [PATCH 0408/4996] Update history to reflect merge of #4463 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 665982a8219..40ba3406e5a 100644
--- a/History.markdown
+++ b/History.markdown
@@ -15,6 +15,7 @@
* Docs: Quickstart - added documentation about the `--force` option (#4410)
* Fix broken links to the Code of Conduct (#4436)
* upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
+ * Add hooks to the plugin categories toc (#4463)
## 3.1.1 / 2016-01-29
From 1671c989755c3eb414de4acc6719276fc0e19d01 Mon Sep 17 00:00:00 2001
From: chrisfinazzo
Date: Wed, 3 Feb 2016 12:45:18 -0500
Subject: [PATCH 0409/4996] Remove broken link
---
site/_docs/plugins.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 050cec0fe40..5e34b488e99 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -838,7 +838,6 @@ LESS.js files during generation.
- [inline\_highlight](https://github.com/bdesham/inline_highlight): A tag for inline syntax highlighting.
- [jekyll-mermaid](https://github.com/jasonbellamy/jekyll-mermaid): Simplify the creation of mermaid diagrams and flowcharts in your posts and pages.
- [twa](https://github.com/Ezmyrelda/twa): Twemoji Awesome plugin for Jekyll. Liquid tag allowing you to use twitter emoji in your jekyll pages.
-- [jekyll-files](https://github.com/x43x61x69/jekyll-files) by [Zhi-Wei Cai](http://vox.vg/): Output relative path strings and other info regarding specific assets.
- [Fetch remote file content](https://github.com/dimitri-koenig/jekyll-plugins) by [Dimitri König](https://www.dimitrikoenig.net/): Using `remote_file_content` tag you can fetch the content of a remote file and include it as if you would put the content right into your markdown file yourself. Very useful for including code from github repo's to always have a current repo version.
- [jekyll-asciinema](https://github.com/mnuessler/jekyll-asciinema): A tag for embedding asciicasts recorded with [asciinema](https://asciinema.org) in your Jekyll pages.
- [Jekyll-Youtube](https://github.com/dommmel/jekyll-youtube) A Liquid tag that embeds Youtube videos. The default emded markup is responsive but you can also specify your own by using an include/partial.
From d47ae6ce9511f9274d5a4f1534c68eddcad18bcf Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 3 Feb 2016 19:57:37 -0800
Subject: [PATCH 0410/4996] Update history to reflect merge of #4461 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 40ba3406e5a..850be8de2c5 100644
--- a/History.markdown
+++ b/History.markdown
@@ -16,6 +16,7 @@
* Fix broken links to the Code of Conduct (#4436)
* upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
* Add hooks to the plugin categories toc (#4463)
+ * [add note] Jekyll 3 requires newer version of Ruby. (#4461)
## 3.1.1 / 2016-01-29
From 71e04760c94d0988d4a895d6898d437f8d1d20b1 Mon Sep 17 00:00:00 2001
From: Manabu Sakai
Date: Fri, 5 Feb 2016 16:11:16 +0900
Subject: [PATCH 0411/4996] Fix typo
---
site/_docs/upgrading/2-to-3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index 4a2c638f8c6..8a29ae086ac 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -67,7 +67,7 @@ generate when running `jekyll build` or `jekyll serve`.
### Layout metadata
-Introducing: `layout`. In Jekyll 2 and below, any metadata in the layout was munged onto
+Introducing: `layout`. In Jekyll 2 and below, any metadata in the layout was merged onto
the `page` variable in Liquid. This caused a lot of confusion in the way the data was
merged and some unexpected behaviour. In Jekyll 3, all layout data is accessible via `layout`
in Liquid. For example, if your layout has `class: my-layout` in its YAML front matter,
From ac463bb397d4d2eaf4169bf925b76f4e4815d98a Mon Sep 17 00:00:00 2001
From: Alfred Xing
Date: Fri, 5 Feb 2016 09:22:42 -0800
Subject: [PATCH 0412/4996] Update history to reflect merge of #4473
[ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 850be8de2c5..ca9cc4c2e19 100644
--- a/History.markdown
+++ b/History.markdown
@@ -17,6 +17,7 @@
* upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
* Add hooks to the plugin categories toc (#4463)
* [add note] Jekyll 3 requires newer version of Ruby. (#4461)
+ * Fix typo in upgrading docs (#4473)
## 3.1.1 / 2016-01-29
From fd121e2a5e060ed35c245a97ec8255988bd7c09d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 6 Feb 2016 19:04:47 -0800
Subject: [PATCH 0413/4996] Add note about upgrading documentation on
jekyllrb.com/help/
---
site/help/index.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/site/help/index.md b/site/help/index.md
index 5ce0846c71d..ba15959974e 100644
--- a/site/help/index.md
+++ b/site/help/index.md
@@ -5,6 +5,11 @@ title: Getting Help
Need help with Jekyll? Try these resources.
+### [Upgrading Documentation](/docs/upgrading/)
+
+Did you recently upgrade from Jekyll 1 to 2 or from Jekyll 2 to 3?
+Known breaking changes are listed in the upgrading docs.
+
### [Google](https://google.com)
Add **jekyll** to almost any query, and you'll find just what you need.
From 9366a90d385d0fe779ce9d3d951a026c5fd135ae Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 6 Feb 2016 19:05:13 -0800
Subject: [PATCH 0414/4996] Update history to reflect merge of #4484 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index ca9cc4c2e19..122901cf010 100644
--- a/History.markdown
+++ b/History.markdown
@@ -18,6 +18,7 @@
* Add hooks to the plugin categories toc (#4463)
* [add note] Jekyll 3 requires newer version of Ruby. (#4461)
* Fix typo in upgrading docs (#4473)
+ * Add note about upgrading documentation on jekyllrb.com/help/ (#4484)
## 3.1.1 / 2016-01-29
From 38bc4f55e4b926f05d92ff589d8681414da84da3 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 6 Feb 2016 19:17:35 -0800
Subject: [PATCH 0415/4996] Add note about dates without timezones
---
site/_docs/upgrading/2-to-3.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index 8a29ae086ac..d4b105c9b99 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -105,5 +105,22 @@ relative_permalinks: true
In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internaly generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
+### All my posts are gone! Where'd they go!
+
+Try adding `future: true` to your `_config.yml` file. Are they showing up now? If they are, then you were ensnared by an issue with the way Ruby parses times. Each of your posts is being read in a different timezone than you might expect and, when compared to the computer's current time, is "in the future." The fix for this is to add [a timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets) to each post (and make sure you emove `future: true` from your `_config.yml` file). If you're writing from California, for example, you would change this:
+
+```yaml
+---
+date: 2016-02-06 19:32:10
+---
+```
+
+to this (note the offset):
+
+```yaml
+---
+date: 2016-02-06 19:32:10 -0800
+---
+```
_Did we miss something? Please click "Improve this page" above and add a section. Thanks!_
From b0797c30353f6bdfaf1d76ee0436a8f5faaac2cb Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 6 Feb 2016 19:18:30 -0800
Subject: [PATCH 0416/4996] Fix typo in upgrading docs
---
site/_docs/upgrading/2-to-3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index d4b105c9b99..058152fcefa 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -107,7 +107,7 @@ In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slas
### All my posts are gone! Where'd they go!
-Try adding `future: true` to your `_config.yml` file. Are they showing up now? If they are, then you were ensnared by an issue with the way Ruby parses times. Each of your posts is being read in a different timezone than you might expect and, when compared to the computer's current time, is "in the future." The fix for this is to add [a timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets) to each post (and make sure you emove `future: true` from your `_config.yml` file). If you're writing from California, for example, you would change this:
+Try adding `future: true` to your `_config.yml` file. Are they showing up now? If they are, then you were ensnared by an issue with the way Ruby parses times. Each of your posts is being read in a different timezone than you might expect and, when compared to the computer's current time, is "in the future." The fix for this is to add [a timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets) to each post (and make sure you remove `future: true` from your `_config.yml` file). If you're writing from California, for example, you would change this:
```yaml
---
From 2d0c572d2934ef7924734444a23d449006bba64e Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sat, 6 Feb 2016 19:21:11 -0800
Subject: [PATCH 0417/4996] use the highlight tag for upgrading docs code block
---
site/_docs/upgrading/2-to-3.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index 058152fcefa..33d9c364d88 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -103,24 +103,24 @@ relative_permalinks: true
### Permalinks no longer automatically add a trailing slash
-In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internaly generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
+In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internaly generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
### All my posts are gone! Where'd they go!
Try adding `future: true` to your `_config.yml` file. Are they showing up now? If they are, then you were ensnared by an issue with the way Ruby parses times. Each of your posts is being read in a different timezone than you might expect and, when compared to the computer's current time, is "in the future." The fix for this is to add [a timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets) to each post (and make sure you remove `future: true` from your `_config.yml` file). If you're writing from California, for example, you would change this:
-```yaml
+{% highlight yaml %}
---
date: 2016-02-06 19:32:10
---
-```
+{% endhighlight %}
to this (note the offset):
-```yaml
+{% highlight yaml %}
---
date: 2016-02-06 19:32:10 -0800
---
-```
+{% endhighlight %}
_Did we miss something? Please click "Improve this page" above and add a section. Thanks!_
From 3950408e393989610a85abaf4f31b7bd62903659 Mon Sep 17 00:00:00 2001
From: Prayag Verma
Date: Sun, 7 Feb 2016 13:18:19 +0530
Subject: [PATCH 0418/4996] Fix a typo
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Found a spelling mistake -
`internaly` → `internally`
---
site/_docs/upgrading/2-to-3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/upgrading/2-to-3.md b/site/_docs/upgrading/2-to-3.md
index 33d9c364d88..330228de706 100644
--- a/site/_docs/upgrading/2-to-3.md
+++ b/site/_docs/upgrading/2-to-3.md
@@ -103,7 +103,7 @@ relative_permalinks: true
### Permalinks no longer automatically add a trailing slash
-In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internaly generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
+In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slash (`/`) added to it automatically. Jekyll 3 no longer adds a trailing slash automatically to `permalink:` URLs. This can potentially result in old links to pages returning a 404 error. For example, suppose a page previously contained the YAML `permalink: /:year-:month-:day-:title` that resulted in the URL `example.com/2016-02-01-test/` (notice the trailing slash), Jekyll internally generates a folder named `2016-02-01-test`. In Jekyll 3, the same `permalink:` generate the file `2016-02-01-test.html` and the URL for the same page will be `example.com/2016-02-01-test`, and consequently any links to the old URL will result in a 404 error. In order to maintain the same URLs and avoid this problem, a trailing slash should be added to the `permalink:` field, for example `permalink: /:year-:month-:day-:title/`.
### All my posts are gone! Where'd they go!
From 3373eb65257789b62b5eafcb4512c37c7151a6ed Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 7 Feb 2016 17:28:03 -0800
Subject: [PATCH 0419/4996] EntryFilter#special?: ignore filenames which begin
with '~'
---
lib/jekyll/entry_filter.rb | 2 +-
test/test_entry_filter.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/jekyll/entry_filter.rb b/lib/jekyll/entry_filter.rb
index 6d42c067c55..48509f9deb5 100644
--- a/lib/jekyll/entry_filter.rb
+++ b/lib/jekyll/entry_filter.rb
@@ -1,6 +1,6 @@
module Jekyll
class EntryFilter
- SPECIAL_LEADING_CHARACTERS = ['.', '_', '#'].freeze
+ SPECIAL_LEADING_CHARACTERS = ['.', '_', '#', '~'].freeze
attr_reader :site
diff --git a/test/test_entry_filter.rb b/test/test_entry_filter.rb
index c0ce59b38ce..546f025272b 100644
--- a/test/test_entry_filter.rb
+++ b/test/test_entry_filter.rb
@@ -8,7 +8,7 @@ class TestEntryFilter < JekyllUnitTest
should "filter entries" do
ent1 = %w[foo.markdown bar.markdown baz.markdown #baz.markdown#
- .baz.markdow foo.markdown~ .htaccess _posts _pages]
+ .baz.markdow foo.markdown~ .htaccess _posts _pages ~$benbalter.docx]
entries = EntryFilter.new(@site).filter(ent1)
assert_equal %w[foo.markdown bar.markdown baz.markdown .htaccess], entries
From 246e65914ffef6affb7b699de6fcd496168c332e Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 7 Feb 2016 17:52:15 -0800
Subject: [PATCH 0420/4996] Jekyll.sanitized_path: sanitizing a questionable
path should handle tildes
---
lib/jekyll.rb | 3 ++-
test/test_path_sanitization.rb | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll.rb b/lib/jekyll.rb
index 8b92a045f61..6896bb0b8c8 100644
--- a/lib/jekyll.rb
+++ b/lib/jekyll.rb
@@ -153,8 +153,9 @@ def sites
def sanitized_path(base_directory, questionable_path)
return base_directory if base_directory.eql?(questionable_path)
+ questionable_path.insert(0, '/') if questionable_path.start_with?('~')
clean_path = File.expand_path(questionable_path, "/")
- clean_path = clean_path.sub(/\A\w\:\//, '/')
+ clean_path.sub!(/\A\w\:\//, '/')
if clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/'))
clean_path
diff --git a/test/test_path_sanitization.rb b/test/test_path_sanitization.rb
index b04a2badd37..148103eacbd 100644
--- a/test/test_path_sanitization.rb
+++ b/test/test_path_sanitization.rb
@@ -15,4 +15,13 @@ class TestPathSanitization < JekyllUnitTest
assert_equal "/tmp/foobar/jail/..c:/..c:/..c:/etc/passwd", Jekyll.sanitized_path("/tmp/foobar/jail", "..c:/..c:/..c:/etc/passwd")
end
end
+
+ should "escape tilde" do
+ assert_equal source_dir("~hi.txt"), Jekyll.sanitized_path(source_dir, "~hi.txt")
+ assert_equal source_dir("files", "~hi.txt"), Jekyll.sanitized_path(source_dir, "files/../files/~hi.txt")
+ end
+
+ should "remove path traversals" do
+ assert_equal source_dir("files", "hi.txt"), Jekyll.sanitized_path(source_dir, "f./../../../../../../files/hi.txt")
+ end
end
From 0e89a37eaf7a426181b489fe0325081f4b7cda66 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 7 Feb 2016 17:53:09 -0800
Subject: [PATCH 0421/4996] Revert "Jekyll.sanitized_path: sanitizing a
questionable path should handle tildes"
This reverts commit 246e65914ffef6affb7b699de6fcd496168c332e.
---
lib/jekyll.rb | 3 +--
test/test_path_sanitization.rb | 9 ---------
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/lib/jekyll.rb b/lib/jekyll.rb
index 6896bb0b8c8..8b92a045f61 100644
--- a/lib/jekyll.rb
+++ b/lib/jekyll.rb
@@ -153,9 +153,8 @@ def sites
def sanitized_path(base_directory, questionable_path)
return base_directory if base_directory.eql?(questionable_path)
- questionable_path.insert(0, '/') if questionable_path.start_with?('~')
clean_path = File.expand_path(questionable_path, "/")
- clean_path.sub!(/\A\w\:\//, '/')
+ clean_path = clean_path.sub(/\A\w\:\//, '/')
if clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/'))
clean_path
diff --git a/test/test_path_sanitization.rb b/test/test_path_sanitization.rb
index 148103eacbd..b04a2badd37 100644
--- a/test/test_path_sanitization.rb
+++ b/test/test_path_sanitization.rb
@@ -15,13 +15,4 @@ class TestPathSanitization < JekyllUnitTest
assert_equal "/tmp/foobar/jail/..c:/..c:/..c:/etc/passwd", Jekyll.sanitized_path("/tmp/foobar/jail", "..c:/..c:/..c:/etc/passwd")
end
end
-
- should "escape tilde" do
- assert_equal source_dir("~hi.txt"), Jekyll.sanitized_path(source_dir, "~hi.txt")
- assert_equal source_dir("files", "~hi.txt"), Jekyll.sanitized_path(source_dir, "files/../files/~hi.txt")
- end
-
- should "remove path traversals" do
- assert_equal source_dir("files", "hi.txt"), Jekyll.sanitized_path(source_dir, "f./../../../../../../files/hi.txt")
- end
end
From a040af37c08c6bf3fa0b29f98bde4eb58354eab1 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Sun, 7 Feb 2016 17:52:15 -0800
Subject: [PATCH 0422/4996] Jekyll.sanitized_path: sanitizing a questionable
path should handle tildes
---
lib/jekyll.rb | 3 ++-
test/test_path_sanitization.rb | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll.rb b/lib/jekyll.rb
index 8b92a045f61..6896bb0b8c8 100644
--- a/lib/jekyll.rb
+++ b/lib/jekyll.rb
@@ -153,8 +153,9 @@ def sites
def sanitized_path(base_directory, questionable_path)
return base_directory if base_directory.eql?(questionable_path)
+ questionable_path.insert(0, '/') if questionable_path.start_with?('~')
clean_path = File.expand_path(questionable_path, "/")
- clean_path = clean_path.sub(/\A\w\:\//, '/')
+ clean_path.sub!(/\A\w\:\//, '/')
if clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/'))
clean_path
diff --git a/test/test_path_sanitization.rb b/test/test_path_sanitization.rb
index b04a2badd37..148103eacbd 100644
--- a/test/test_path_sanitization.rb
+++ b/test/test_path_sanitization.rb
@@ -15,4 +15,13 @@ class TestPathSanitization < JekyllUnitTest
assert_equal "/tmp/foobar/jail/..c:/..c:/..c:/etc/passwd", Jekyll.sanitized_path("/tmp/foobar/jail", "..c:/..c:/..c:/etc/passwd")
end
end
+
+ should "escape tilde" do
+ assert_equal source_dir("~hi.txt"), Jekyll.sanitized_path(source_dir, "~hi.txt")
+ assert_equal source_dir("files", "~hi.txt"), Jekyll.sanitized_path(source_dir, "files/../files/~hi.txt")
+ end
+
+ should "remove path traversals" do
+ assert_equal source_dir("files", "hi.txt"), Jekyll.sanitized_path(source_dir, "f./../../../../../../files/hi.txt")
+ end
end
From db241c4f91727d65f2f4608c57fa5005758f7241 Mon Sep 17 00:00:00 2001
From: Katya Demidova
Date: Mon, 8 Feb 2016 14:05:50 +0300
Subject: [PATCH 0423/4996] Update Rake link
The https://github.com/jimweirich/rake/ repository is retired, so I've changed the link to https://github.com/ruby/rake
---
site/_docs/deployment-methods.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/deployment-methods.md b/site/_docs/deployment-methods.md
index ad4ea93c283..7e77ce16733 100644
--- a/site/_docs/deployment-methods.md
+++ b/site/_docs/deployment-methods.md
@@ -90,7 +90,7 @@ Setup steps are fully documented
### Rake
-Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimweirich/rake), [HighLine](https://github.com/JEG2/highline), and
+Another way to deploy your Jekyll site is to use [Rake](https://github.com/ruby/rake), [HighLine](https://github.com/JEG2/highline), and
[Net::SSH](https://github.com/net-ssh/net-ssh). A more complex example of deploying Jekyll with Rake that deals with multiple branches can be found in [Git Ready](https://github.com/gitready/gitready/blob/cdfbc4ec5321ff8d18c3ce936e9c749dbbc4f190/Rakefile).
From b237b1f93cd8a16119d2abfc5f35bd2a2b144d0c Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 8 Feb 2016 10:28:00 -0800
Subject: [PATCH 0424/4996] Update history to reflect merge of #4496 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 122901cf010..6ffe198db46 100644
--- a/History.markdown
+++ b/History.markdown
@@ -19,6 +19,7 @@
* [add note] Jekyll 3 requires newer version of Ruby. (#4461)
* Fix typo in upgrading docs (#4473)
* Add note about upgrading documentation on jekyllrb.com/help/ (#4484)
+ * Update Rake link (#4496)
## 3.1.1 / 2016-01-29
From adadc2eeab8433f4de28c1568de779cc90b2d28a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 8 Feb 2016 10:52:15 -0800
Subject: [PATCH 0425/4996] Update history to reflect merge of #4374 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 6ffe198db46..9dc835f860c 100644
--- a/History.markdown
+++ b/History.markdown
@@ -20,6 +20,7 @@
* Fix typo in upgrading docs (#4473)
* Add note about upgrading documentation on jekyllrb.com/help/ (#4484)
* Update Rake link (#4496)
+ * Update & prune the short list of example sites (#4374)
## 3.1.1 / 2016-01-29
From f57899fdb86f86074bbb688e09643cd8d83e67a2 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 8 Feb 2016 10:52:54 -0800
Subject: [PATCH 0426/4996] Update history to reflect merge of #4492 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 9dc835f860c..170d6dab201 100644
--- a/History.markdown
+++ b/History.markdown
@@ -3,6 +3,7 @@
### Bug Fixes
* Fix #4427: Make our @config hash symbol accessible. (#4428)
+ * Jekyll.sanitized_path: sanitizing a questionable path should handle tildes (#4492)
### Minor Enhancements
From 2e5e6ace3d7913dbf467afe8358c956da3b52f89 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 8 Feb 2016 10:59:24 -0800
Subject: [PATCH 0427/4996] Fix emoji support on the site.
Seems to work for us, despite https://github.com/jekyll/jemoji/issues/32 ?
---
Gemfile | 1 +
site/_config.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/Gemfile b/Gemfile
index f63529e885a..cd21a668f76 100644
--- a/Gemfile
+++ b/Gemfile
@@ -79,4 +79,5 @@ group :site do
if ENV["PROOF"]
gem "html-proofer", "~> 2.0"
end
+ gem "jemoji"
end
diff --git a/site/_config.yml b/site/_config.yml
index c065f9f7015..241c5b01762 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -22,3 +22,4 @@ url: http://jekyllrb.com
gems:
- jekyll-feed
- jekyll-redirect-from
+ - jemoji
From 05d99a9c96eeebdab8e7c3c360e745dad925e69d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 8 Feb 2016 10:47:22 -0800
Subject: [PATCH 0428/4996] Release v3.0.3
---
History.markdown | 12 ++++++-
site/_docs/history.md | 13 ++++++++
.../2016-02-08-jekyll-3-0-3-released.markdown | 31 +++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
create mode 100644 site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
diff --git a/History.markdown b/History.markdown
index 170d6dab201..adbfb765657 100644
--- a/History.markdown
+++ b/History.markdown
@@ -3,7 +3,7 @@
### Bug Fixes
* Fix #4427: Make our @config hash symbol accessible. (#4428)
- * Jekyll.sanitized_path: sanitizing a questionable path should handle tildes (#4492)
+ * `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes (#4492)
### Minor Enhancements
@@ -135,6 +135,16 @@
* Add Contentful Extension to list of third-party plugins (#4390)
* Correct Minor spelling error (#4394)
+## 3.0.3 / 2016-02-08
+
+### Bug Fixes
+
+* Fix extension weirdness with folders (#4493)
+* EntryFilter: only include 'excluded' log on excluded files (#4479)
+* `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path (#4468)
+* `LiquidRenderer#parse`: parse with line numbers (#4453)
+* `Document#<=>`: protect against nil comparison in dates. (#4446)
+
## 3.0.2 / 2016-01-20
### Bug Fixes
diff --git a/site/_docs/history.md b/site/_docs/history.md
index 7943203b12b..6514e2c40f0 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -126,6 +126,19 @@ permalink: "/docs/history/"
- Correct Minor spelling error ([#4394]({{ site.repository }}/issues/4394))
+## 3.0.3 / 2016-02-08
+{: #v3-0-3}
+
+### Bug Fixes
+{: #bug-fixes-v3-0-3}
+
+* Fix extension weirdness with folders ([#4493]({{ site.repository }}/issues/4493))
+* EntryFilter: only include 'excluded' log on excluded files ([#4479]({{ site.repository }}/issues/4479))
+* `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path ([#4468]({{ site.repository }}/issues/4468))
+* `LiquidRenderer#parse`: parse with line numbers ([#4453]({{ site.repository }}/issues/4453))
+* `Document#<=>`: protect against nil comparison in dates. ([#4446]({{ site.repository }}/issues/4446))
+
+
## 3.0.2 / 2016-01-20
{: #v3-0-2}
diff --git a/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
new file mode 100644
index 00000000000..f648cb28a7a
--- /dev/null
+++ b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
@@ -0,0 +1,31 @@
+---
+layout: news_item
+title: 'Jekyll 3.0.3 Released'
+date: 2016-02-08 10:39:08 -0800
+author:
+version: 3.0.3
+categories: [release]
+---
+
+[GitHub Pages upgraded to Jekyll 3.0.2][1] last week and there has been a
+joyous reception so far! This release is to address some bugs that affected
+some users during the cut-over. The fixes include:
+
+* Fix problem where outputting to a folder would have two extensions
+* Handle tildes (`~`) in filenames properly
+* Fix issue when comparing documents without dates
+* Include line numbers in liquid error output
+
+Read more on the [changelog](/docs/history/#v3-0-3) with links to the
+related patches.
+
+Please keep [submitting bugs][2] as you find them! Please do take a look
+[in our various help resources](/help/) before filing a bug and use [our
+forum][3] for asking questions and getting help on a specific problem
+you're having.
+
+Happy Jekylling!
+
+[1]: https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
+[2]: {{ site.repository }}/issues
+[3]: https://talk.jekyllrb.com/
From b8f5b9f63e6e8a8d9c8a5e4c7809acf5374ceb28 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 8 Feb 2016 11:00:30 -0800
Subject: [PATCH 0429/4996] By me!
---
site/_posts/2016-02-08-jekyll-3-0-3-released.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
index f648cb28a7a..a3dd93c97dc 100644
--- a/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
+++ b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
@@ -2,7 +2,7 @@
layout: news_item
title: 'Jekyll 3.0.3 Released'
date: 2016-02-08 10:39:08 -0800
-author:
+author: parkr
version: 3.0.3
categories: [release]
---
From 29a5a3c303c64abf90100cb6928c096c1cf8dc63 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 8 Feb 2016 11:09:42 -0800
Subject: [PATCH 0430/4996] site: A bit better wording on the 3.0.3 release
post
:tophat: tip to @benbalter for his generous and kind thoughts on my writing.
---
site/_posts/2016-02-08-jekyll-3-0-3-released.markdown | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
index a3dd93c97dc..0c260cc696b 100644
--- a/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
+++ b/site/_posts/2016-02-08-jekyll-3-0-3-released.markdown
@@ -7,9 +7,10 @@ version: 3.0.3
categories: [release]
---
-[GitHub Pages upgraded to Jekyll 3.0.2][1] last week and there has been a
-joyous reception so far! This release is to address some bugs that affected
-some users during the cut-over. The fixes include:
+[GitHub Pages upgraded to Jekyll 3.0.2][1] last week. With a testbed of
+over a million sites, this really put Jekyll 3 through the wringer. This
+release addresses a handful of bugs that were surfaced as a result. The
+fixes:
* Fix problem where outputting to a folder would have two extensions
* Handle tildes (`~`) in filenames properly
From fd0e99ceac011c471a4845398c01d7edeb2883ac Mon Sep 17 00:00:00 2001
From: Cash Costello
Date: Mon, 8 Feb 2016 21:08:48 -0500
Subject: [PATCH 0431/4996] fixes parenthesis typo in configuration docs
---
site/_docs/configuration.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md
index 4e78ab7ad9c..7a602b19e94 100644
--- a/site/_docs/configuration.md
+++ b/site/_docs/configuration.md
@@ -120,7 +120,7 @@ class="flag">flags (specified on the command-line) that control them.
Encoding
- Set the encoding of files by name. Only available for Ruby
+ Set the encoding of files by name (only available for Ruby
1.9 or later).
The default value is utf-8 starting in 2.0.0,
and nil before 2.0.0, which will yield the Ruby
From e19110954960ae127bf5a4e61807bc6683ae90f4 Mon Sep 17 00:00:00 2001
From: lonnen
Date: Tue, 9 Feb 2016 23:46:45 -0800
Subject: [PATCH 0432/4996] add consistency to the deprecation message
---
lib/jekyll/deprecator.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/jekyll/deprecator.rb b/lib/jekyll/deprecator.rb
index d4ea3c882c2..21449400b28 100644
--- a/lib/jekyll/deprecator.rb
+++ b/lib/jekyll/deprecator.rb
@@ -22,7 +22,7 @@ def process(args)
def no_subcommand(args)
if args.size > 0 && args.first =~ /^--/ && !%w(--help --version).include?(args.first)
- deprecation_message "Jekyll now uses subcommands instead of just switches. Run `jekyll --help` to find out more."
+ deprecation_message "Jekyll now uses subcommands instead of just switches. Run `jekyll help` to find out more."
abort
end
end
From 99b9c8486cb5fe1984a7a5979422d292aeb366c8 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Wed, 10 Feb 2016 15:26:54 -0800
Subject: [PATCH 0433/4996] Update history to reflect merge of #4505 [ci skip]
---
History.markdown | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/History.markdown b/History.markdown
index adbfb765657..36dc54b6f92 100644
--- a/History.markdown
+++ b/History.markdown
@@ -9,6 +9,7 @@
* Include .rubocop.yml in Gem (#4437)
* LiquidRenderer#parse: parse with line numbers. (#4452)
+ * add consistency to the deprecation message (#4505)
### Site Enhancements
@@ -139,11 +140,11 @@
### Bug Fixes
-* Fix extension weirdness with folders (#4493)
-* EntryFilter: only include 'excluded' log on excluded files (#4479)
-* `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path (#4468)
-* `LiquidRenderer#parse`: parse with line numbers (#4453)
-* `Document#<=>`: protect against nil comparison in dates. (#4446)
+ * Fix extension weirdness with folders (#4493)
+ * EntryFilter: only include 'excluded' log on excluded files (#4479)
+ * `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path (#4468)
+ * `LiquidRenderer#parse`: parse with line numbers (#4453)
+ * `Document#<=>`: protect against nil comparison in dates. (#4446)
## 3.0.2 / 2016-01-20
From 769331d8c24661fd7535752fc70ea45c2dae2917 Mon Sep 17 00:00:00 2001
From: chrisfinazzo
Date: Thu, 11 Feb 2016 22:12:02 -0500
Subject: [PATCH 0434/4996] A few grammar fixes
---
site/_docs/configuration.md | 3 ++-
site/_docs/pages.md | 2 +-
site/_docs/posts.md | 10 +++++-----
site/_docs/windows.md | 8 ++++----
4 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md
index 7a602b19e94..57044184121 100644
--- a/site/_docs/configuration.md
+++ b/site/_docs/configuration.md
@@ -500,7 +500,8 @@ defaults:
layout: "default"
{% endhighlight %}
-In this example the `layout` is set to `default` inside the [collection](../collections/) with the name `my_collection`.
+In this example, the `layout` is set to `default` inside the
+[collection](../collections/) with the name `my_collection`.
### Precedence
diff --git a/site/_docs/pages.md b/site/_docs/pages.md
index 59b827e2013..32f7f9b85af 100644
--- a/site/_docs/pages.md
+++ b/site/_docs/pages.md
@@ -86,7 +86,7 @@ might look like:
{% endhighlight %}
This approach may not suit everyone, but for people who like clean URLs it’s
-simple and it works. In the end the decision is yours!
+simple and it works. In the end, the decision is yours!
ProTip™: Use permalink Front Matter Variable
diff --git a/site/_docs/posts.md b/site/_docs/posts.md
index 47f60f3c320..1b3e322b233 100644
--- a/site/_docs/posts.md
+++ b/site/_docs/posts.md
@@ -6,10 +6,10 @@ permalink: /docs/posts/
One of Jekyll’s best aspects is that it is “blog aware”. What does this mean,
exactly? Well, simply put, it means that blogging is baked into Jekyll’s
-functionality. If you write articles and publish them online, this means that
-you can publish and maintain a blog simply by managing a folder of text-files on
-your computer. Compared to the hassle of configuring and maintaining databases
-and web-based CMS systems, this will be a welcome change!
+functionality. If you write articles and publish them online, you can publish
+and maintain a blog simply by managing a folder of text-files on your computer.
+Compared to the hassle of configuring and maintaining databases and web-based
+CMS systems, this will be a welcome change!
## The Posts Folder
@@ -23,7 +23,7 @@ static site.
### Creating Post Files
-To create a new post, all you need to do is create a new file in the `_posts`
+To create a new post, all you need to do is create a file in the `_posts`
directory. How you name files in this folder is important. Jekyll requires blog
post files to be named according to the following format:
diff --git a/site/_docs/windows.md b/site/_docs/windows.md
index 5a1a0a56ffa..ddb0892662b 100644
--- a/site/_docs/windows.md
+++ b/site/_docs/windows.md
@@ -11,11 +11,11 @@ knowledge and lessons that have been unearthed by Windows users.
## Installation
Julian Thilo has written up instructions to get
-[Jekyll running on Windows][windows-installation] and it seems to work for most.
-The instructions were written for Ruby 2.0.0, but should work for later versions
-[prior to 2.2][hitimes-issue].
+[Jekyll running on Windows][windows-installation] and it seems to work for most
+people. The instructions were written for Ruby 2.0.0, but should work for later
+versions [prior to 2.2][hitimes-issue].
-Alternatively David Burela has written instructions on [how to install Jekyll via Chocolately with 3 command prompt entries](https://davidburela.wordpress.com/2015/11/28/easily-install-jekyll-on-windows-with-3-command-prompt-entries-and-chocolatey/)
+Alternatively David Burela has written instructions on [how to install Jekyll via Chocolately with 3 command prompt entries](https://davidburela.wordpress.com/2015/11/28/easily-install-jekyll-on-windows-with-3-command-prompt-entries-and-chocolatey/).
## Encoding
From 8d8021e0ac3ac9a3088f39e826cc6283c8bd0104 Mon Sep 17 00:00:00 2001
From: Florian Thomas
Date: Sat, 13 Feb 2016 00:06:03 +0100
Subject: [PATCH 0435/4996] require at least cucumber version 2.1.0
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index cd21a668f76..520616be4ee 100644
--- a/Gemfile
+++ b/Gemfile
@@ -15,7 +15,7 @@ end
#
group :test do
- gem "cucumber"
+ gem "cucumber", "~> 2.1"
gem "jekyll_test_plugin"
gem "jekyll_test_plugin_malicious"
gem "codeclimate-test-reporter"
From bbdbcefbbba4b7cfdcf3de7c935f89b00ddd12f2 Mon Sep 17 00:00:00 2001
From: Juuso Mikkonen
Date: Sat, 13 Feb 2016 20:16:09 +0200
Subject: [PATCH 0436/4996] Added amp-jekyll plugin to plugins docs
---
site/_docs/plugins.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 4695f4874c6..7249a8e8d9c 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -738,6 +738,7 @@ LESS.js files during generation.
- [Jekyll-Umlauts by Arne Gockeln](https://github.com/webchef/jekyll-umlauts): This generator replaces all german umlauts (äöüß) case sensitive with html.
- [Jekyll Flickr Plugin](https://github.com/lawmurray/indii-jekyll-flickr) by [Lawrence Murray](http://www.indii.org): Generates posts for photos uploaded to a Flickr photostream.
- [Jekyll::Paginate::Category](https://github.com/midnightSuyama/jekyll-paginate-category): Pagination Generator for Jekyll Category.
+- [AMP-Jekyll by Juuso Mikkonen](https://github.com/juusaw/amp-jekyll): Generate [Accelerated Mobile Pages](https://www.ampproject.org) of Jekyll posts.
#### Converters
From 5fa5c54c1ebd485f10644f7778f9013c2365dc77 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 13 Feb 2016 14:04:36 -0800
Subject: [PATCH 0437/4996] Update history to reflect merge of #4517 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 36dc54b6f92..9719fd2b4c7 100644
--- a/History.markdown
+++ b/History.markdown
@@ -23,6 +23,7 @@
* Add note about upgrading documentation on jekyllrb.com/help/ (#4484)
* Update Rake link (#4496)
* Update & prune the short list of example sites (#4374)
+ * Added amp-jekyll plugin to plugins docs (#4517)
## 3.1.1 / 2016-01-29
From 13bea15bbef75d19a25d28b34bfe2a8dc056af4e Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 13 Feb 2016 14:41:20 -0800
Subject: [PATCH 0438/4996] Update history to reflect merge of #4514 [ci skip]
---
History.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/History.markdown b/History.markdown
index 9719fd2b4c7..b4ee67cb308 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,5 +1,9 @@
## HEAD
+### Development Fixes
+
+ * require at least cucumber version 2.1.0 (#4514)
+
### Bug Fixes
* Fix #4427: Make our @config hash symbol accessible. (#4428)
From 4c8c59dfcb8b80c8dd3d8df562a9d664be10348c Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Sat, 13 Feb 2016 14:42:46 -0800
Subject: [PATCH 0439/4996] Update history to reflect merge of #4512 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index b4ee67cb308..fdea67adbee 100644
--- a/History.markdown
+++ b/History.markdown
@@ -28,6 +28,7 @@
* Update Rake link (#4496)
* Update & prune the short list of example sites (#4374)
* Added amp-jekyll plugin to plugins docs (#4517)
+ * A few grammar fixes (#4512)
## 3.1.1 / 2016-01-29
From abd8fef19bc71a5bc7b770e52c12c427e948bc30 Mon Sep 17 00:00:00 2001
From: bojanland
Date: Mon, 15 Feb 2016 00:39:53 -0500
Subject: [PATCH 0440/4996] Update structure.md
Two grammatical corrections. :)
---
site/_docs/structure.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/site/_docs/structure.md b/site/_docs/structure.md
index f571aea8deb..d4ba3ade6cf 100644
--- a/site/_docs/structure.md
+++ b/site/_docs/structure.md
@@ -7,9 +7,9 @@ permalink: /docs/structure/
Jekyll is, at its core, a text transformation engine. The concept behind the
system is this: you give it text written in your favorite markup language, be
that Markdown, Textile, or just plain HTML, and it churns that through a layout
-or series of layout files. Throughout that process you can tweak how you want
+or a series of layout files. Throughout that process you can tweak how you want
the site URLs to look, what data gets displayed in the layout, and more. This
-is all done through editing text files, and the static web site is the final
+is all done through editing text files; the static web site is the final
product.
A basic Jekyll site usually looks something like this:
From 4cb707960166c6148554b408f3c78c3c2a2d7631 Mon Sep 17 00:00:00 2001
From: toshi
Date: Tue, 16 Feb 2016 00:33:28 +0900
Subject: [PATCH 0441/4996] Add jekyll-tagging-related_posts plugin
---
site/_docs/plugins.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md
index 7249a8e8d9c..3236c03bad9 100644
--- a/site/_docs/plugins.md
+++ b/site/_docs/plugins.md
@@ -860,6 +860,7 @@ LESS.js files during generation.
- [Growl Notification Generator by Tate Johnson](https://gist.github.com/490101): Send Jekyll notifications to Growl.
- [Growl Notification Hook by Tate Johnson](https://gist.github.com/525267): Better alternative to the above, but requires his “hook” fork.
- [Related Posts by Lawrence Woodman](https://github.com/LawrenceWoodman/related_posts-jekyll_plugin): Overrides `site.related_posts` to use categories to assess relationship.
+- [jekyll-tagging-related_posts](https://github.com/toshimaru/jekyll-tagging-related_posts): Jekyll related_posts function based on tags (works on Jekyll3).
- [Tiered Archives by Eli Naeher](https://gist.github.com/88cda643aa7e3b0ca1e5): Create tiered template variable that allows you to group archives by year and month.
- [Jekyll-localization](https://github.com/blackwinter/jekyll-localization): Jekyll plugin that adds localization features to the rendering engine.
- [Jekyll-rendering](https://github.com/blackwinter/jekyll-rendering): Jekyll plugin to provide alternative rendering engines.
From e4aa45b03f0791068368252169079e5cf3f06258 Mon Sep 17 00:00:00 2001
From: atomicules
Date: Mon, 15 Feb 2016 14:33:01 +0000
Subject: [PATCH 0442/4996] Fix titleize_slug so already capitalized words are
not dropped
Previously `titleize` used `capitalize!` which has the side effect of
returning `nil` for anything already starting with a capital letter. This
commit changes it to just `capitalize`.
Example, before:
A file "2016-01-01-This-is-a-title-with-Capitals.markdown" would return "Is A
Title With" for `post.title`
Example, after:
A file "2016-01-01-This-is-a-title-with-Capitals.markdown" will return "This Is A
Title With Capitals" for `post.title`
Tests added for `titleize_slug` in test_utils.rb
Fix problem introduced in 67f842546efa980146778c85fb613e6c9b53dcb4
References #4525
---
lib/jekyll/utils.rb | 2 +-
test/test_utils.rb | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/lib/jekyll/utils.rb b/lib/jekyll/utils.rb
index e5d45c6d5e6..5d0dda2e0d9 100644
--- a/lib/jekyll/utils.rb
+++ b/lib/jekyll/utils.rb
@@ -20,7 +20,7 @@ def strip_heredoc(str)
def titleize_slug(slug)
slug.split("-").map! do |val|
- val.capitalize!
+ val.capitalize
end.join(" ")
end
diff --git a/test/test_utils.rb b/test/test_utils.rb
index a2335391dbe..eab0ca1ec41 100644
--- a/test/test_utils.rb
+++ b/test/test_utils.rb
@@ -206,6 +206,14 @@ class TestUtils < JekyllUnitTest
end
end
+ context "The \`Utils.titleize_slug\` method" do
+ should "capitalize all words and not drop any words" do
+ assert_equal "This Is A Long Title With Mixed Capitalization", Utils.titleize_slug("This-is-a-Long-title-with-Mixed-capitalization")
+ assert_equal "This Is A Title With Just The Initial Word Capitalized", Utils.titleize_slug("This-is-a-title-with-just-the-initial-word-capitalized")
+ assert_equal "This Is A Title With No Capitalization", Utils.titleize_slug("this-is-a-title-with-no-capitalization")
+ end
+ end
+
context "The \`Utils.add_permalink_suffix\` method" do
should "handle built-in permalink styles" do
assert_equal "/:basename/", Utils.add_permalink_suffix("/:basename", :pretty)
From 4d648c85581dbdc646bc7f32985806195e2e1e44 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 15 Feb 2016 20:50:43 -0800
Subject: [PATCH 0443/4996] Update history to reflect merge of #4525 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index fdea67adbee..1e50da10e16 100644
--- a/History.markdown
+++ b/History.markdown
@@ -8,6 +8,7 @@
* Fix #4427: Make our @config hash symbol accessible. (#4428)
* `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes (#4492)
+ * Fix titleize so already capitalized words are not dropped (#4525)
### Minor Enhancements
From 22f5b1988452974a1e30ced6d694bb8a532a5fdb Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Mon, 15 Feb 2016 20:58:11 -0800
Subject: [PATCH 0444/4996] Update history to reflect merge of #4522 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 1e50da10e16..d2dc51a5382 100644
--- a/History.markdown
+++ b/History.markdown
@@ -30,6 +30,7 @@
* Update & prune the short list of example sites (#4374)
* Added amp-jekyll plugin to plugins docs (#4517)
* A few grammar fixes (#4512)
+ * Update structure.md (#4522)
## 3.1.1 / 2016-01-29
From 40928364d495615259560666eb657eea82ac1885 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 15 Feb 2016 20:58:55 -0800
Subject: [PATCH 0445/4996] Updaet history message for #4522 [ci skip]
---
History.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/History.markdown b/History.markdown
index d2dc51a5382..1341cbd3993 100644
--- a/History.markdown
+++ b/History.markdown
@@ -30,7 +30,7 @@
* Update & prune the short list of example sites (#4374)
* Added amp-jekyll plugin to plugins docs (#4517)
* A few grammar fixes (#4512)
- * Update structure.md (#4522)
+ * Correct a couple mistakes in structure.md (#4522)
## 3.1.1 / 2016-01-29
From 84f9bcdd426e5a73ec3e3a94986a786779c24c6a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Mon, 15 Feb 2016 21:58:22 -0800
Subject: [PATCH 0446/4996] Update the site history
---
README.markdown | 2 --
site/_docs/datafiles.md | 6 +++---
site/_docs/history.md | 10 +++++-----
site/_includes/footer.html | 2 +-
4 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/README.markdown b/README.markdown
index 50ec363e2ad..0e37c531468 100644
--- a/README.markdown
+++ b/README.markdown
@@ -14,8 +14,6 @@
[hakiri]: https://hakiri.io/github/jekyll/jekyll/master
[travis]: https://travis-ci.org/jekyll/jekyll
-By Tom Preston-Werner, Nick Quaranto, Parker Moore, and many [awesome contributors](https://github.com/jekyll/jekyll/graphs/contributors)!
-
Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind [GitHub Pages](http://pages.github.com), which you can use to host sites right from your GitHub repositories.
## Philosophy
diff --git a/site/_docs/datafiles.md b/site/_docs/datafiles.md
index afa54b8fc67..4fd85b4848c 100644
--- a/site/_docs/datafiles.md
+++ b/site/_docs/datafiles.md
@@ -33,8 +33,8 @@ of code in your Jekyll templates:
In `_data/members.yml`:
{% highlight yaml %}
-- name: Tom Preston-Werner
- github: mojombo
+- name: Eric Mill
+ github: konklone
- name: Parker Moore
github: parkr
@@ -47,7 +47,7 @@ Or `_data/members.csv`:
{% highlight text %}
name,github
-Tom Preston-Werner,mojombo
+Eric Mill,konklone
Parker Moore,parkr
Liu Fengyun,liufengyun
{% endhighlight %}
diff --git a/site/_docs/history.md b/site/_docs/history.md
index 6514e2c40f0..c7086d00cfc 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -132,11 +132,11 @@ permalink: "/docs/history/"
### Bug Fixes
{: #bug-fixes-v3-0-3}
-* Fix extension weirdness with folders ([#4493]({{ site.repository }}/issues/4493))
-* EntryFilter: only include 'excluded' log on excluded files ([#4479]({{ site.repository }}/issues/4479))
-* `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path ([#4468]({{ site.repository }}/issues/4468))
-* `LiquidRenderer#parse`: parse with line numbers ([#4453]({{ site.repository }}/issues/4453))
-* `Document#<=>`: protect against nil comparison in dates. ([#4446]({{ site.repository }}/issues/4446))
+- Fix extension weirdness with folders ([#4493]({{ site.repository }}/issues/4493))
+- EntryFilter: only include 'excluded' log on excluded files ([#4479]({{ site.repository }}/issues/4479))
+- `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path ([#4468]({{ site.repository }}/issues/4468))
+- `LiquidRenderer#parse`: parse with line numbers ([#4453]({{ site.repository }}/issues/4453))
+- `Document#<=>`: protect against nil comparison in dates. ([#4446]({{ site.repository }}/issues/4446))
## 3.0.2 / 2016-01-20
diff --git a/site/_includes/footer.html b/site/_includes/footer.html
index 09bab7375da..4893510685d 100644
--- a/site/_includes/footer.html
+++ b/site/_includes/footer.html
@@ -1,7 +1,7 @@
From d38d90f2782e630660d3db55ebb3a60f810b0b1d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Tue, 16 Feb 2016 12:54:41 -0800
Subject: [PATCH 0448/4996] Add some redirects.
---
site/redirects/github.html | 4 ++++
site/redirects/issues.html | 4 ++++
2 files changed, 8 insertions(+)
create mode 100644 site/redirects/github.html
create mode 100644 site/redirects/issues.html
diff --git a/site/redirects/github.html b/site/redirects/github.html
new file mode 100644
index 00000000000..6042d0d068a
--- /dev/null
+++ b/site/redirects/github.html
@@ -0,0 +1,4 @@
+---
+permalink: /github.html
+redirect_to: https://github.com/jekyll/jekyll
+---
diff --git a/site/redirects/issues.html b/site/redirects/issues.html
new file mode 100644
index 00000000000..677605101a1
--- /dev/null
+++ b/site/redirects/issues.html
@@ -0,0 +1,4 @@
+---
+permalink: /issues.html
+redirect_to: https://github.com/jekyll/jekyll/issues
+---
From 2bd0d062e11ee2b6bc4187fc00dec7f47f731515 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 17 Feb 2016 10:27:18 -0800
Subject: [PATCH 0449/4996] Add an issue template for new issues
---
ISSUE_TEMPLATE.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 ISSUE_TEMPLATE.md
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 00000000000..37235ea3666
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,18 @@
+###### What version of Jekyll are you using (`jekyll -v`)?
+
+
+###### What operating system are you using?
+
+
+
+###### What did you do?
+
+
+
+###### What did you expect to see?
+
+
+
+###### What did you see instead?
+
+
From 65e7605342bcb08b2582fbe241792bdbb5266c1c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 17 Feb 2016 10:27:48 -0800
Subject: [PATCH 0450/4996] Update ISSUE_TEMPLATE.md
---
ISSUE_TEMPLATE.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 37235ea3666..3a30fdbfc39 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -1,6 +1,7 @@
###### What version of Jekyll are you using (`jekyll -v`)?
+
###### What operating system are you using?
From b440d478ea904c6a9a622835629c3e8ae1929211 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Wed, 17 Feb 2016 10:33:17 -0800
Subject: [PATCH 0451/4996] Add hint to "What did you do?"
---
ISSUE_TEMPLATE.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 3a30fdbfc39..614de1c9412 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -7,6 +7,7 @@
###### What did you do?
+(Please include the content causing the issue, any relevant configuration settings, and the command you ran)
From d387fd0baab65675dbd973189db14359d36e4d54 Mon Sep 17 00:00:00 2001
From: Henry Goodman
Date: Wed, 17 Feb 2016 00:29:57 -0800
Subject: [PATCH 0452/4996] Add show_dir_listing option for serve command
---
lib/jekyll/commands/serve.rb | 4 ++++
lib/jekyll/configuration.rb | 1 +
test/test_commands_serve.rb | 5 +++++
3 files changed, 10 insertions(+)
diff --git a/lib/jekyll/commands/serve.rb b/lib/jekyll/commands/serve.rb
index 29408fe2336..69ea8ba7c3d 100644
--- a/lib/jekyll/commands/serve.rb
+++ b/lib/jekyll/commands/serve.rb
@@ -10,6 +10,8 @@ class << self
"ssl_key" => ["--ssl-key [KEY]", "X.509 (SSL) Private Key."],
"port" => ["-P", "--port [PORT]", "Port to listen on"],
"baseurl" => ["-b", "--baseurl [URL]", "Base URL"],
+ "show_dir_listing" => ["--show-dir-listing",
+ "Show a directory listing instead of loading your index file."],
"skip_initial_build" => ["skip_initial_build", "--skip-initial-build",
"Skips the initial site build which occurs before the server is started."]
}
@@ -91,6 +93,8 @@ def webrick_opts(opts)
)
}
+ opts[:DirectoryIndex] = [] if opts[:JekyllOptions]['show_dir_listing']
+
enable_ssl(opts)
enable_logging(opts)
opts
diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb
index 0f8618a1b8b..cf499aa21f3 100644
--- a/lib/jekyll/configuration.rb
+++ b/lib/jekyll/configuration.rb
@@ -44,6 +44,7 @@ class Configuration < Hash
'port' => '4000',
'host' => '127.0.0.1',
'baseurl' => '',
+ 'show_dir_listing' => false,
# Output Configuration
'permalink' => 'date',
diff --git a/test/test_commands_serve.rb b/test/test_commands_serve.rb
index 87472c3df06..9fd3c1db8e9 100644
--- a/test/test_commands_serve.rb
+++ b/test/test_commands_serve.rb
@@ -68,6 +68,11 @@ def custom_opts(what)
]
end
+ should "use empty directory index list when show_dir_listing is true" do
+ opts = { "show_dir_listing" => true }
+ assert custom_opts(opts)[:DirectoryIndex].empty?
+ end
+
context "verbose" do
should "debug when verbose" do
assert_equal custom_opts({ "verbose" => true })[:Logger].level, 5
From 551f8b751fbe1da8c920ecfd81cf747ce3c1ed74 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 18 Feb 2016 16:56:39 -0800
Subject: [PATCH 0453/4996] `jekyll new` should create a Gemfile which is
educational
---
lib/jekyll/commands/new.rb | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/lib/jekyll/commands/new.rb b/lib/jekyll/commands/new.rb
index 433d33b79f2..0af8553bbfb 100644
--- a/lib/jekyll/commands/new.rb
+++ b/lib/jekyll/commands/new.rb
@@ -35,6 +35,10 @@ def process(args, options = {})
File.open(File.expand_path(initialized_post_name, new_blog_path), "w") do |f|
f.write(scaffold_post_content)
end
+
+ File.open(File.expand_path("Gemfile", new_blog_path), "w") do |f|
+ f.write(gemfile_contents)
+ end
end
Jekyll.logger.info "New jekyll site installed in #{new_blog_path}."
@@ -59,6 +63,27 @@ def initialized_post_name
end
private
+
+ def gemfile_contents
+ <<-RUBY
+source 'https://rubygems.org'
+
+# Hello! This is where you manage which Jekyll version is used to run.
+# When you wwant to use a different version, change it below, save the
+# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
+#
+# bundle exec jekyll serve
+#
+# This will help ensure the proper Jekyll version is running.
+# Happy Jekylling!
+gem 'jekyll', '#{Jekyll::VERSION}'
+
+# If you have any plugins, put them here!
+# group :jekyll_plugins do
+# gem 'jekyll-github-metadata', '~> 1.0'
+# end
+RUBY
+ end
def preserve_source_location?(path, options)
!options["force"] && !Dir["#{path}/**/*"].empty?
From 7897a1842cd97fa9e602b256129a8862a2737693 Mon Sep 17 00:00:00 2001
From: Michael Lyons
Date: Fri, 19 Feb 2016 11:27:46 -0800
Subject: [PATCH 0454/4996] Updated "custom domain name" link on homepage
---
site/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/index.html b/site/index.html
index faa87cb380b..cda453f11e2 100644
--- a/site/index.html
+++ b/site/index.html
@@ -79,7 +79,7 @@ Get up and running in seconds.
Free hosting with GitHub Pages
- Sick of dealing with hosting companies? GitHub Pages are powered by Jekyll, so you can easily deploy your site using GitHub for free—custom domain name and all.
+ Sick of dealing with hosting companies? GitHub Pages are powered by Jekyll, so you can easily deploy your site using GitHub for free—custom domain name and all.
Learn more about GitHub Pages →
From 3aa80b7d048edcddb246468b6e10c477764f874a Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 13:31:18 -0800
Subject: [PATCH 0455/4996] Allow collections to have documents that have no
file extension
---
features/collections.feature | 27 ++++++++++++-------------
lib/jekyll/collection.rb | 2 +-
test/source/_methods/collection/entries | 5 +++++
test/test_collections.rb | 1 +
test/test_document.rb | 4 ++--
5 files changed, 22 insertions(+), 17 deletions(-)
create mode 100644 test/source/_methods/collection/entries
diff --git a/features/collections.feature b/features/collections.feature
index ad17a896b99..ac67611edd6 100644
--- a/features/collections.feature
+++ b/features/collections.feature
@@ -10,7 +10,6 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
- And I should see "Collections: Use Jekyll.configuration to build a full configuration for use w/Jekyll.
\n\nWhatever: foo.bar
\nSigns are nice
\nJekyll.sanitized_path is used to make sure your path is in your source.
\nRun your generators! default
\nPage without title.
\nRun your generators! default
" in "_site/index.html"
And the "_site/methods/configuration.html" file should not exist
Scenario: Rendered collection
@@ -77,8 +76,8 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "Collections: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: Collections specified as an hash
Given I have an "index.html" page that contains "Collections: {% for method in site.methods %}{{ method.relative_path }} {% endfor %}"
@@ -90,8 +89,8 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "Collections: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: All the documents
Given I have an "index.html" page that contains "All documents: {% for doc in site.documents %}{{ doc.relative_path }} {% endfor %}"
@@ -103,11 +102,11 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "All documents: _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "All documents: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html"
Scenario: Documents have an output attribute, which is the converted HTML
- Given I have an "index.html" page that contains "First document's output: {{ site.documents.first.output }}"
+ Given I have an "index.html" page that contains "Second document's output: {{ site.documents[1].output }}"
And I have fixture collections
And I have a "_config.yml" file with content:
"""
@@ -116,8 +115,8 @@ Feature: Collections
"""
When I run jekyll build
Then I should get a zero exit status
- And the _site directory should exist
- And I should see "First document's output: Use Jekyll.configuration to build a full configuration for use w/Jekyll.
\n\nWhatever: foo.bar
" in "_site/index.html"
+ Then the _site directory should exist
+ And I should see "Second document's output: Use Jekyll.configuration to build a full configuration for use w/Jekyll.
\n\nWhatever: foo.bar
" in "_site/index.html"
Scenario: Filter documents by where
Given I have an "index.html" page that contains "{% assign items = site.methods | where: 'whatever','foo.bar' %}Item count: {{ items.size }}"
@@ -133,7 +132,7 @@ Feature: Collections
And I should see "Item count: 2" in "_site/index.html"
Scenario: Sort by title
- Given I have an "index.html" page that contains "{% assign items = site.methods | sort: 'title' %}1. of {{ items.size }}: {{ items.first.output }}"
+ Given I have an "index.html" page that contains "{% assign items = site.methods | sort: 'title' %}2. of {{ items.size }}: {{ items[1].output }}"
And I have fixture collections
And I have a "_config.yml" file with content:
"""
@@ -143,10 +142,10 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
- And I should see "1. of 7: Page without title.
" in "_site/index.html"
+ And I should see "2. of 8: Page without title.
" in "_site/index.html"
Scenario: Sort by relative_path
- Given I have an "index.html" page that contains "Collections: {% assign methods = site.methods | sort: 'relative_path' %}{% for method in methods %}{{ method.title }}, {% endfor %}"
+ Given I have an "index.html" page that contains "Collections: {% assign methods = site.methods | sort: 'relative_path' %}{{ methods | map:"title" | join: ", " }}"
And I have fixture collections
And I have a "_config.yml" file with content:
"""
@@ -156,7 +155,7 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
Then the _site directory should exist
- And I should see "Collections: Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate, YAML with Dots," in "_site/index.html"
+ And I should see "Collections: Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate," in "_site/index.html"
Scenario: Rendered collection with date/dateless filename
Given I have an "index.html" page that contains "Collections: {% for method in site.thanksgiving %}{{ method.title }} {% endfor %}"
diff --git a/lib/jekyll/collection.rb b/lib/jekyll/collection.rb
index f0e3333d6a9..11a4f06fe69 100644
--- a/lib/jekyll/collection.rb
+++ b/lib/jekyll/collection.rb
@@ -78,7 +78,7 @@ def read
def entries
return [] unless exists?
@entries ||=
- Utils.safe_glob(collection_dir, ["**", "*.*"]).map do |entry|
+ Utils.safe_glob(collection_dir, ["**", "*"]).map do |entry|
entry["#{collection_dir}/"] = ''
entry
end
diff --git a/test/source/_methods/collection/entries b/test/source/_methods/collection/entries
new file mode 100644
index 00000000000..7622ac9ac81
--- /dev/null
+++ b/test/source/_methods/collection/entries
@@ -0,0 +1,5 @@
+---
+title: "Collection#entries"
+---
+
+I have no file extension but I should still be a part of the collection.
diff --git a/test/test_collections.rb b/test/test_collections.rb
index 138bed6bb6b..1ae8696cc7d 100644
--- a/test/test_collections.rb
+++ b/test/test_collections.rb
@@ -126,6 +126,7 @@ class TestCollections < JekyllUnitTest
assert_includes %w[
_methods/configuration.md
_methods/sanitized_path.md
+ _methods/collection/entries
_methods/site/generate.md
_methods/site/initialize.md
_methods/um_hi.md
diff --git a/test/test_document.rb b/test/test_document.rb
index 1197c4da941..d3fac02f1e1 100644
--- a/test/test_document.rb
+++ b/test/test_document.rb
@@ -12,7 +12,7 @@ def assert_equal_value(key, one, other)
"collections" => ["methods"]
})
@site.process
- @document = @site.collections["methods"].docs.first
+ @document = @site.collections["methods"].docs.detect {|d| d.relative_path == "_methods/configuration.md" }
end
should "exist" do
@@ -49,7 +49,7 @@ def assert_equal_value(key, one, other)
setup do
@site = fixture_site({"collections" => ["methods"]})
@site.process
- @document = @site.collections["methods"].docs.last
+ @document = @site.collections["methods"].docs.detect {|d| d.relative_path == "_methods/yaml_with_dots.md" }
end
should "know its data" do
From d929242e2b3db510ff4d23d7c0ef7daa83ab1cb6 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 15:00:28 -0800
Subject: [PATCH 0456/4996] Permalinks which end in a slash should always
output HTML
Duplicates #4493 for 3.1.1.
/cc @jekyll/core
---
lib/jekyll/document.rb | 7 +++++--
test/source/_with.dots/mit.txt | 4 ++++
test/source/contacts/humans.txt | 5 +++++
test/test_collections.rb | 2 +-
test/test_filters.rb | 2 +-
test/test_site.rb | 1 +
6 files changed, 17 insertions(+), 4 deletions(-)
create mode 100644 test/source/_with.dots/mit.txt
create mode 100644 test/source/contacts/humans.txt
diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb
index fc3633d8e09..10f1203e99a 100644
--- a/lib/jekyll/document.rb
+++ b/lib/jekyll/document.rb
@@ -217,8 +217,11 @@ def [](key)
def destination(base_directory)
dest = site.in_dest_dir(base_directory)
path = site.in_dest_dir(dest, URL.unescape_path(url))
- path = File.join(path, "index.html") if url.end_with?("/")
- path << output_ext unless path.end_with? output_ext
+ if url.end_with? "/"
+ path = File.join(path, "index.html")
+ else
+ path << output_ext unless path.end_with? output_ext
+ end
path
end
diff --git a/test/source/_with.dots/mit.txt b/test/source/_with.dots/mit.txt
new file mode 100644
index 00000000000..c366b0df4ed
--- /dev/null
+++ b/test/source/_with.dots/mit.txt
@@ -0,0 +1,4 @@
+---
+---
+
+I should be output to `/with.dots/mit/index.html`.
diff --git a/test/source/contacts/humans.txt b/test/source/contacts/humans.txt
new file mode 100644
index 00000000000..84e2982b561
--- /dev/null
+++ b/test/source/contacts/humans.txt
@@ -0,0 +1,5 @@
+---
+permalink: /contacts/humans/
+---
+
+I should be output to `/contacts/humans/index.html`.
diff --git a/test/test_collections.rb b/test/test_collections.rb
index 138bed6bb6b..d6d7d7de36d 100644
--- a/test/test_collections.rb
+++ b/test/test_collections.rb
@@ -203,7 +203,7 @@ class TestCollections < JekyllUnitTest
end
should "contain one document" do
- assert_equal 3, @collection.docs.size
+ assert_equal 4, @collection.docs.size
end
should "allow dots in the filename" do
diff --git a/test/test_filters.rb b/test/test_filters.rb
index ca7cd49d8d8..e9035b96bda 100644
--- a/test/test_filters.rb
+++ b/test/test_filters.rb
@@ -285,7 +285,7 @@ def to_liquid
assert_equal 2, g["items"].size
when ""
assert g["items"].is_a?(Array), "The list of grouped items for '' is not an Array."
- assert_equal 12, g["items"].size
+ assert_equal 13, g["items"].size
end
end
end
diff --git a/test/test_site.rb b/test/test_site.rb
index c06c218e60c..3bb93c35bf0 100644
--- a/test/test_site.rb
+++ b/test/test_site.rb
@@ -178,6 +178,7 @@ def generate(site)
environment.html
exploit.md
foo.md
+ humans.txt
index.html
index.html
main.scss
From 32c5ac35dd22b00d3ba3770b7747f41ba8335325 Mon Sep 17 00:00:00 2001
From: jekyllbot
Date: Fri, 19 Feb 2016 15:13:15 -0800
Subject: [PATCH 0457/4996] Update history to reflect merge of #4546 [ci skip]
---
History.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/History.markdown b/History.markdown
index 1341cbd3993..6990ded9dba 100644
--- a/History.markdown
+++ b/History.markdown
@@ -9,6 +9,7 @@
* Fix #4427: Make our @config hash symbol accessible. (#4428)
* `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes (#4492)
* Fix titleize so already capitalized words are not dropped (#4525)
+ * Permalinks which end in a slash should always output HTML (#4546)
### Minor Enhancements
From 05d753f4e00dac7bbdcae98fc86c4118f0f686bc Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 15:40:57 -0800
Subject: [PATCH 0458/4996] Release :gem: v3.1.2
---
History.markdown | 20 ++++-----
lib/jekyll/version.rb | 2 +-
site/_docs/history.md | 41 +++++++++++++++++++
.../2016-02-19-jekyll-3-1-2-released.markdown | 20 +++++++++
site/latest_version.txt | 2 +-
5 files changed, 73 insertions(+), 12 deletions(-)
create mode 100644 site/_posts/2016-02-19-jekyll-3-1-2-released.markdown
diff --git a/History.markdown b/History.markdown
index 6990ded9dba..14e8e235b3c 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,28 +1,28 @@
-## HEAD
+## 3.1.2 / 2016-02-19
-### Development Fixes
+### Minor Enhancements
- * require at least cucumber version 2.1.0 (#4514)
+ * Include `.rubocop.yml` in Gem (#4437)
+ * `LiquidRenderer#parse`: parse with line numbers. (#4452)
+ * Add consistency to the no-subcommand deprecation message (#4505)
### Bug Fixes
- * Fix #4427: Make our @config hash symbol accessible. (#4428)
+ * Fix syntax highlighting in kramdown by making `@config` accessible in the Markdown converter. (#4428)
* `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes (#4492)
- * Fix titleize so already capitalized words are not dropped (#4525)
+ * Fix `titleize` so already capitalized words are not dropped (#4525)
* Permalinks which end in a slash should always output HTML (#4546)
-### Minor Enhancements
+### Development Fixes
- * Include .rubocop.yml in Gem (#4437)
- * LiquidRenderer#parse: parse with line numbers. (#4452)
- * add consistency to the deprecation message (#4505)
+ * Require at least cucumber version 2.1.0 (#4514)
### Site Enhancements
* Add jekyll-toc plugin (#4429)
* Docs: Quickstart - added documentation about the `--force` option (#4410)
* Fix broken links to the Code of Conduct (#4436)
- * upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
+ * Upgrade notes: mention trailing slash in permalink; fixes #4440 (#4455)
* Add hooks to the plugin categories toc (#4463)
* [add note] Jekyll 3 requires newer version of Ruby. (#4461)
* Fix typo in upgrading docs (#4473)
diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb
index 925e0b442d8..ba9ee23828d 100644
--- a/lib/jekyll/version.rb
+++ b/lib/jekyll/version.rb
@@ -1,3 +1,3 @@
module Jekyll
- VERSION = '3.1.1'
+ VERSION = '3.1.2'
end
diff --git a/site/_docs/history.md b/site/_docs/history.md
index c7086d00cfc..b98ea83e94b 100644
--- a/site/_docs/history.md
+++ b/site/_docs/history.md
@@ -4,6 +4,47 @@ title: History
permalink: "/docs/history/"
---
+## 3.1.2 / 2016-02-19
+{: #v3-1-2}
+
+### Minor Enhancements
+{: #minor-enhancements-v3-1-2}
+
+- Include `.rubocop.yml` in Gem ([#4437]({{ site.repository }}/issues/4437))
+- `LiquidRenderer#parse`: parse with line numbers. ([#4452]({{ site.repository }}/issues/4452))
+- Add consistency to the no-subcommand deprecation message ([#4505]({{ site.repository }}/issues/4505))
+
+### Bug Fixes
+{: #bug-fixes-v3-1-2}
+
+- Fix syntax highlighting in kramdown by making `[@config](https://github.com/config)` accessible in the Markdown converter. ([#4428]({{ site.repository }}/issues/4428))
+- `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes ([#4492]({{ site.repository }}/issues/4492))
+- Fix `titleize` so already capitalized words are not dropped ([#4525]({{ site.repository }}/issues/4525))
+- Permalinks which end in a slash should always output HTML ([#4546]({{ site.repository }}/issues/4546))
+
+### Development Fixes
+{: #development-fixes-v3-1-2}
+
+- Require at least cucumber version 2.1.0 ([#4514]({{ site.repository }}/issues/4514))
+
+### Site Enhancements
+{: #site-enhancements-v3-1-2}
+
+- Add jekyll-toc plugin ([#4429]({{ site.repository }}/issues/4429))
+- Docs: Quickstart - added documentation about the `--force` option ([#4410]({{ site.repository }}/issues/4410))
+- Fix broken links to the Code of Conduct ([#4436]({{ site.repository }}/issues/4436))
+- Upgrade notes: mention trailing slash in permalink; fixes [#4440]({{ site.repository }}/issues/4440) ([#4455]({{ site.repository }}/issues/4455))
+- Add hooks to the plugin categories toc ([#4463]({{ site.repository }}/issues/4463))
+- [add note] Jekyll 3 requires newer version of Ruby. ([#4461]({{ site.repository }}/issues/4461))
+- Fix typo in upgrading docs ([#4473]({{ site.repository }}/issues/4473))
+- Add note about upgrading documentation on jekyllrb.com/help/ ([#4484]({{ site.repository }}/issues/4484))
+- Update Rake link ([#4496]({{ site.repository }}/issues/4496))
+- Update & prune the short list of example sites ([#4374]({{ site.repository }}/issues/4374))
+- Added amp-jekyll plugin to plugins docs ([#4517]({{ site.repository }}/issues/4517))
+- A few grammar fixes ([#4512]({{ site.repository }}/issues/4512))
+- Correct a couple mistakes in structure.md ([#4522]({{ site.repository }}/issues/4522))
+
+
## 3.1.1 / 2016-01-29
{: #v3-1-1}
diff --git a/site/_posts/2016-02-19-jekyll-3-1-2-released.markdown b/site/_posts/2016-02-19-jekyll-3-1-2-released.markdown
new file mode 100644
index 00000000000..775445107d0
--- /dev/null
+++ b/site/_posts/2016-02-19-jekyll-3-1-2-released.markdown
@@ -0,0 +1,20 @@
+---
+layout: news_item
+title: 'Jekyll 3.1.2 Released!'
+date: 2016-02-19 15:24:00 -0800
+author: parkr
+version: 3.1.2
+categories: [release]
+---
+
+Happy Friday from sunny California! Today, we're excited to announce the release of Jekyll v3.1.2, which comes with some crucial bug fixes:
+
+* If a syntax error is encountered by Liquid, it will now print the line number.
+* A nasty war between symbols and strings in our configuration hash caused kramdown syntax highlighting to break. That has been resolved; you stand victorious!
+* A tilde at the beginning of a filename will no longer crash Jekyll.
+* The `titleize` filter mistakenly dropped words that were already capitalized. Fixed!
+* Permalinks which end in a slash will now always output as a folder with an `index.html` inside.
+
+Nitty-gritty details, like always, are available in the [history](/docs/history/).
+
+Thanks to those who contributed to this release: Alfred Xing, atomicules, bojanland, Brenton Horne, Carlos Garcés, Cash Costello, Chris, chrisfinazzo, Daniel Schildt, Dean Attali, Florian Thomas, Jordon Bedwell, Juuso Mikkonen, Katya Demidova, lonnen, Manabu Sakai, Michael Lee, Michael Lyons, Mitesh Shah, Nicolas Hoizey, Parker Moore, Pat Hawks, Prayag Verma, Robert Martin, Suriyaa Kudo, and toshi.
diff --git a/site/latest_version.txt b/site/latest_version.txt
index 94ff29cc4de..ef538c28109 100644
--- a/site/latest_version.txt
+++ b/site/latest_version.txt
@@ -1 +1 @@
-3.1.1
+3.1.2
From 5d66a12ed4c34e73a4fb6cee5c14c967a0f295f7 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 16:47:24 -0800
Subject: [PATCH 0459/4996] Ship jekyll-docs properly
---
jekyll-docs/.gitignore | 3 +++
jekyll-docs/Gemfile | 2 ++
jekyll-docs/Rakefile | 19 ++++++++++++++++++
jekyll-docs/jekyll-docs.gemspec | 21 ++++++++++++++++++++
jekyll-docs/lib/jekyll-docs.rb | 34 +++++++++++++++++++++++++++++++++
5 files changed, 79 insertions(+)
create mode 100644 jekyll-docs/.gitignore
create mode 100644 jekyll-docs/Gemfile
create mode 100644 jekyll-docs/Rakefile
create mode 100644 jekyll-docs/jekyll-docs.gemspec
create mode 100644 jekyll-docs/lib/jekyll-docs.rb
diff --git a/jekyll-docs/.gitignore b/jekyll-docs/.gitignore
new file mode 100644
index 00000000000..70c3dadcdcf
--- /dev/null
+++ b/jekyll-docs/.gitignore
@@ -0,0 +1,3 @@
+jekyll
+site
+Gemfile.lock
diff --git a/jekyll-docs/Gemfile b/jekyll-docs/Gemfile
new file mode 100644
index 00000000000..851fabc21dd
--- /dev/null
+++ b/jekyll-docs/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gemspec
diff --git a/jekyll-docs/Rakefile b/jekyll-docs/Rakefile
new file mode 100644
index 00000000000..0d103d5293e
--- /dev/null
+++ b/jekyll-docs/Rakefile
@@ -0,0 +1,19 @@
+require "bundler/gem_tasks"
+task :build => :init
+task :default => :init
+
+def jekyll_version
+ ENV.fetch('JEKYLL_VERSION')
+end
+
+task :init do
+ sh "git clone git://github.com/jekyll/jekyll.git jekyll" unless Dir.exist? "jekyll/.git"
+ Dir.chdir("jekyll") { sh "git checkout v#{jekyll_version}" }
+ rm_rf "site"
+ cp_r "jekyll/site", "site"
+end
+
+task :teardown do
+ rm_rf "site"
+ rm_rf "jekyll"
+end
diff --git a/jekyll-docs/jekyll-docs.gemspec b/jekyll-docs/jekyll-docs.gemspec
new file mode 100644
index 00000000000..02c373ccd89
--- /dev/null
+++ b/jekyll-docs/jekyll-docs.gemspec
@@ -0,0 +1,21 @@
+# coding: utf-8
+require File.expand_path('../../lib/jekyll/version', __FILE__)
+
+Gem::Specification.new do |spec|
+ spec.name = 'jekyll-docs'
+ spec.version = ENV.fetch('JEKYLL_VERSION')
+ spec.authors = ['Parker Moore']
+ spec.email = ['parkrmoore@gmail.com']
+ spec.summary = %q{Offline usage documentation for Jekyll.}
+ spec.homepage = 'http://jekyllrb.com'
+ spec.license = 'MIT'
+
+ spec.files = `git ls-files -z`.split("\x0").grep(%r{^site/})
+ spec.files << "lib/jekyll-docs.rb"
+ spec.require_paths = ['lib']
+
+ spec.add_dependency 'jekyll', Jekyll::VERSION
+
+ spec.add_development_dependency 'bundler', '~> 1.7'
+ spec.add_development_dependency 'rake', '~> 10.0'
+end
diff --git a/jekyll-docs/lib/jekyll-docs.rb b/jekyll-docs/lib/jekyll-docs.rb
new file mode 100644
index 00000000000..76ed922d72e
--- /dev/null
+++ b/jekyll-docs/lib/jekyll-docs.rb
@@ -0,0 +1,34 @@
+require 'rubygems'
+require 'jekyll'
+
+module JekyllDocs
+ class DocsCommand < Jekyll::Command
+ class << self
+ def init_with_program(prog)
+ prog.command(:docs) do |cmd|
+ cmd.description "Start a local server for the Jekyll documentation"
+ cmd.syntax "docs [options]"
+ cmd.alias :d
+
+ cmd.option "port", "-P", "--port", "Port to listen on."
+
+ cmd.action do |_, opts|
+ JekyllDocs::DocsCommand.process(opts)
+ end
+ end
+ end
+
+ def process(opts)
+ Dir.mktmpdir do |dest_dir|
+ Jekyll::Commands::Serve.process(opts.merge({
+ "serving" => true,
+ "watch" => false,
+ "config" => File.expand_path("../../site/_config.yml", __FILE__),
+ "source" => File.expand_path("../../site/", __FILE__),
+ "destination" => dest_dir
+ }))
+ end
+ end
+ end
+ end
+end
From 391960b55f3c786775ea8d78ac387f97e3f6bc2b Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 16:54:00 -0800
Subject: [PATCH 0460/4996] Add the ability to release jekyll-docs with the
right site.
---
jekyll-docs/Rakefile | 44 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 40 insertions(+), 4 deletions(-)
diff --git a/jekyll-docs/Rakefile b/jekyll-docs/Rakefile
index 0d103d5293e..a86fd4f8b3d 100644
--- a/jekyll-docs/Rakefile
+++ b/jekyll-docs/Rakefile
@@ -1,14 +1,24 @@
-require "bundler/gem_tasks"
-task :build => :init
task :default => :init
-def jekyll_version
+def name
+ "jekyll-docs".freeze
+end
+
+def gemspec_file
+ "#{name}.gemspec"
+end
+
+def gem_file
+ "#{name}-#{version}.gem"
+end
+
+def version
ENV.fetch('JEKYLL_VERSION')
end
task :init do
sh "git clone git://github.com/jekyll/jekyll.git jekyll" unless Dir.exist? "jekyll/.git"
- Dir.chdir("jekyll") { sh "git checkout v#{jekyll_version}" }
+ Dir.chdir("jekyll") { sh "git checkout v#{version}" }
rm_rf "site"
cp_r "jekyll/site", "site"
end
@@ -17,3 +27,29 @@ task :teardown do
rm_rf "site"
rm_rf "jekyll"
end
+
+#############################################################################
+#
+# Packaging tasks
+#
+#############################################################################
+
+desc "Release #{name} v#{version}"
+task :release => :build do
+ unless `git branch` =~ /^\* master$/
+ puts "You must be on the master branch to release!"
+ exit!
+ end
+ unless `git diff`.empty?
+ puts "We cannot proceed with uncommitted changes!"
+ exit!
+ end
+ sh "gem push pkg/#{name}-#{version}.gem"
+end
+
+desc "Build #{name} v#{version} into pkg/"
+task :build => :init do
+ mkdir_p "pkg"
+ sh "gem build #{gemspec_file}"
+ sh "mv #{gem_file} pkg"
+end
From 8d7e329a6e62af4373a7f8911b8d76baef7a7652 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 16:54:24 -0800
Subject: [PATCH 0461/4996] Get jekyll-docs working.
---
Gemfile | 1 +
jekyll-docs.gemspec | 22 ----------------------
2 files changed, 1 insertion(+), 22 deletions(-)
delete mode 100644 jekyll-docs.gemspec
diff --git a/Gemfile b/Gemfile
index 520616be4ee..1aa5c5e4205 100644
--- a/Gemfile
+++ b/Gemfile
@@ -55,6 +55,7 @@ end
group :jekyll_optional_dependencies do
gem "toml", "~> 0.1.0"
gem "coderay", "~> 1.1.0"
+ gem "jekyll-docs", path: './jekyll-docs'
gem "jekyll-gist", "~> 1.0"
gem "jekyll-feed", "~> 0.1.3"
gem "jekyll-coffeescript", "~> 1.0"
diff --git a/jekyll-docs.gemspec b/jekyll-docs.gemspec
deleted file mode 100644
index 0a7975a351b..00000000000
--- a/jekyll-docs.gemspec
+++ /dev/null
@@ -1,22 +0,0 @@
-# coding: utf-8
-lib = File.expand_path('../lib', __FILE__)
-$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
-require 'jekyll/version'
-
-Gem::Specification.new do |spec|
- spec.name = 'jekyll-docs'
- spec.version = Jekyll::VERSION
- spec.authors = ['Parker Moore']
- spec.email = ['parkrmoore@gmail.com']
- spec.summary = %q{Offline usage documentation for Jekyll.}
- spec.homepage = 'http://jekyllrb.com'
- spec.license = 'MIT'
-
- spec.files = `git ls-files -z`.split("\x0").grep(%r{^site/})
- spec.require_paths = ['lib']
-
- spec.add_dependency 'jekyll', Jekyll::VERSION
-
- spec.add_development_dependency 'bundler', '~> 1.7'
- spec.add_development_dependency 'rake', '~> 10.0'
-end
From 18126d0ebd93568617dc4d38e817ab1b64e54c29 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 16:57:21 -0800
Subject: [PATCH 0462/4996] Fix jekyll-docs command.
---
jekyll-docs/jekyll-docs.gemspec | 1 -
jekyll-docs/lib/jekyll-docs.rb | 8 +++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/jekyll-docs/jekyll-docs.gemspec b/jekyll-docs/jekyll-docs.gemspec
index 02c373ccd89..9751ff52eec 100644
--- a/jekyll-docs/jekyll-docs.gemspec
+++ b/jekyll-docs/jekyll-docs.gemspec
@@ -1,5 +1,4 @@
# coding: utf-8
-require File.expand_path('../../lib/jekyll/version', __FILE__)
Gem::Specification.new do |spec|
spec.name = 'jekyll-docs'
diff --git a/jekyll-docs/lib/jekyll-docs.rb b/jekyll-docs/lib/jekyll-docs.rb
index 76ed922d72e..df8a9b024da 100644
--- a/jekyll-docs/lib/jekyll-docs.rb
+++ b/jekyll-docs/lib/jekyll-docs.rb
@@ -20,13 +20,15 @@ def init_with_program(prog)
def process(opts)
Dir.mktmpdir do |dest_dir|
- Jekyll::Commands::Serve.process(opts.merge({
+ options = opts.merge({
"serving" => true,
"watch" => false,
"config" => File.expand_path("../../site/_config.yml", __FILE__),
- "source" => File.expand_path("../../site/", __FILE__),
+ "source" => File.expand_path("../../site", __FILE__),
"destination" => dest_dir
- }))
+ })
+ Jekyll::Commands::Build.process(options)
+ Jekyll::Commands::Serve.process(options)
end
end
end
From fa4d327ddbaaf20a0e7efe35558150861baa242d Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 16:58:40 -0800
Subject: [PATCH 0463/4996] jekyll-docs: use env var
---
jekyll-docs/jekyll-docs.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jekyll-docs/jekyll-docs.gemspec b/jekyll-docs/jekyll-docs.gemspec
index 9751ff52eec..fcb4ed627b3 100644
--- a/jekyll-docs/jekyll-docs.gemspec
+++ b/jekyll-docs/jekyll-docs.gemspec
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
spec.files << "lib/jekyll-docs.rb"
spec.require_paths = ['lib']
- spec.add_dependency 'jekyll', Jekyll::VERSION
+ spec.add_dependency 'jekyll', ENV.fetch('JEKYLL_VERSION')
spec.add_development_dependency 'bundler', '~> 1.7'
spec.add_development_dependency 'rake', '~> 10.0'
From e9ecb93dec25f3086cc50c9dc53508a1b04d3569 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 17:07:22 -0800
Subject: [PATCH 0464/4996] fix up jekyll-docs
---
jekyll-docs/Rakefile | 5 +++++
jekyll-docs/jekyll-docs.gemspec | 3 +--
jekyll-docs/lib/jekyll-docs.rb | 1 +
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/jekyll-docs/Rakefile b/jekyll-docs/Rakefile
index a86fd4f8b3d..770446b7c37 100644
--- a/jekyll-docs/Rakefile
+++ b/jekyll-docs/Rakefile
@@ -53,3 +53,8 @@ task :build => :init do
sh "gem build #{gemspec_file}"
sh "mv #{gem_file} pkg"
end
+
+desc "Install #{name} v#{version} into your gem folder."
+task :install => :build do
+ sh "gem install -l pkg/#{gem_file}"
+end
diff --git a/jekyll-docs/jekyll-docs.gemspec b/jekyll-docs/jekyll-docs.gemspec
index fcb4ed627b3..11699172056 100644
--- a/jekyll-docs/jekyll-docs.gemspec
+++ b/jekyll-docs/jekyll-docs.gemspec
@@ -9,8 +9,7 @@ Gem::Specification.new do |spec|
spec.homepage = 'http://jekyllrb.com'
spec.license = 'MIT'
- spec.files = `git ls-files -z`.split("\x0").grep(%r{^site/})
- spec.files << "lib/jekyll-docs.rb"
+ spec.files = Dir['**/*'].grep(%r{^(lib|site)/})
spec.require_paths = ['lib']
spec.add_dependency 'jekyll', ENV.fetch('JEKYLL_VERSION')
diff --git a/jekyll-docs/lib/jekyll-docs.rb b/jekyll-docs/lib/jekyll-docs.rb
index df8a9b024da..8e62f3de55a 100644
--- a/jekyll-docs/lib/jekyll-docs.rb
+++ b/jekyll-docs/lib/jekyll-docs.rb
@@ -1,5 +1,6 @@
require 'rubygems'
require 'jekyll'
+require 'tmpdir'
module JekyllDocs
class DocsCommand < Jekyll::Command
From f05e3f340ef5d0c32c20b190521764d4390df142 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 17:16:49 -0800
Subject: [PATCH 0465/4996] Remove jekyll-docs and move to a separate repo.
https://github.com/jekyll/jekyll-docs/commit/22ee87af88d4d0f3b7316ed6be0de3a087b99c82
---
jekyll-docs/.gitignore | 3 --
jekyll-docs/Gemfile | 2 --
jekyll-docs/Rakefile | 60 ---------------------------------
jekyll-docs/jekyll-docs.gemspec | 19 -----------
jekyll-docs/lib/jekyll-docs.rb | 37 --------------------
5 files changed, 121 deletions(-)
delete mode 100644 jekyll-docs/.gitignore
delete mode 100644 jekyll-docs/Gemfile
delete mode 100644 jekyll-docs/Rakefile
delete mode 100644 jekyll-docs/jekyll-docs.gemspec
delete mode 100644 jekyll-docs/lib/jekyll-docs.rb
diff --git a/jekyll-docs/.gitignore b/jekyll-docs/.gitignore
deleted file mode 100644
index 70c3dadcdcf..00000000000
--- a/jekyll-docs/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-jekyll
-site
-Gemfile.lock
diff --git a/jekyll-docs/Gemfile b/jekyll-docs/Gemfile
deleted file mode 100644
index 851fabc21dd..00000000000
--- a/jekyll-docs/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source 'https://rubygems.org'
-gemspec
diff --git a/jekyll-docs/Rakefile b/jekyll-docs/Rakefile
deleted file mode 100644
index 770446b7c37..00000000000
--- a/jekyll-docs/Rakefile
+++ /dev/null
@@ -1,60 +0,0 @@
-task :default => :init
-
-def name
- "jekyll-docs".freeze
-end
-
-def gemspec_file
- "#{name}.gemspec"
-end
-
-def gem_file
- "#{name}-#{version}.gem"
-end
-
-def version
- ENV.fetch('JEKYLL_VERSION')
-end
-
-task :init do
- sh "git clone git://github.com/jekyll/jekyll.git jekyll" unless Dir.exist? "jekyll/.git"
- Dir.chdir("jekyll") { sh "git checkout v#{version}" }
- rm_rf "site"
- cp_r "jekyll/site", "site"
-end
-
-task :teardown do
- rm_rf "site"
- rm_rf "jekyll"
-end
-
-#############################################################################
-#
-# Packaging tasks
-#
-#############################################################################
-
-desc "Release #{name} v#{version}"
-task :release => :build do
- unless `git branch` =~ /^\* master$/
- puts "You must be on the master branch to release!"
- exit!
- end
- unless `git diff`.empty?
- puts "We cannot proceed with uncommitted changes!"
- exit!
- end
- sh "gem push pkg/#{name}-#{version}.gem"
-end
-
-desc "Build #{name} v#{version} into pkg/"
-task :build => :init do
- mkdir_p "pkg"
- sh "gem build #{gemspec_file}"
- sh "mv #{gem_file} pkg"
-end
-
-desc "Install #{name} v#{version} into your gem folder."
-task :install => :build do
- sh "gem install -l pkg/#{gem_file}"
-end
diff --git a/jekyll-docs/jekyll-docs.gemspec b/jekyll-docs/jekyll-docs.gemspec
deleted file mode 100644
index 11699172056..00000000000
--- a/jekyll-docs/jekyll-docs.gemspec
+++ /dev/null
@@ -1,19 +0,0 @@
-# coding: utf-8
-
-Gem::Specification.new do |spec|
- spec.name = 'jekyll-docs'
- spec.version = ENV.fetch('JEKYLL_VERSION')
- spec.authors = ['Parker Moore']
- spec.email = ['parkrmoore@gmail.com']
- spec.summary = %q{Offline usage documentation for Jekyll.}
- spec.homepage = 'http://jekyllrb.com'
- spec.license = 'MIT'
-
- spec.files = Dir['**/*'].grep(%r{^(lib|site)/})
- spec.require_paths = ['lib']
-
- spec.add_dependency 'jekyll', ENV.fetch('JEKYLL_VERSION')
-
- spec.add_development_dependency 'bundler', '~> 1.7'
- spec.add_development_dependency 'rake', '~> 10.0'
-end
diff --git a/jekyll-docs/lib/jekyll-docs.rb b/jekyll-docs/lib/jekyll-docs.rb
deleted file mode 100644
index 8e62f3de55a..00000000000
--- a/jekyll-docs/lib/jekyll-docs.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-require 'rubygems'
-require 'jekyll'
-require 'tmpdir'
-
-module JekyllDocs
- class DocsCommand < Jekyll::Command
- class << self
- def init_with_program(prog)
- prog.command(:docs) do |cmd|
- cmd.description "Start a local server for the Jekyll documentation"
- cmd.syntax "docs [options]"
- cmd.alias :d
-
- cmd.option "port", "-P", "--port", "Port to listen on."
-
- cmd.action do |_, opts|
- JekyllDocs::DocsCommand.process(opts)
- end
- end
- end
-
- def process(opts)
- Dir.mktmpdir do |dest_dir|
- options = opts.merge({
- "serving" => true,
- "watch" => false,
- "config" => File.expand_path("../../site/_config.yml", __FILE__),
- "source" => File.expand_path("../../site", __FILE__),
- "destination" => dest_dir
- })
- Jekyll::Commands::Build.process(options)
- Jekyll::Commands::Serve.process(options)
- end
- end
- end
- end
-end
From d1c08d85d2e63a63ab476e7b2471e566107b79d9 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 17:18:08 -0800
Subject: [PATCH 0466/4996] Look for local docs if the dir exists.
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 1aa5c5e4205..bad462bce52 100644
--- a/Gemfile
+++ b/Gemfile
@@ -55,7 +55,7 @@ end
group :jekyll_optional_dependencies do
gem "toml", "~> 0.1.0"
gem "coderay", "~> 1.1.0"
- gem "jekyll-docs", path: './jekyll-docs'
+ gem "jekyll-docs", path: '../docs' if Dir.exist?('../docs')
gem "jekyll-gist", "~> 1.0"
gem "jekyll-feed", "~> 0.1.3"
gem "jekyll-coffeescript", "~> 1.0"
From 0fd3c2d64c91255e29c28f2755193c7dad64b41c Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Fri, 19 Feb 2016 17:44:52 -0800
Subject: [PATCH 0467/4996] Release :gem: 3.1.2
From 7bffb3924417b34669a7cf3c34736027c398db1e Mon Sep 17 00:00:00 2001
From: Ben Balter
Date: Sat, 20 Feb 2016 12:54:28 -0500
Subject: [PATCH 0468/4996] add jekyll-seo-tag, jekyll-avatar, jekyll-sitemap
---
Gemfile | 3 +++
site/_config.yml | 8 ++++++++
site/_includes/news_item.html | 2 +-
site/_includes/top.html | 2 +-
site/_layouts/news_item.html | 2 +-
site/index.html | 1 -
6 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/Gemfile b/Gemfile
index bad462bce52..d78513f5cdf 100644
--- a/Gemfile
+++ b/Gemfile
@@ -81,4 +81,7 @@ group :site do
gem "html-proofer", "~> 2.0"
end
gem "jemoji"
+ gem "jekyll-sitemap"
+ gem "jekyll-seo-tag"
+ gem "jekyll-avatar"
end
diff --git a/site/_config.yml b/site/_config.yml
index 241c5b01762..fe02703acc4 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -19,7 +19,15 @@ name: Jekyll • Simple, blog-aware, static sites
description: Transform your plain text into static websites and blogs
url: http://jekyllrb.com
+twitter:
+ username: jekyllrb
+
+logo: img/logo-2x.png
+
gems:
- jekyll-feed
- jekyll-redirect-from
- jemoji
+ - jekyll-sitemap
+ - jekyll-seo-tag
+ - jekyll-avatar
diff --git a/site/_includes/news_item.html b/site/_includes/news_item.html
index aaf0521742d..3ded9925abd 100644
--- a/site/_includes/news_item.html
+++ b/site/_includes/news_item.html
@@ -14,7 +14,7 @@
{{ post.date | date_to_string }}
-
+ {% avatar {{ post.author}} size=24 %}
{{ post.author }}
diff --git a/site/_includes/top.html b/site/_includes/top.html
index 2d12d1bd929..155ffbcacaf 100644
--- a/site/_includes/top.html
+++ b/site/_includes/top.html
@@ -2,7 +2,6 @@
- {{ page.title }}
{% feed_meta %}
@@ -10,6 +9,7 @@
+ {% seo %}
+- [ ] I believe this to be a bug, not a question about using Jekyll.
+- [ ] I Read the CONTRIBUTION file at https://github.com/jekyll/jekyll/blob/master/.github/CONTRIBUTING.markdown
+- [ ] I Updated to the latest Jekyll (or) if on Github Pages to the latest `github-pages`
+---
-###### What operating system are you using?
+- [ ] I am on ***MacOS*** 10+
+- [ ] I am on ***Ubuntu*** GNU/Linux
+- [ ] I am on ***Fedora*** GNU/Linux
+- [ ] I am on ***Arch*** GNU/Linux
+- [ ] I am on ***Other*** GNU/Linux
+- [ ] I am on ***Windows*** 10+
+
-###### What did you do?
-(Please include the content causing the issue, any relevant configuration settings, and the command you ran)
+---
+- [ ] I was trying to install.
+- [ ] There is a broken Plugin API.
+- [ ] I was trying to build.
+- [ ] It was another bug.
+## My Reproduction Steps
-###### What did you expect to see?
+
+## The Output I Got
-
-###### What did you see instead?
+
From 035352feff52725656a8114f4ff85a7fae161bd2 Mon Sep 17 00:00:00 2001
From: Jordon Bedwell
Date: Thu, 28 Apr 2016 04:28:15 -0500
Subject: [PATCH 0741/4996] Update the ISSUE_TEMPLATE.md file.
* Link to jekyllrb.com as @parkr suggested.
* Add a few more directions and hints for Github Pages users who have errors.
* Add words that were missing and made stuff make no sense.
---
.github/ISSUE_TEMPLATE.md | 52 +++++++++++++++++++++++++--------------
1 file changed, 33 insertions(+), 19 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 125a851675d..5265bea4826 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,9 +1,9 @@
- [ ] I believe this to be a bug, not a question about using Jekyll.
-- [ ] I Read the CONTRIBUTION file at https://github.com/jekyll/jekyll/blob/master/.github/CONTRIBUTING.markdown
- [ ] I Updated to the latest Jekyll (or) if on Github Pages to the latest `github-pages`
+- [ ] I Read the CONTRIBUTION file at https://jekyllrb.com/docs/contributing/
+- [ ] This is a feature request.
---
-- [ ] I am on ***MacOS*** 10+
-- [ ] I am on ***Ubuntu*** GNU/Linux
-- [ ] I am on ***Fedora*** GNU/Linux
-- [ ] I am on ***Arch*** GNU/Linux
-- [ ] I am on ***Other*** GNU/Linux
-- [ ] I am on ***Windows*** 10+
-
+- [ ] I am on (or have tested on) ***Mac OS*** 10+
+- [ ] I am on (or have tested on) ***Debian/Ubuntu*** GNU/Linux
+- [ ] I am on (or have tested on) ***Fedora*** GNU/Linux
+- [ ] I am on (or have tested on) ***Arch*** GNU/Linux
+- [ ] I am on (or have tested on) ***Other*** GNU/Linux
+- [ ] I am on (or have tested on) ***Windows*** 10+
+
+
-## The Output I Got
+## The Output I Wanted
-
From d74f8d6dd941b507aa714679d0a2106c7ec657fb Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 28 Apr 2016 17:55:15 -0700
Subject: [PATCH 0742/4996] Fix spacing on the msg in Configuration#renamed_key
---
lib/jekyll/configuration.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb
index 735b2c6745d..87bfeb46015 100644
--- a/lib/jekyll/configuration.rb
+++ b/lib/jekyll/configuration.rb
@@ -286,8 +286,8 @@ def add_default_collections
def renamed_key(old, new, config, _ = nil)
if config.key?(old)
Jekyll::Deprecator.deprecation_message "The '#{old}' configuration" \
- "option has been renamed to '#{new}'. Please update your config " \
- "file accordingly."
+ " option has been renamed to '#{new}'. Please update your config" \
+ " file accordingly."
config[new] = config.delete(old)
end
end
From 19b566e6ea22548e4d2540ec56ee375ca2f2b672 Mon Sep 17 00:00:00 2001
From: Parker Moore
Date: Thu, 28 Apr 2016 18:26:29 -0700
Subject: [PATCH 0743/4996] site: use rouge instead of pygments
---
site/_config.yml | 2 +-
site/_docs/continuous-integration.md | 4 +--
site/_docs/deployment-methods.md | 14 ++++----
site/_docs/installation.md | 8 ++---
site/_docs/pages.md | 4 +--
site/_docs/posts.md | 4 +--
site/_docs/quickstart.md | 2 +-
site/_docs/structure.md | 2 +-
site/_docs/templates.md | 22 ++++++------
site/_docs/troubleshooting.md | 34 +++++++++----------
site/_docs/upgrading/0-to-2.md | 2 +-
site/_docs/upgrading/2-to-3.md | 2 +-
site/_docs/usage.md | 8 ++---
site/_docs/windows.md | 2 +-
...01-24-jekyll-3-0-0-beta1-released.markdown | 2 +-
15 files changed, 56 insertions(+), 56 deletions(-)
diff --git a/site/_config.yml b/site/_config.yml
index a7c596534ca..e284a81bedd 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -1,5 +1,5 @@
markdown: kramdown
-highlighter: pygments
+highlighter: rouge
permalink: /news/:year/:month/:day/:title/
excerpt_separator: ""
diff --git a/site/_docs/continuous-integration.md b/site/_docs/continuous-integration.md
index 15e498986c0..8a50afa768d 100644
--- a/site/_docs/continuous-integration.md
+++ b/site/_docs/continuous-integration.md
@@ -38,7 +38,7 @@ Save the commands you want to run and succeed in a file: `./script/cibuild`
### The HTML Proofer Executable
-{% highlight bash %}
+{% highlight shell %}
#!/usr/bin/env bash
set -e # halt script on error
@@ -52,7 +52,7 @@ Some options can be specified via command-line switches. Check out the
For example to avoid testing external sites, use this command:
-{% highlight bash %}
+{% highlight shell %}
$ bundle exec htmlproofer ./_site --disable-external
{% endhighlight %}
diff --git a/site/_docs/deployment-methods.md b/site/_docs/deployment-methods.md
index 7ec7546fc9b..b516c931b19 100644
--- a/site/_docs/deployment-methods.md
+++ b/site/_docs/deployment-methods.md
@@ -35,7 +35,7 @@ this](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/0
To have a remote server handle the deploy for you every time you push changes using Git, you can create a user account which has all the public keys that are authorized to deploy in its `authorized_keys` file. With that in place, setting up the post-receive hook is done as follows:
-{% highlight bash %}
+{% highlight shell %}
laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
@@ -47,7 +47,7 @@ server$ mkdir /var/www/myrepo
Next, add the following lines to hooks/post-receive and be sure Jekyll is
installed on the server:
-{% highlight bash %}
+{% highlight shell %}
GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo
@@ -61,14 +61,14 @@ exit
Finally, run the following command on any users laptop that needs to be able to
deploy using this hook:
-{% highlight bash %}
+{% highlight shell %}
laptops$ git remote add deploy deployer@example.com:~/myrepo.git
{% endhighlight %}
Deploying is now as easy as telling nginx or Apache to look at
`/var/www/myrepo` and running the following:
-{% highlight bash %}
+{% highlight shell %}
laptops$ git push deploy master
{% endhighlight %}
@@ -129,7 +129,7 @@ is to put the restriction to certificate-based authorization in
`~/.ssh/authorized_keys`. Then, launch `rrsync` and supply
it with the folder it shall have read-write access to:
-{% highlight bash %}
+{% highlight shell %}
command="$HOME/bin/rrsync ",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa