diff options
Diffstat (limited to 'templates/shortcodes/image.html')
| -rw-r--r-- | templates/shortcodes/image.html | 66 |
1 files changed, 60 insertions, 6 deletions
diff --git a/templates/shortcodes/image.html b/templates/shortcodes/image.html index 4f9d3de..22b8f2d 100644 --- a/templates/shortcodes/image.html +++ b/templates/shortcodes/image.html @@ -1,7 +1,61 @@ -<picture> - {% for source in sources -%} - {% set type = source | split(pat=".") | last -%} - <source srcset="{{ config.base_url | safe}}{{ page.path | safe }}{{ source | safe }}" type="{{ 'img/' ~ type }}" /> - {% endfor -%} - <img src="{{ fpath }}" alt="{{ falt | default(value='Image') }}"{% if fw %} width="{{fw}}"{% endif %}{% if fh %} height="{{fh}}"{% endif %} loading="lazy" /> +{%- if caption %}<figure class="fi{% if class %} {{class}}{% endif %}">{% endif -%} +<picture{% if class %} class="{{class}}"{% endif %}> + {%- for src in sources %} + + {%- set video = src | split(pat="/") | last %} + {%- set dirtest = src | trim_start_matches(pat="./") %} + {%- if dirtest is containing("/") %} {%- set reldir = true %} {%- endif %} + {%- if page.path %}{%- set pagepath = page.path %}{%- elif section.path %}{%- set pagepath = section.path %}{%- endif %} + + {%- if src is starting_with("./") and reldir %}{# Relative Path #} + {%- set path = src | trim_start_matches(pat="./") | split(pat="/") | slice(end=-1) | join(sep="/") | trim_start_matches(pat="/") %} + {%- set path = path ~ "/" %} + {%- if not w or not h %} + {%- if lang != config.default_language %} + {%- set metapath = pagepath ~ path ~ video | replace(from=pagepath | truncate(length=4, end=""), to="/") %} + {%- else %} + {%- set metapath = pagepath ~ path ~ video %} + {%- endif %} + {%- set meta = get_image_metadata(path=metapath) %} + {%- set w = meta.width %} + {%- set h = meta.height %} + {%- endif %} + + {%- elif src is starting_with("/") %}{# Root Path #} + {%- set rootpath = src | split(pat="/") | slice(end=-1) | join(sep="/") %} + {%- set path = config.base_url ~ rootpath ~ "/" %} + {%- if not w or not h %} + {%- set metapath = rootpath ~ "/" ~ video %} + {%- set meta = get_image_metadata(path=metapath) %} + {%- set w = meta.width %} + {%- set h = meta.height %} + {%- endif %} + + {%- else %}{# Same Directory Path #} + {%- set path = "" %} + {%- if not w or not h %} + {%- if lang != config.default_language %} + {%- set metapath = pagepath ~ video | replace(from=pagepath | truncate(length=4, end=""), to="/") %} + {%- else %} + {%- set metapath = pagepath ~ video %} + {%- endif %} + {%- set meta = get_image_metadata(path=metapath) %} + {%- set w = meta.width %} + {%- set h = meta.height %} + {%- endif %} + + {%- endif %} + + {%- set type = src | split(pat=".") | last -%} + {%- if type is matching("^mov$") %}{%- set type = "quicktime" -%}{% endif -%} + {%- if loop.last %} + {%- if not alt %} + {%- set alt = video | split(pat=".") | first %} + {%- endif %} + <img src="{{ path | safe }}{{ video | safe }}" alt="{{ alt }}"{% if w %} width="{{w}}"{% endif %}{% if h %} height="{{h}}"{% endif %} loading="lazy" /> + {%- else %} + <source srcset="{{ path | safe }}{{ video | safe }}" type="{{ 'image/' ~ type }}" /> + {%- endif %} + {%- endfor %} </picture> +{%- if caption %}<figcaption>{{caption}}</figcaption></figure>{% endif -%} |
