2015-09-16 3 views
1

Я новичок в JBake. Я видел стандартный способ создания индексной страницы.JBake Templates: выделить последнее сообщение

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

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

ответ

4

Вот одно решение, которое работает для 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.

+0

Хорошо, вы могли бы поделиться ссылкой для учебника, где я мог бы больше узнать об этих шаблонах. –

+1

Для Freemarker лучше всего обратиться к официальному [docs] (http://freemarker.org/docs/index.html) – jonbullock

Смежные вопросы