装载
{%- comment -%} 从 `tag_name` 中删除前导和尾随空格。 {%- endcomment -%} {%-assign tag_name = tag_name | strip -%} {%- comment -%} 处理 `tag_name: ''` 情况。 {%- endcomment -%} {%- if tag_name and tag_name.size < 1 -%} {%-assign tag_name = false -%} {%- endif -%} {%- if tag_name -%} <{{ tag_name }} {{- attrs | to_attrs -}} {{- additional_attrs -}} {%- if self_closing == true -%} {{- ' /' -}} {%- endif -%} > {%- endif -%} {%- 除非 self_closing == true -%} {%- ifslot -%} {%- slot -%} {%- else -%} {{- inner_html -}} {%- endifslot -%} {%- if tag_name -%} {%-endif-%} {%-endunless-%}{%- comment -%} 该组件可以生成一个 `img` 标签或者一个 `div style="background-..."`。
{%- endcomment -%} {%-assign is_global_asset = is_global_asset | default: false -%} {%- if bg -%} {%- comment -%} 背景图像 {%- endcomment -%} {%-assign tag_name = tag_name | default: 'div' -%} {%-assign self_closing = self_closing | default: false -%} {%- comment -%} 我们自己渲染属性并过滤掉“style”。 {%- endcomment -%} {%-assign attr_list = attrs | to_attrs: list: true -%} {%- capture additional_attrs -%} {%- comment -%} 包括来自上下文的属性。 {%- endcomment -%} {%- for attr in attr_list -%} {%- except attr[0] == 'style' -%} {{- ' ' -}} {{- attr[0] -}} {%- if attr[1].size > 0 -%} ="{{- attr[1] -}}" {%- endif -%} {%- endunless -%} {%- endfor -%} {{- ' ' -}} style=" {%- comment -%} 渲染背景样式。 如果我们没有获得图像,则使用 src。 {%- endcomment -%} {%- 分配 has_bg_image = false -%} {%- 分配 has_bg_size = false -%} {%- 分配 has_bg_position_x = false -%} {%- 分配 has_bg_position_y = false -%} {%- 分配 has_bg_repeat = false -%} {%- for prop in bg -%} {%- case prop[0] -%} {%- 当 'image' -%} {%- 分配 has_bg_image = true -%} {%- 当 'size' -%} {%- 分配 has_bg_size = true -%} {%- 当 'position' -%} {%- 分配 has_bg_position_x = true -%} {%- 分配 has_bg_position_y = true -%} {%- 当 'position-x' -%} {%- 分配 has_bg_position_x = true -%} {%- 当'position-y' -%} {%- 分配 has_bg_position_y = true -%} {%- 当'repeat' -%} {%- 分配 has_bg_repeat = true -%} {%- endcase -%} background-{{- prop[0] -}}: {{- prop[1] -}}; {%- endfor -%} {%- 除非 has_bg_image -%} background-image: url('{{- src | asset_url: global: is_global_asset -}}'); {%- endunless -%} {%- 除非 has_bg_size -%} background-size: cover; {%- endunless -%} {%- 除非 has_bg_position_x -%} background-position-x: center; {%- endunless -%} {%- 除非 has_bg_position_y -%} background-position-y: center; {%- endunless -%} {%- except has_bg_repeat -%} background-repeat: no-repeat; {%- endunless -%} {%- comment -%} 从 style 属性添加任何样式。 {%- endcomment -%} {{- attrs.style -}} " {%- endcapture -%} {%- comment -%} 删除 attrs 以便我们不会渲染它们两次。 {%- 分配 group_attrs = group.attrs | merge_props: class: 'listcard__group' -%} {%- 分配 tag_name = 'div' -%} {%- 如果可折叠 -%} {%- 分配 tag_name = 'details' -%} {%- endif -%} <{{ tag_name }} {{ group_attrs | to_attrs }}> {% 除非 headline == false 或 group.headline == nil 或 group.headline.size == 0 %} {% 如果可折叠 %} {% 万一 %} {{ 群组标题 }} {% 如果可折叠 %} {% endif %} {% endunless %} {% for item in group.cards %} {%- include 'cardlist/listcard/item' -%} {% endfor %} {% 除非 group.group_button_link == nil 或 group.cards.size < 2 %} {{ group.group_button_label }} {% 结束 %}{% assign card_count = forloop.index %}
{%- capture curr_class -%}
listcard__card
{%- unless item.id == nil -%}
{{- ' ' -}} listcard__card--{{ item.id }}
{%- endunless -%}
{%- unless card_class == nil or card_class.size == 0 -%}
{{- ' ' -}} listcard__card--{{ card_class }}
{%- endunless -%}
{%- endcapture -%}
{%- assign card_attrs = item.attrs | merge_props: class: curr_class -%}
{% if singlelink %}
{%- assign card_attrs = card_attrs | merge_props: href: item.ctas[0].link -%}
{% endif %}
{% if linkcard %}<a {{ card_attrs | to_attrs }}>{% elsif singlelink %}<a {{ card_attrs | to_attrs }}>{% else %}<div {{ card_attrs | to_attrs }}>{% endif %}
{%- unless headline == false or item.headline == nil or item.headline.size == 0 -%}
<h2 class="listcard__card-headline">{{ item.headline }}</h2>
{%- endunless -%}
{% unless subheadline == false or item.subheadline == nil or item.subheadline.size == 0 %}
<h3 class="listcard__card-subheadline">{{ item.subheadline }}</h3>
{% endunless %}
{% unless images == false or item.images == nil or item.images.size == 0 %}
{% if compare == true %}
<div class="listcard__card-images">
<div class="listcard__comparison comparison comparison--popup">
<figure style="background-image: url('{{ item.compare_img_1 | asset_url }}')">
<a class="listcard__card-image-link listcard__card-image-link--before" href="#view-{{ item.id }}">Before</a>
<div
class="divisor"
style="
background-image: url('{{ item.compare_img_2 | asset_url }}');
clip-path: inset(0 0 0 50%);
">
<a class="listcard__card-image-link listcard__card-image-link--after" href="#view-{{ item.id }}">After</a>
</div>
</figure>
<input type="range" min="0" max="100" value="50" class="slider">
</div>
<div id="view-{{ item.id }}" class="modal-window comparison">
<a href="#" class="modal-close">Close</a>
<div class="modal-window__wrapper">
<figure style="background-image: url('{{ item.compare_img_1 | asset_url }}')">
<span class="listcard__card-image-link listcard__card-image-link--before">Before</span>
<div
class="divisor"
style="
background-image: url('{{ item.compare_img_2 | asset_url }}');
clip-path: inset(0 0 0 50%);
">
<span class="listcard__card-image-link listcard__card-image-link--after">After</span>
</div>
</figure>
<input type="range" min="0" max="100" value="50" class="slider">
</div>
</div>
</div>
{% else %}
{% if legacy %}
<div class="listcard__card-images">
{% for image in item.images %}
{% using image %}
{%- comment -%}
We're adding a class list to the `image` data before `atom/img`.
如果 `attrs.class` 已经存在,我们的类列表将被添加到后面。
需要 `capture`,因为我们使用的是 `forloop.index` 中的数据。
如果我们想要使用没有动态数据的常量类列表,我们可以像这样内联执行: `{%-assign attrs = attrs |merge_props: class: "my-static class-list" -%}` {%-endcomment -%} {%-capture class -%} {%if image_link -%}listcard__card-image-linkablelistcard__card-image-linkable--{{forloop.index}} {%-else -%}listcard__card-imagelistcard__card-image--{{forloop.index}} {%-endif%} {%-endcapture%} {%if image_link%} {%-assign tag_name ='a' -%} {%-assign attrs = attrs |merge_props: href:image_link -%} {%endif%} {%-assign attrs = attrs | merge_props:类:类-%} {%包括“atom / img”%} {%endusing%} {%如果image.modal_img%}关闭{% using image %} {%- comment -%} 我们在 `atom/img` 之前向 `image` 数据添加一个类列表。
如果 `attrs.class` 已经存在,我们的类列表将被添加到后面。
需要 `capture`,因为我们使用的是 `forloop.index` 中的数据。
如果我们想使用没有动态数据的常量类列表,我们可以像这样内联执行:`{%-assign attrs = attrs |merge_props: class: "my-static class-list" -%}` {%-endcomment -%} {%-capture class -%}listcard__modal-imagelistcard__modal-image--{{forloop.index}} {%-endcapture -%} {%-assign attrs = attrs |merge_props: class: class -%} {%include "atom/img" %} {%endusing %} {% endif %} {% endfor %} {% 如果 图片.图片文本 %} {{image.image_text}} {% endif %} {% else %} {% for image in item.images %} {% using image %} {%- comment -%} 我们在 `atom/img` 之前向 `image` 数据添加一个类列表。
如果 `attrs.class` 已经存在,我们的类列表将被添加到后面。
需要 `capture`,因为我们使用的是 `forloop.index` 中的数据。
如果我们想要使用没有动态数据的常量类列表,我们可以像这样内联执行: `{%-assign attrs = attrs |merge_props: class: "my-static class-list" -%}` {%-endcomment -%} {%-capture class -%} {%if image_link -%}listcard__card-image-linkablelistcard__card-image-linkable--{{forloop.index}} {%-else -%}listcard__card-imagelistcard__card-image--{{forloop.index}} {%-endif%} {%-endcapture%} {%if image_link%} {%-assign tag_name ='a' -%} {%-assign attrs = attrs |merge_props: href:image_link -%} {%endif%} {%-assign attrs = attrs | merge_props:类:类-%} {%包括“atom / img”%} {%endusing%} {%如果image.image_text%} {{image.image_text}} {% endif %} {% endfor %} {%- 如果 item.images[0].modal_img -%} > <关闭 {% for image in item.images %} {% using image.modal_img %} {%- comment -%} 我们在 `atom/img` 之前向 `image` 数据添加一个类列表。
如果 `attrs.class` 已经存在,我们的类列表将被添加到后面。
需要 `capture`,因为我们使用的是 `forloop.index` 中的数据。
*不保证单个结果,并且可能因人而异。 图片可能包含模型。