Liquify documents unless published == false
This commit is contained in:
		
							parent
							
								
									43de0b694f
								
							
						
					
					
						commit
						4a45407558
					
				|  | @ -140,6 +140,44 @@ Feature: Collections | ||||||
|     And I should see "Newest puppy: Fido" in "_site/index.html" |     And I should see "Newest puppy: Fido" in "_site/index.html" | ||||||
|     And the "_site/puppies/fido.html" file should exist |     And the "_site/puppies/fido.html" file should exist | ||||||
| 
 | 
 | ||||||
|  |   Scenario: Access rendered and published collection documents via Liquid | ||||||
|  |     Given I have a _puppies directory | ||||||
|  |     And I have the following documents under the puppies collection: | ||||||
|  |       | title  | date       | content             | published | | ||||||
|  |       | Rover  | 2007-12-31 | content for Rover.  | true      | | ||||||
|  |       | Figor  | 2007-12-31 | content for Figor.  | false     | | ||||||
|  |       | Snowy  | 2199-12-31 | content for Snowy.  | true      | | ||||||
|  |       | Hardy  | 2199-12-31 | content for Hardy.  | false     | | ||||||
|  |     And I have a "_config.yml" file with content: | ||||||
|  |     """ | ||||||
|  |     collections: | ||||||
|  |       puppies: | ||||||
|  |         output: true | ||||||
|  |     """ | ||||||
|  |     And I have a "index.md" page that contains "{% for puppy in site.puppies %}<div>{{ puppy.title }}</div>{% endfor %}" | ||||||
|  |     When I run jekyll build | ||||||
|  |     Then I should get a zero exit status | ||||||
|  |     And the _site directory should exist | ||||||
|  |     And I should see "<div>Rover</div>" in "_site/index.html" | ||||||
|  |     But I should see "<div>Snowy</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Figor</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Hardy</div>" in "_site/index.html" | ||||||
|  |     And the "_site/puppies/rover.html" file should exist | ||||||
|  |     And the "_site/puppies/figor.html" file should not exist | ||||||
|  |     And the "_site/puppies/snowy.html" file should not exist | ||||||
|  |     And the "_site/puppies/hardy.html" file should not exist | ||||||
|  |     When I run jekyll build --future | ||||||
|  |     Then I should get a zero exit status | ||||||
|  |     And the _site directory should exist | ||||||
|  |     And I should see "<div>Rover</div>" in "_site/index.html" | ||||||
|  |     And I should see "<div>Snowy</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Figor</div>" in "_site/index.html" | ||||||
|  |     But I should not see "<div>Hardy</div>" in "_site/index.html" | ||||||
|  |     And the "_site/puppies/rover.html" file should exist | ||||||
|  |     And the "_site/puppies/figor.html" file should not exist | ||||||
|  |     And the "_site/puppies/hardy.html" file should not exist | ||||||
|  |     But the "_site/puppies/snowy.html" file should exist | ||||||
|  | 
 | ||||||
|   Scenario: Unrendered collection with future dated document |   Scenario: Unrendered collection with future dated document | ||||||
|     Given I have a _puppies directory |     Given I have a _puppies directory | ||||||
|     And I have the following documents under the puppies collection: |     And I have the following documents under the puppies collection: | ||||||
|  | @ -187,6 +225,44 @@ Feature: Collections | ||||||
|     And I should see "Newest puppy: Fido" in "_site/index.html" |     And I should see "Newest puppy: Fido" in "_site/index.html" | ||||||
|     And the "_site/puppies/fido.html" file should not exist |     And the "_site/puppies/fido.html" file should not exist | ||||||
| 
 | 
 | ||||||
|  |   Scenario: Access unrendered but publishable collection documents via Liquid | ||||||
|  |     Given I have a _puppies directory | ||||||
|  |     And I have the following documents under the puppies collection: | ||||||
|  |       | title  | date       | content             | published | | ||||||
|  |       | Rover  | 2007-12-31 | content for Rover.  | true      | | ||||||
|  |       | Figor  | 2007-12-31 | content for Figor.  | false     | | ||||||
|  |       | Snowy  | 2199-12-31 | content for Snowy.  | true      | | ||||||
|  |       | Hardy  | 2199-12-31 | content for Hardy.  | false     | | ||||||
|  |     And I have a "_config.yml" file with content: | ||||||
|  |     """ | ||||||
|  |     collections: | ||||||
|  |       puppies: | ||||||
|  |         output: false | ||||||
|  |     """ | ||||||
|  |     And I have a "index.md" page that contains "{% for puppy in site.puppies %}<div>{{ puppy.title }}</div>{% endfor %}" | ||||||
|  |     When I run jekyll build | ||||||
|  |     Then I should get a zero exit status | ||||||
|  |     And the _site directory should exist | ||||||
|  |     And I should see "<div>Rover</div>" in "_site/index.html" | ||||||
|  |     But I should see "<div>Snowy</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Figor</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Hardy</div>" in "_site/index.html" | ||||||
|  |     And the "_site/puppies/rover.html" file should not exist | ||||||
|  |     And the "_site/puppies/figor.html" file should not exist | ||||||
|  |     And the "_site/puppies/snowy.html" file should not exist | ||||||
|  |     And the "_site/puppies/hardy.html" file should not exist | ||||||
|  |     When I run jekyll build --future | ||||||
|  |     Then I should get a zero exit status | ||||||
|  |     And the _site directory should exist | ||||||
|  |     And I should see "<div>Rover</div>" in "_site/index.html" | ||||||
|  |     And I should see "<div>Snowy</div>" in "_site/index.html" | ||||||
|  |     And I should not see "<div>Figor</div>" in "_site/index.html" | ||||||
|  |     But I should not see "<div>Hardy</div>" in "_site/index.html" | ||||||
|  |     And the "_site/puppies/rover.html" file should not exist | ||||||
|  |     And the "_site/puppies/figor.html" file should not exist | ||||||
|  |     And the "_site/puppies/snowy.html" file should not exist | ||||||
|  |     And the "_site/puppies/hardy.html" file should not exist | ||||||
|  | 
 | ||||||
|   Scenario: All the documents |   Scenario: All the documents | ||||||
|     Given I have an "index.html" page that contains "All documents: {% for doc in site.documents %}{{ doc.relative_path }} {% endfor %}" |     Given I have an "index.html" page that contains "All documents: {% for doc in site.documents %}{{ doc.relative_path }} {% endfor %}" | ||||||
|     And I have fixture collections |     And I have fixture collections | ||||||
|  |  | ||||||
|  | @ -210,12 +210,9 @@ module Jekyll | ||||||
|     private |     private | ||||||
| 
 | 
 | ||||||
|     def read_document(full_path) |     def read_document(full_path) | ||||||
|       docs << Document.new(full_path, :site => site, :collection => self).tap do |doc| |       doc = Document.new(full_path, :site => site, :collection => self) | ||||||
|       doc.read |       doc.read | ||||||
|         if !site.publisher.publish?(doc) && site.publisher.hidden_in_the_future?(doc) |       docs << doc unless doc.data["published"] == false | ||||||
|           Jekyll.logger.debug "Skip Publishing:", "#{doc.relative_path} has a future date" |  | ||||||
|         end |  | ||||||
|       end |  | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     private |     private | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue