diff --git a/features/post_excerpts.feature b/features/post_excerpts.feature index 7344000c2b2..6267fdc6572 100644 --- a/features/post_excerpts.feature +++ b/features/post_excerpts.feature @@ -34,6 +34,25 @@ Feature: Post excerpts And I should see exactly "

content for entry1.

" in "_site/2007/12/31/entry1.html" And I should see exactly "

content for entry1.

" 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 "

/blog/assets/style.css

" in "_site/2007/12/31/entry1.html" + And I should see exactly "

/blog/assets/style.css

" 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 diff --git a/lib/jekyll/excerpt.rb b/lib/jekyll/excerpt.rb index c711a58541d..d270624c062 100644 --- a/lib/jekyll/excerpt.rb +++ b/lib/jekyll/excerpt.rb @@ -9,9 +9,12 @@ class Excerpt 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 @@ def place_in_layout? false end + def render_with_liquid? + !(coffeescript_file? || yaml_file? || !Utils.has_liquid_construct?(content)) + end + protected # Internal: Extract excerpt from the content