aboutsummaryrefslogtreecommitdiff
path: root/templates/shortcodes/img.html
blob: f5754cebeff1374a78deed5a8d71b3b6f0212076 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{%- set img = src | split(pat="/") | last %}
{%- set dirtest = src | trim_start_matches(pat="./") %}
{%- if dirtest is containing("/") %} {%- set reldir = true %} {%- 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 = page.path ~ path ~ img | replace(from=page.path | truncate(length=4, end=""), to="/") %}
    {%- else %}
      {%- set metapath = page.path ~ path ~ img %}
    {%- 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 ~ "/" ~ img %}
    {%- 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 = page.path ~ img | replace(from=page.path | truncate(length=4, end=""), to="/") %}
    {%- else %}
      {%- set metapath = page.path ~ img %}
    {%- endif %}
    {%- set meta = get_image_metadata(path=metapath) %}
    {%- set w = meta.width %}
    {%- set h = meta.height %}
  {%- endif %}
{%- endif %}

{%- if not alt %}
  {%- set alt = img | split(pat=".") | first %}
{%- endif %}
<img src="{{ path | safe }}{{ img | safe }}"{% if class %} class="{{class}}"{% endif %}{% if alt %} alt="{{alt}}"{% endif %}{% if w %} width="{{w}}"{% endif %}{% if h %} height="{{h}}"{% endif %} loading="lazy" />