JBake Templates: выделить последнее сообщение

Я новичок в JBake. Я видел по умолчанию способ создания страницы индекса.

<#list posts as post>
                <#if (post.status == "published")>
                                -- design your posts here
                </#if>
            </#list>

Это подтягивает все сообщения в порядке убывания.

Это выглядит великолепно, только с одной проблемой: я не уверен, как выделить мой последний пост.

Поэтому я хочу сделать что-то вроде

<#list posts as post>
                <#if (post.status == "published")>
                               <#if (this is latest post)>
                                           use highlighted style
                                       </#if>
                                        <#if (this is not a latest post)>
                                           use normal style
                                       </#if>
                </#if>
            </#list>

Как мне этого добиться?

1 ответ

Решение

Вот одно решение, которое работает для JBake v2.4.0:

        <#list posts as post>
            <#if (post.status == "published")>
                <#if (post_index == 0)>
                    //apply highlight style
                <#else>
                    //apply normal style
                </#if>
            </#if>
        </#list> 

Чтобы ускорить рендеринг страницы, вы можете просто использовать published_posts переменная тоже:

        <#list published_posts as post>
            <#if (post.status == "published")>
                <#if (post_index == 0)>
                    //apply highlight style
                <#else>
                    //apply normal style
                </#if>
            </#if>
        </#list> 

Если вы обновите JBake для использования Freemarker v2.3.23, вы можете использовать post?is_first вместо post_index == 0,

Другие вопросы по тегам