{%- from "@cnbritain/wc-common-image/template/macro.html" import common_image -%} {%- from "@cnbritain/wc-common-picture/template/macro.html" import common_picture -%} {%- macro card_core_byline(name, prefix='By') -%}
{{ prefix }} {{ name }}
{%- endmacro -%} {%- macro card_core_description(desc) -%}

{{ desc }}

{%- endmacro -%} {%- macro card_core_image(article, image_sources, brand='default', image_crop_keys=['default'], image_gallery_order=None, lazyload_images=True, hide_image_icon=False) -%} {%- set image_orientations = image_sources|get_image_source_orientations -%} {%- set image_cls = '' -%} {%- if image_orientations|length == 1 -%} {%- if image_orientations[0] == 'landscape' -%} {%- set image_cls = '%s %s'|format(image_cls, 'c-card__image--landscape') -%} {%- elif image_orientations[0] == 'square' -%} {%- set image_cls = '%s %s'|format(image_cls, 'c-card__image--square') -%} {%- elif image_orientations[0] == 'portrait' -%} {%- set image_cls = '%s %s'|format(image_cls, 'c-card__image--portrait') -%} {%- endif -%} {%- endif -%} {%- if image_gallery_order and image_gallery_order|length > 1 -%}
{%- for image_index in image_gallery_order -%}
{%- set card_image = article['gallery']['images'][image_index]|create_crops(image_sources=image_sources, retina=True, max_width=600) -%} {%- if image_orientations|length > 1 -%} {%- set image_breakpoints = card_image|get_breakpoints_from_image_sources(image_sources) -%} {%- set picture_sources = card_image|create_picture_sources(image_breakpoints) -%} {{- common_picture(card_image, picture_sources, class='global__image', lazyload=lazyload_images) -}} {%- else -%} {{- common_image(card_image, class='global__image', lazyload=lazyload_images) -}} {%- endif -%} {%- if loop.last and article['gallery']['images']|length - 3 > 0 -%}
{{ article['gallery']['images']|length - 3 }}
{%- endif -%}
{%- endfor -%}
{%- else -%}
{%- if article['images'] is list -%} {%- set card_image = article|get_key('images')|first|create_crops(image_sources=image_sources, retina=True, max_width=600) -%} {%- else -%} {%- set card_image = article|get_key('images')|try_image_crops(image_crop_keys)|create_crops(image_sources=image_sources, retina=True, max_width=600) -%} {%- endif -%} {%- if image_orientations|length > 1 -%} {%- set image_breakpoints = card_image|get_breakpoints_from_image_sources(image_sources) -%} {%- set picture_sources = card_image|create_picture_sources(image_breakpoints) -%} {{- common_picture(card_image, picture_sources, class='global__image', lazyload=lazyload_images) -}} {%- else -%} {{- common_image(card_image, class='global__image', lazyload=lazyload_images) -}} {%- endif -%} {%- if 'type' in article and not hide_image_icon -%} {%- if article['type'] == 'gallery' -%} {%- endif -%} {%- if article['type'] == 'video' -%}
{{ "@cnbritain/wc-assets/import/%s/icons/video.svg"|format(brand)|import_svg_icon }}
{%- endif -%} {%- if article['type'] == 'podcast' -%}
{{ "@cnbritain/wc-assets/import/%s/icons/play.svg"|format(brand)|import_svg_icon }}
{%- endif -%} {%- endif -%}
{%- endif -%} {%- endmacro -%} {%- macro card_core_link(article, url=None) -%} {%- if 'ad_url' in article and article['ad_url'] -%} {{ article['title'] }} {%- elif not 'ad_url' in article -%} {%- if is_article(article) -%} {{ article['title'] }} {%- elif is_tag(article) -%} {{ article['title'] }} {%- elif url -%} {{ article['title'] }} {%- elif is_magazine(article) -%} {{ article['month']|get_month_from_int|title }} {{ article['year'] }} {%- elif is_show(article) -%} {%- endif -%} {%- endif -%} {%- endmacro -%} {%- macro card_core_meta(article, brand='default', hide_tag=False, hide_duration=True, hide_date=False) -%} {%- set has_type = 'type' in article -%} {%- endmacro -%} {%- macro card_core_review(review_info) -%} {%- endmacro -%} {%- macro card_core_separator(cls='') -%}
{%- endmacro -%} {%- macro card_core_sponsor(sponsor, prefix='In partnership with') -%}
{{ prefix }} {{ sponsor['title'] }}
{{- card_core_separator('c-card__separator--sponsor') -}} {%- endmacro -%} {%- macro card_core_title(title) -%}

