Fix rendering Liquid constructs in excerpts (#6970)
Merge pull request 6970
This commit is contained in:
		
							parent
							
								
									d0b907c2e6
								
							
						
					
					
						commit
						a89bba3712
					
				| 
						 | 
				
			
			@ -34,6 +34,25 @@ Feature: Post excerpts
 | 
			
		|||
    And I should see exactly "<p>content for entry1.</p>" in "_site/2007/12/31/entry1.html"
 | 
			
		||||
    And I should see exactly "<p>content for entry1.</p>" in "_site/index.html"
 | 
			
		||||
 | 
			
		||||
  Scenario: An excerpt with Liquid constructs from a post with a layout
 | 
			
		||||
    Given I have an "index.html" page that contains "{% for post in site.posts %}{{ post.excerpt }}{% endfor %}"
 | 
			
		||||
    And I have a configuration file with "baseurl" set to "/blog"
 | 
			
		||||
    And I have a _posts directory
 | 
			
		||||
    And I have a _layouts directory
 | 
			
		||||
    And I have a post layout that contains "{{ page.excerpt }}"
 | 
			
		||||
    And I have the following posts:
 | 
			
		||||
      | title  | date       | layout | content                                  |
 | 
			
		||||
      | entry1 | 2007-12-31 | post   | {{ 'assets/style.css' \| relative_url }} |
 | 
			
		||||
    When I run jekyll build
 | 
			
		||||
    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
 | 
			
		||||
    And the "_site/2007/12/31/entry1.html" file should exist
 | 
			
		||||
    And I should see exactly "<p>/blog/assets/style.css</p>" in "_site/2007/12/31/entry1.html"
 | 
			
		||||
    And I should see exactly "<p>/blog/assets/style.css</p>" in "_site/index.html"
 | 
			
		||||
 | 
			
		||||
  Scenario: An excerpt from a post with a layout which has context
 | 
			
		||||
    Given I have an "index.html" page that contains "{% for post in site.posts %}{{ post.excerpt }}{% endfor %}"
 | 
			
		||||
    And I have a _posts directory
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,9 +9,12 @@ module Jekyll
 | 
			
		|||
    attr_writer   :output
 | 
			
		||||
 | 
			
		||||
    def_delegators :@doc, :site, :name, :ext, :extname,
 | 
			
		||||
                          :render_with_liquid?, :collection, :related_posts,
 | 
			
		||||
                          :collection, :related_posts,
 | 
			
		||||
                          :coffeescript_file?, :yaml_file?,
 | 
			
		||||
                          :url, :next_doc, :previous_doc
 | 
			
		||||
 | 
			
		||||
    private :coffeescript_file?, :yaml_file?
 | 
			
		||||
 | 
			
		||||
    # Initialize this Excerpt instance.
 | 
			
		||||
    #
 | 
			
		||||
    # doc - The Document.
 | 
			
		||||
| 
						 | 
				
			
			@ -84,6 +87,10 @@ module Jekyll
 | 
			
		|||
      false
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def render_with_liquid?
 | 
			
		||||
      !(coffeescript_file? || yaml_file? || !Utils.has_liquid_construct?(content))
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    protected
 | 
			
		||||
 | 
			
		||||
    # Internal: Extract excerpt from the content
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue