diff --git a/site/_docs/history.md b/site/_docs/history.md index 346dc131..98fb9bb8 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -191,6 +191,7 @@ permalink: "/docs/history/" - Allow Travis to 'parallelize' our tests ([#2859]({{ site.repository }}/issues/2859)) - Fix test for Liquid rendering in Sass ([#2856]({{ site.repository }}/issues/2856)) - Fixing "vertycal" typo in site template's `_base.scss` ([#2889]({{ site.repository }}/issues/2889)) +- Convert remaining textile test documents to markdown ([#3528]({{ site.repository }}/issues/3528)) ### Site Enhancements {: #site-enhancements-v2-4-0} diff --git a/site/_docs/plugins.md b/site/_docs/plugins.md index 9f4afb97..4958add3 100644 --- a/site/_docs/plugins.md +++ b/site/_docs/plugins.md @@ -42,12 +42,12 @@ You have 3 options for installing plugins:
- _plugins and gems + _plugins, _config.yml and Gemfile can be used simultaneously

- You may use both of the aforementioned plugin options simultaneously in the - same site if you so choose. Use of one does not restrict the use of the other + You may use any of the aforementioned plugin options simultaneously in the + same site if you so choose. Use of one does not restrict the use of the others.

diff --git a/test/test_configuration.rb b/test/test_configuration.rb index 7e14a418..8de8ac29 100644 --- a/test/test_configuration.rb +++ b/test/test_configuration.rb @@ -42,12 +42,12 @@ class TestConfiguration < JekyllUnitTest assert_equal [source_dir("_config.yml")], @config.config_files(@no_override) end should "return .yaml if it exists but .yml does not" do - mock(File).exists?(source_dir("_config.yml")) { false } - mock(File).exists?(source_dir("_config.yaml")) { true } + mock(File).exist?(source_dir("_config.yml")) { false } + mock(File).exist?(source_dir("_config.yaml")) { true } assert_equal [source_dir("_config.yaml")], @config.config_files(@no_override) end should "return .yml if both .yml and .yaml exist" do - mock(File).exists?(source_dir("_config.yml")) { true } + mock(File).exist?(source_dir("_config.yml")) { true } assert_equal [source_dir("_config.yml")], @config.config_files(@no_override) end should "return the config if given one config file" do diff --git a/test/test_document.rb b/test/test_document.rb index 56d6a671..f8b9db66 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -219,7 +219,31 @@ class TestDocument < JekyllUnitTest assert_equal "/slides/test/example-slide-1", @document.url end - should "produce the right destination" do + should "produce the right destination file" do + assert_equal @dest_file, @document.destination(dest_dir) + end + end + + context "a document in a collection with pretty permalink style" do + setup do + @site = fixture_site({ + "collections" => { + "slides" => { + "output" => true, + } + }, + }) + @site.permalink_style = :pretty + @site.process + @document = @site.collections["slides"].docs[0] + @dest_file = dest_dir("slides/example-slide-1/index.html") + end + + should "produce the right URL" do + assert_equal "/slides/example-slide-1/", @document.url + end + + should "produce the right destination file" do assert_equal @dest_file, @document.destination(dest_dir) end end diff --git a/test/test_filters.rb b/test/test_filters.rb index eec08564..82d31922 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -280,6 +280,12 @@ class TestFilters < JekyllUnitTest end context "sort filter" do + should "raise Exception when input is nil" do + err = assert_raises ArgumentError do + @filter.sort(nil) + end + assert_equal "Cannot sort a null object.", err.message + end should "return sorted numbers" do assert_equal [1, 2, 2.2, 3], @filter.sort([3, 2.2, 2, 1]) end diff --git a/test/test_page.rb b/test/test_page.rb index 9918442f..1e4d3da6 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -46,7 +46,7 @@ class TestPage < JekyllUnitTest should "create index url based on filename" do @page = setup_page('/contacts', 'index.html') - assert_equal "/contacts/index.html", @page.url + assert_equal "/contacts/", @page.url end end @@ -129,6 +129,58 @@ class TestPage < JekyllUnitTest end end + context "with date permalink style" do + setup do + @site.permalink_style = :date + end + + should "return url and destination correctly" do + @page = setup_page('contacts.html') + @dest_file = dest_dir("contacts.html") + assert_equal '/contacts.html', @page.url + assert_equal @dest_file, @page.destination(dest_dir) + end + end + + context "with custom permalink style with trailing slash" do + setup do + @site.permalink_style = "/:title/" + end + + should "return url and destination correctly" do + @page = setup_page('contacts.html') + @dest_file = dest_dir("contacts/index.html") + assert_equal '/contacts/', @page.url + assert_equal @dest_file, @page.destination(dest_dir) + end + end + + context "with custom permalink style with file extension" do + setup do + @site.permalink_style = "/:title:output_ext" + end + + should "return url and destination correctly" do + @page = setup_page('contacts.html') + @dest_file = dest_dir("contacts.html") + assert_equal '/contacts.html', @page.url + assert_equal @dest_file, @page.destination(dest_dir) + end + end + + context "with custom permalink style with no extension" do + setup do + @site.permalink_style = "/:title" + end + + should "return url and destination correctly" do + @page = setup_page('contacts.html') + @dest_file = dest_dir("contacts.html") + assert_equal '/contacts', @page.url + assert_equal @dest_file, @page.destination(dest_dir) + end + end + context "with any other permalink style" do should "return dir correctly" do @site.permalink_style = nil diff --git a/test/test_site.rb b/test/test_site.rb index e77a5ad1..ce9cbc95 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -143,7 +143,7 @@ class TestSite < JekyllUnitTest # simulate destination file deletion File.unlink dest - refute File.exists?(dest) + refute File.exist?(dest) sleep 1 @site.process @@ -369,7 +369,7 @@ class TestSite < JekyllUnitTest site = Site.new(site_configuration) site.process - file_content = site.reader.read_data_file(source_dir('_data', 'members.yaml')) + file_content = DataReader.new(site).read_data_file(source_dir('_data', 'members.yaml')) assert_equal site.data['members'], file_content assert_equal site.site_payload['site']['data']['members'], file_content diff --git a/test/test_utils.rb b/test/test_utils.rb index ddb63d4b..9d4a5a4d 100644 --- a/test/test_utils.rb +++ b/test/test_utils.rb @@ -166,4 +166,18 @@ class TestUtils < JekyllUnitTest 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) + assert_equal "/:basename:output_ext", Utils.add_permalink_suffix("/:basename", :date) + assert_equal "/:basename:output_ext", Utils.add_permalink_suffix("/:basename", :ordinal) + assert_equal "/:basename:output_ext", Utils.add_permalink_suffix("/:basename", :none) + end + + should "handle custom permalink styles" do + assert_equal "/:basename/", Utils.add_permalink_suffix("/:basename", "/:title/") + assert_equal "/:basename:output_ext", Utils.add_permalink_suffix("/:basename", "/:title:output_ext") + assert_equal "/:basename", Utils.add_permalink_suffix("/:basename", "/:title") + end + end end From 324748a5a679a2532baff91ac0d30c44a4f9f072 Mon Sep 17 00:00:00 2001 From: Martin Rogalla Date: Thu, 19 Mar 2015 14:56:00 +0100 Subject: [PATCH 23/24] Added corrections as suggested by @parkr. - Replaced occurrences of #array += with concat operations.(performance) - Corrected alignment. - Removed rebase artifact. Signed-off-by: Martin Rogalla --- lib/jekyll.rb | 12 ++++++------ lib/jekyll/reader.rb | 10 +++++----- site/_docs/history.md | 1 - test/test_site.rb | 2 +- test/test_tags.rb | 2 +- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index dc6ba753..8b5b4db0 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -49,13 +49,13 @@ module Jekyll autoload :Filters, 'jekyll/filters' autoload :FrontmatterDefaults, 'jekyll/frontmatter_defaults' autoload :Layout, 'jekyll/layout' - autoload :CollectionReader, 'jekyll/readers/dynamic/collection_reader' - autoload :DataReader, 'jekyll/readers/dynamic/data_reader' + autoload :CollectionReader, 'jekyll/readers/dynamic/collection_reader' + autoload :DataReader, 'jekyll/readers/dynamic/data_reader' autoload :LayoutReader, 'jekyll/readers/dynamic/layout_reader' - autoload :DraftReader, 'jekyll/readers/dynamic/draft_reader' - autoload :PostReader, 'jekyll/readers/dynamic/post_reader' - autoload :PageReader, 'jekyll/readers/dynamic/page_reader' - autoload :StaticFileReader, 'jekyll/readers/static/static_file_reader' + autoload :DraftReader, 'jekyll/readers/dynamic/draft_reader' + autoload :PostReader, 'jekyll/readers/dynamic/post_reader' + autoload :PageReader, 'jekyll/readers/dynamic/page_reader' + autoload :StaticFileReader, 'jekyll/readers/static/static_file_reader' autoload :LogAdapter, 'jekyll/log_adapter' autoload :Page, 'jekyll/page' autoload :PluginManager, 'jekyll/plugin_manager' diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index 51ba2ed5..59c6f110 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -51,8 +51,8 @@ module Jekyll # # Returns nothing. def retrieve_posts(dir) - site.posts += PostReader.new(site).read(dir) - site.posts += DraftReader.new(site).read(dir) if site.show_drafts + site.posts.concat(PostReader.new(site).read(dir)) + site.posts.concat(DraftReader.new(site).read(dir)) if site.show_drafts site.posts.sort! end @@ -72,7 +72,7 @@ module Jekyll # # Returns nothing. def retrieve_pages(dir, dot_pages) - site.pages += PageReader.new(site, dir).read(dot_pages) + site.pages.concat(PageReader.new(site, dir).read(dot_pages)) site.pages.sort_by!(&:name) end @@ -81,7 +81,7 @@ module Jekyll # # Returns nothing. def retrieve_static_files(dir, dot_static_files) - site.static_files += StaticFileReader.new(site, dir).read(dot_static_files) + site.static_files.concat(StaticFileReader.new(site, dir).read(dot_static_files)) site.static_files.sort_by!(&:relative_path) end @@ -110,4 +110,4 @@ module Jekyll entries.delete_if { |e| File.directory?(site.in_source_dir(base, e)) } end end -end \ No newline at end of file +end diff --git a/site/_docs/history.md b/site/_docs/history.md index 98fb9bb8..346dc131 100644 --- a/site/_docs/history.md +++ b/site/_docs/history.md @@ -191,7 +191,6 @@ permalink: "/docs/history/" - Allow Travis to 'parallelize' our tests ([#2859]({{ site.repository }}/issues/2859)) - Fix test for Liquid rendering in Sass ([#2856]({{ site.repository }}/issues/2856)) - Fixing "vertycal" typo in site template's `_base.scss` ([#2889]({{ site.repository }}/issues/2889)) -- Convert remaining textile test documents to markdown ([#3528]({{ site.repository }}/issues/3528)) ### Site Enhancements {: #site-enhancements-v2-4-0} diff --git a/test/test_site.rb b/test/test_site.rb index ce9cbc95..e120d131 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -189,7 +189,7 @@ class TestSite < JekyllUnitTest end should "read posts" do - @site.posts += PostReader.new(@site).read('') + @site.posts.concat(PostReader.new(@site).read('')) posts = Dir[source_dir('_posts', '**', '*')] posts.delete_if { |post| File.directory?(post) && !Post.valid?(post) } assert_equal posts.size - @num_invalid_posts, @site.posts.size diff --git a/test/test_tags.rb b/test/test_tags.rb index 72d3a5e1..b9f7fa10 100644 --- a/test/test_tags.rb +++ b/test/test_tags.rb @@ -13,7 +13,7 @@ class TestTags < JekyllUnitTest site = Site.new(Jekyll.configuration) if override['read_posts'] - site.posts += PostReader.new(site).read('') + site.posts.concat(PostReader.new(site).read('')) end info = { :filters => [Jekyll::Filters], :registers => { :site => site } } From 63a1ec8949358be46cce0d9bce067fe1413ceb64 Mon Sep 17 00:00:00 2001 From: Martin Jorn Rogalla Date: Fri, 20 Mar 2015 12:15:50 +0100 Subject: [PATCH 24/24] Made corrections as suggested by @mattr-. - Corrected TomDoc, added variables and fixed typos. - deprecated_rel_permalink -> relative_permalinks_are_deprecated. - Grouped calls together in @reader.read. - Removed dynamic and static reader subdirectories. - Removed unnecessary move of limit_posts. Signed-off-by: Martin Jorn Rogalla --- lib/jekyll.rb | 14 ++++---- lib/jekyll/reader.rb | 32 ++++++++++++------- .../{dynamic => }/collection_reader.rb | 0 .../readers/{dynamic => }/data_reader.rb | 0 .../readers/{dynamic => }/draft_reader.rb | 0 .../readers/{dynamic => }/layout_reader.rb | 0 .../readers/{dynamic => }/page_reader.rb | 0 .../readers/{dynamic => }/post_reader.rb | 0 .../{static => }/static_file_reader.rb | 0 lib/jekyll/site.rb | 24 +++++++------- 10 files changed, 39 insertions(+), 31 deletions(-) rename lib/jekyll/readers/{dynamic => }/collection_reader.rb (100%) rename lib/jekyll/readers/{dynamic => }/data_reader.rb (100%) rename lib/jekyll/readers/{dynamic => }/draft_reader.rb (100%) rename lib/jekyll/readers/{dynamic => }/layout_reader.rb (100%) rename lib/jekyll/readers/{dynamic => }/page_reader.rb (100%) rename lib/jekyll/readers/{dynamic => }/post_reader.rb (100%) rename lib/jekyll/readers/{static => }/static_file_reader.rb (100%) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 8b5b4db0..7506553a 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -49,13 +49,13 @@ module Jekyll autoload :Filters, 'jekyll/filters' autoload :FrontmatterDefaults, 'jekyll/frontmatter_defaults' autoload :Layout, 'jekyll/layout' - autoload :CollectionReader, 'jekyll/readers/dynamic/collection_reader' - autoload :DataReader, 'jekyll/readers/dynamic/data_reader' - autoload :LayoutReader, 'jekyll/readers/dynamic/layout_reader' - autoload :DraftReader, 'jekyll/readers/dynamic/draft_reader' - autoload :PostReader, 'jekyll/readers/dynamic/post_reader' - autoload :PageReader, 'jekyll/readers/dynamic/page_reader' - autoload :StaticFileReader, 'jekyll/readers/static/static_file_reader' + autoload :CollectionReader, 'jekyll/readers/collection_reader' + autoload :DataReader, 'jekyll/readers/data_reader' + autoload :LayoutReader, 'jekyll/readers/layout_reader' + autoload :DraftReader, 'jekyll/readers/draft_reader' + autoload :PostReader, 'jekyll/readers/post_reader' + autoload :PageReader, 'jekyll/readers/page_reader' + autoload :StaticFileReader, 'jekyll/readers/static_file_reader' autoload :LogAdapter, 'jekyll/log_adapter' autoload :Page, 'jekyll/page' autoload :PluginManager, 'jekyll/plugin_manager' diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index 59c6f110..f7a6ab48 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -27,28 +27,25 @@ module Jekyll # # Returns nothing. def read_directories(dir = '') - retrieve_posts(dir) - - # Obtain sub-directories in order to recursively read them. 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)) } - retrieve_dirs(base, dir, dot_dirs) - dot_files = (dot - dot_dirs) - - # Obtain all the pages. dot_pages = dot_files.select{ |file| Utils.has_yaml_header?(@site.in_source_dir(base,file)) } - retrieve_pages(dir, dot_pages) - - # Assume the remaining files to be static files. dot_static_files = dot_files - dot_pages + + retrieve_posts(dir) + retrieve_dirs(base, dir, dot_dirs) + retrieve_pages(dir, dot_pages) retrieve_static_files(dir, dot_static_files) end # Retrieves all the posts(posts/drafts) from the given directory # and add them to the site and sort them. # + # dir - The String representing the directory to retrieve the posts from. + # # Returns nothing. def retrieve_posts(dir) site.posts.concat(PostReader.new(site).read(dir)) @@ -58,6 +55,10 @@ module Jekyll # Recursively traverse directories with the read_directories function. # + # base - The String representing the site's base directory. + # dir - The String representing the directory to traverse down. + # dot_dirs - The Array of subdirectories in the dir. + # # Returns nothing. def retrieve_dirs(base, dir, dot_dirs) dot_dirs.map { |file| @@ -70,6 +71,9 @@ module Jekyll # Retrieve all the pages from the current directory, # add them to the site and sort them. # + # dir - The String representing the directory retrieve the pages from. + # dot_pages - The Array of pages in the dir. + # # Returns nothing. def retrieve_pages(dir, dot_pages) site.pages.concat(PageReader.new(site, dir).read(dot_pages)) @@ -79,6 +83,9 @@ module Jekyll # Retrieve all the static files from the current directory, # add them to the site and sort them. # + # dir - The directory retrieve the static files from. + # dot_static_files - The static files in the dir. + # # Returns nothing. def retrieve_static_files(dir, dot_static_files) site.static_files.concat(StaticFileReader.new(site, dir).read(dot_static_files)) @@ -91,6 +98,7 @@ module Jekyll # files such as '.htaccess'. # # entries - The Array of String file/directory entries to filter. + # base_directory - The string representing the optional base directory. # # Returns the Array of filtered entries. def filter_entries(entries, base_directory = nil) @@ -99,8 +107,8 @@ module Jekyll # Read the entries from a particular directory for processing # - # dir - The String relative path of the directory to read - # subfolder - The String directory to read + # dir - The String representing the relative path of the directory to read. + # subfolder - The String representing the directory to read. # # Returns the list of entries to process def get_entries(dir, subfolder) diff --git a/lib/jekyll/readers/dynamic/collection_reader.rb b/lib/jekyll/readers/collection_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/collection_reader.rb rename to lib/jekyll/readers/collection_reader.rb diff --git a/lib/jekyll/readers/dynamic/data_reader.rb b/lib/jekyll/readers/data_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/data_reader.rb rename to lib/jekyll/readers/data_reader.rb diff --git a/lib/jekyll/readers/dynamic/draft_reader.rb b/lib/jekyll/readers/draft_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/draft_reader.rb rename to lib/jekyll/readers/draft_reader.rb diff --git a/lib/jekyll/readers/dynamic/layout_reader.rb b/lib/jekyll/readers/layout_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/layout_reader.rb rename to lib/jekyll/readers/layout_reader.rb diff --git a/lib/jekyll/readers/dynamic/page_reader.rb b/lib/jekyll/readers/page_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/page_reader.rb rename to lib/jekyll/readers/page_reader.rb diff --git a/lib/jekyll/readers/dynamic/post_reader.rb b/lib/jekyll/readers/post_reader.rb similarity index 100% rename from lib/jekyll/readers/dynamic/post_reader.rb rename to lib/jekyll/readers/post_reader.rb diff --git a/lib/jekyll/readers/static/static_file_reader.rb b/lib/jekyll/readers/static_file_reader.rb similarity index 100% rename from lib/jekyll/readers/static/static_file_reader.rb rename to lib/jekyll/readers/static_file_reader.rb diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 30564044..9c6ef309 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -146,7 +146,7 @@ module Jekyll # # Returns nothing. def render - deprecated_rel_permalink + relative_permalinks_are_deprecated payload = site_payload collections.each do |label, collection| @@ -281,12 +281,12 @@ module Jekyll end end - # Warns the user if permanent links are relative tot the parent + # Warns the user if permanent links are relative to the parent # directory. As this is a deprecated function of Jekyll. # # Returns - def deprecated_rel_permalink - if config['relative_permalinks'] && has_relative_page? + def relative_permalinks_are_deprecated + if config['relative_permalinks'] && has_relative_page? Jekyll::Deprecator.deprecation_message "Since v2.0, permalinks for pages" + " in subfolders must be relative to the" + " site source directory, not the parent" + @@ -377,14 +377,6 @@ module Jekyll pages.any? { |page| page.uses_relative_permalinks } end - # Returns the Cleaner or creates a new Cleaner if it doesn't - # already exist. - # - # Returns The Cleaner - def site_cleaner - @site_cleaner ||= Cleaner.new(self) - end - # Limits the current posts; removes the posts which exceed the limit_posts # # Returns nothing @@ -394,5 +386,13 @@ module Jekyll self.posts = posts[-limit, limit] end end + + # Returns the Cleaner or creates a new Cleaner if it doesn't + # already exist. + # + # Returns The Cleaner + def site_cleaner + @site_cleaner ||= Cleaner.new(self) + end end end