{{ title }}

{%- endmacro -%} {%- macro card_core(article, cls='', brand='default', hide_author=True, hide_duration=True, hide_image_icon=True, hide_description=True, hide_tag=False, hide_date=False, theme='light', lazyload_images=True, image_sources=None, image_gallery_order=None, image_crop_keys=['default']) -%} {%- set article_sponsor = article|get_article_sponsor -%}
{{- card_core_link(article) -}}
{{- card_core_image(article, image_sources=image_sources, image_crop_keys=image_crop_keys, brand=brand, image_gallery_order=image_gallery_order, hide_image_icon=hide_image_icon, lazyload_images=lazyload_images) -}}
{%- set article_title = article['title'] -%} {%- if is_magazine(article) -%} {%- set article_title = '%s %s'|format(article['month']|get_month_from_int|title, article['year']) -%} {%- endif -%} {{- card_core_title(article_title) -}} {%- if not hide_description -%} {{- card_core_description(article['teaser_short']) -}} {%- endif -%} {{- card_core_separator() -}} {%- if 'type' in article and article['type'] == 'review' -%} {%- set review_info = article|get_review_information -%} {%- if review_info -%} {{- card_core_review(review_info) -}} {%- endif -%} {%- endif -%} {%- if not article_sponsor and not hide_author and article|get_key('profiles') and article['profiles']|length > 0 -%} {%- if is_show(article) -%} {{- card_core_byline(article['profiles'][0]['full_name'], prefix='show report by') -}} {%- else -%} {{- card_core_byline(article['profiles'][0]['full_name']) -}} {%- endif -%} {%- endif -%} {%- if article_sponsor -%} {{- card_core_sponsor(article_sponsor) -}} {%- endif -%} {{- card_core_meta(article, brand, hide_tag, hide_duration, hide_date) -}}
{%- endmacro -%} {%- macro card(article) -%} {%- set card_type = kwargs.pop('card_type', 'portrait') -%} {%- if card_type == 'portrait' -%} {{- card_portrait(article, **kwargs) -}} {%- elif card_type == 'landscape' -%} {{- card_landscape(article, **kwargs) -}} {%- elif card_type == 'switcher' -%} {{- card_switcher(article, **kwargs) -}} {%- elif card_type == 'magazine' -%} {{- card_magazine(article, **kwargs) -}} {%- elif card_type == 'inline' -%} {{- card_inline(article, **kwargs) -}} {%- elif card_type == 'thumbnail' -%} {{- card_thumbnail(article, **kwargs) -}} {%- endif -%} {%- endmacro -%} {%- macro card_portrait(article) -%} {%- set cls = '%s %s'|format('c-card--portrait', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, **kwargs) -}} {%- endmacro -%} {%- macro card_landscape(article) -%} {%- set cls = '%s %s'|format('c-card--landscape', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, **kwargs) -}} {%- endmacro -%} {%- macro card_switcher(article) -%} {%- set cls = '%s %s'|format('c-card--switcher', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, **kwargs) -}} {%- endmacro -%} {%- macro card_inline(article) -%} {%- set cls = '%s %s'|format('c-card--inline', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, **kwargs) -}} {%- endmacro -%} {%- macro card_magazine(article) -%} {%- set cls = '%s %s'|format('c-card--magazine', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, **kwargs) -}} {%- endmacro -%} {%- macro card_thumbnail(article, image_gallery_order) -%} {%- if 'gallery' in article and article['gallery'] and 'images' in article['gallery'] and article['gallery']['images'] and image_gallery_order|length <= article['gallery']['images']|length -%} {%- set cls = '%s %s'|format('c-card--thumbnail', kwargs.pop('cls', '')) -%} {{- card_core(article, cls=cls, image_gallery_order=image_gallery_order, **kwargs) -}} {%- else -%} {%- set dont_need_this = kwargs.pop('image_sources') -%} {{- card_portrait(article, image_sources=[('landscape')], **kwargs) -}} {%- endif -%} {%- endmacro -%}