Merge pull request #2552 from jekyll/collections-with-dots
This commit is contained in:
		
						commit
						7eb5e07e9d
					
				|  | @ -52,7 +52,7 @@ module Jekyll | |||
|     def filtered_entries | ||||
|       return Array.new unless exists? | ||||
|       Dir.chdir(directory) do | ||||
|         entry_filter.filter(entries) | ||||
|         entry_filter.filter(entries).reject { |f| File.directory?(f) } | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  | @ -105,7 +105,7 @@ module Jekyll | |||
|     # | ||||
|     # Returns a sanitized version of the label. | ||||
|     def sanitize_label(label) | ||||
|       label.gsub(/[^a-z0-9_\-]/i, '') | ||||
|       label.gsub(/[^a-z0-9_\-\.]/i, '') | ||||
|     end | ||||
| 
 | ||||
|     # Produce a representation of this Collection for use in Liquid. | ||||
|  |  | |||
|  | @ -0,0 +1,5 @@ | |||
| --- | ||||
| title: v2.4.0 | ||||
| --- | ||||
| 
 | ||||
| v2.4.0 | ||||
|  | @ -17,15 +17,15 @@ class TestCollections < Test::Unit::TestCase | |||
|     end | ||||
| 
 | ||||
|     should "sanitize the label name" do | ||||
|       assert_equal @collection.label, "etcpassword" | ||||
|       assert_equal @collection.label, "....etcpassword" | ||||
|     end | ||||
| 
 | ||||
|     should "have a sanitized relative path name" do | ||||
|       assert_equal @collection.relative_directory, "_etcpassword" | ||||
|       assert_equal @collection.relative_directory, "_....etcpassword" | ||||
|     end | ||||
| 
 | ||||
|     should "have a sanitized full path" do | ||||
|       assert_equal @collection.directory, source_dir("_etcpassword") | ||||
|       assert_equal @collection.directory, source_dir("_....etcpassword") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | @ -194,4 +194,31 @@ class TestCollections < Test::Unit::TestCase | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   context "with dots in the filenames" do | ||||
|     setup do | ||||
|       @site = fixture_site({ | ||||
|         "collections" => ["with.dots"], | ||||
|         "safe"        => true | ||||
|       }) | ||||
|       @site.process | ||||
|       @collection = @site.collections["with.dots"] | ||||
|     end | ||||
| 
 | ||||
|     should "exist" do | ||||
|       assert_not_nil @collection | ||||
|     end | ||||
| 
 | ||||
|     should "contain one document" do | ||||
|       assert_equal 2, @collection.docs.size | ||||
|     end | ||||
| 
 | ||||
|     should "allow dots in the filename" do | ||||
|       assert_equal "_with.dots", @collection.relative_directory | ||||
|     end | ||||
| 
 | ||||
|     should "read document in subfolders with dots" do | ||||
|       assert @collection.docs.any? { |d| d.path.include?("all.dots") } | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue