{% if include.id %}
  {% assign feature_row = page.[include.id] %}
{% else %}
  {% assign feature_row = page.feature_row %}
{% endif %}

<div class="feature__wrapper">

  {% for f in feature_row %}

    {% if f.url contains "://" %}
      {% capture f_url %}{{ f.url }}{% endcapture %}
    {% else %}
      {% capture f_url %}{{ f.url | absolute_url }}{% endcapture %}
    {% endif %}

    <div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
      <div class="archive__item">
        {% if f.image_path %}
          <div class="archive__item-teaser">
            {% if f.url %}<a href="{{ f.url }}">{% endif %}
            <img src=
              {% if f.image_path contains "://" %}
                "{{ f.image_path }}"
              {% else %}
                "{{ f.image_path | absolute_url }}"
              {% endif %}
            alt="{% if f.alt %}{{ f.alt }}{% endif %}">
            {% if f.url %}</a>{% endif %}
          </div>
        {% endif %}

        <div class="archive__item-body">
          {% if f.title %}
            <a class="archive__item-title"
            {% if f.url %}
              href="{{ f.url }}"
            {% endif %}>{{ f.title }}</a>
          {% endif %}

          {% if f.excerpt %}
            <div class="archive__item-excerpt">
              {{ f.excerpt | markdownify }}
            </div>
          {% endif %}
        </div>
      </div>
    </div>
  {% endfor %}

</div>