{% if display_mode == 'list' %}
<div class="list card{% if show_proj_icon%} proj_icon{% endif %}"
	{%- if columns == 2 %} style="width: 330px"{% elif columns == 3 %} style="width: 220px"{% endif %}>
  {% if accolades and show_awards_banner %}
    <div class="box notch sponsor">
      <div class="feature">{{accolades[0].award.short}}</div>
      {% if show_proj_icon and icon_url %}<img src="{{icon_url}}" alt="{{value.name}} Logo"/>{% endif %}
    </div>
  {% elif show_proj_icon and icon_url %}
    <div class="box">
      <img src="{{icon_url}}" alt="{{value.name}} Logo"/>
    </div>
  {% endif %}
  <h2><a href="{{value.url()}}">{{value.name}}</a></h2>
  <p class="desc">{% if value.summary %}{{value.summary}}{% else %}{{h.text.truncate(value.short_description, 50)}}{% endif %}</p>
  {% if show_download_button %}{{g.markdown_wiki.convert('[[download_button]]')}}{% endif %}
</div>
{% else %}
  <div class="border card">
    {% if accolades and show_awards_banner %}
      <div class="box notch sponsor">
        <div class="feature">{{accolades[0].award.short}}</div>
        {% if show_proj_icon and icon_url %}<img src="{{icon_url}}" alt="{{value.name}} Logo"/>{% endif %}
      </div>
    {% elif show_proj_icon and icon_url %}
      <div class="box">
        <img src="{{icon_url}}" alt="{{value.name}} Logo"/>
      </div>
    {% endif %}
    <h2><a href="{{value.url()}}">{{value.name}}</a></h2>
    <p class="desc">{% if value.summary %}{{value.summary}}{% else %}{{h.text.truncate(value.short_description, 50)}}{% endif %}</p>
    <div class="quik">
      {% for s in sitemap %}
        <a href="{{s.url}}" class="ui-icon-{{(s.ui_icon or 'admin').lower()}}" title="{{s.label}}"><span>{{s.label}}</span></a>
      {% endfor %}
    </div>
  </div>
{% endif %}
