motleydev
motleydev

Reputation: 3447

Jekyll Loop breaks on second iteration

I'm looping through two products - on the post view page I pull in a secondary post (in the example, a related recipe) which parses just fine on the first product page - on the second product page just {{ post.content }} won't parse. I can hack it with {{ post.content | markdownify }} - but I'd like to know why it's breaking. Here's the relevant code:

{% for post in site.categories.recipe %}
    {% if post.products contains page.title and post.featured %}
        <div class="row">
            <div class="four columns">
            <h4>{{ post.title }}</h4>
            <ul>
                <li>Serves {{ post.serves }}</li>
               <li>Prep: {{ post.time }}</li>
                <li><a href=" ">Share</a></li>
            </ul>

            {{ post.content }}

            ...

            <!-- All tags are closed, the rest just isn't relevant -->

    {% endif %}
{% endfor %}

Upvotes: 3

Views: 1613

Answers (2)

Foobnix
Foobnix

Reputation: 759

Please find my solution with counter

<pre>

{% assign counter=0 %}

{% for post in site.posts%}

 {% if post.category == 'blog' and counter < 2 %}
 {% assign counter=counter | plus:1 %}   

     {{post.content}}

 {% endif %}

{% endfor %}

</pre>

Upvotes: 15

rachelslurs
rachelslurs

Reputation: 64

The markdownify filter is probably making it work because there might be special characters that aren't encoded in the content you're pulling from. I always forget to make my & into &amp;.

If you're using the default Markdown interpreter Maruku, here's a list of the entities that might be giving you problems and their encoded equivalent. http://maruku.rubyforge.org/entity_test.html and more info on Maruku. http://maruku.rubyforge.org/maruku.html

Upvotes: 2

Related Questions