lvl0-website/themes/linkita/templates/partials/page_info.html

100 lines
4.9 KiB
HTML
Raw Permalink Normal View History

2025-07-10 20:07:36 +02:00
<!-- Page Info -->
<div class="text-sm antialiased opacity-80">
{%- set is_paginator = paginator is defined %}
{%- if page.extra.page_info is defined %}
{%- set page_info = page.extra.page_info %}
{%- elif section.extra.page_info is defined %}
{%- set page_info = section.extra.page_info %}
{%- elif is_paginator %}
{%- if config.extra.languages[lang].page_info_on_paginator is defined %}
{%- set page_info = config.extra.languages[lang].page_info_on_paginator %}
{%- elif config.extra.page_info_on_paginator is defined %}
{%- set page_info = config.extra.page_info_on_paginator %}
{%- else %}
{%- set page_info = load_data(literal=`[{"when": "date"}, {"when": "reading_time"}]`, format=`json`) %}
{%- endif %}
{%- elif config.extra.languages[lang].page_info is defined %}
{%- set page_info = config.extra.languages[lang].page_info %}
{%- elif config.extra.page_info is defined %}
{%- set page_info = config.extra.page_info %}
{%- else %}
{%- set page_info = load_data(literal=`[{"when": "date"}, {"when": "date_updated", "prepend": "(", "append": ")"}, {"when": "reading_time"}]`, format=`json`) %}
{%- endif %}
{%- set date_format = config.extra.languages[lang].date_format | default(value="%F") %}
{%- set info_sep = m_i18n::tr(key=`middot`, lk=g_lang_k, d=g_trans_d) %}
{%- for info in page_info %}
{%- if info.when == "date" %}{%
if page.date %}{%
if info.prepend %}{{ info.prepend }}{% endif %}<time
datetime="{{ page.date | date(format=`%+`) }}">{%
if config.extra.languages[lang].locale %}{{
page.date | date(format=date_format, locale=config.extra.languages[lang].locale) }}{%
else %}{{ page.date | date(format=date_format) }}{% endif %}</time>
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- endif %}
{%- elif info.when == "date_updated" %}{%
if page.updated and page.updated != page.date %}{%
if info.prepend %}{{ info.prepend }}{% endif %}<time
datetime="{{ page.updated | date(format=`%+`) }}">{%
if config.extra.languages[lang].locale %}{{
page.updated | date(format=date_format, locale=config.extra.languages[lang].locale) }}{%
else %}{{ page.updated | date(format=date_format) }}{% endif %}</time>
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- endif %}
{%- elif info.when == "reading_time" %}{%
if info.prepend %}{{ info.prepend }}{% endif %}{%
set reading_time_minutes = page.reading_time % 60 %}<time
datetime="PT{{ (page.reading_time - reading_time_minutes) / 60 }}H{{ reading_time_minutes }}M0S">{{
page.reading_time }}&nbsp;{{ m_i18n::tr(key=`word_minutes`, lk=g_lang_k, d=g_trans_d) }}</time>
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- elif info.when == "word_count" %}{%
if info.prepend %}{{ info.prepend }}{% endif %}<span>{{
page.word_count }}&nbsp;{{ m_i18n::tr(key=`word_words`, lk=g_lang_k, d=g_trans_d) }}</span>
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- elif info.when == "authors" %}{%
if page.taxonomies.authors %}{% set page_authors = page.taxonomies.authors %}{%
elif page.authors %}{% set page_authors = page.authors %}{%
elif config.author %}{% set page_authors = [config.author] %}{%
else %}{% endif %}{%
if page_authors %}{%
if info.prepend %}{{ info.prepend }}{% endif %}{%
for page_author in page_authors %}{%
if not loop.first %},&nbsp;{% endif %}<span>{{
m_profiles::get_name(username=page_author) }}</span>
{%- endfor %}
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- endif %}
{%- elif info.when == "tags" %}{%
if page.taxonomies.tags %}{%
if info.prepend %}{{ info.prepend }}{% endif %}{%
for page_tag in page.taxonomies.tags %}{%
if not loop.first %}&nbsp;{% endif %}{%
if is_paginator %}<span>#{{ page_tag }}</span>{%
else %}<a
class="no-underline hover:underline"
href="{{ m_url::rel(there=get_taxonomy_url(kind=`tags`, name=page_tag, lang=lang),
here=g_here, base=g_base) }}">#{{ page_tag }}</a>{% endif %}
{%- endfor %}
{%- if info.append %}{{ info.append }}{% endif %}
{%- if not loop.last %}<span
class="mx-1">{{ info_sep | safe }}</span>{% endif %}
{%- endif %}
{%- elif info.when == "" %}{{
info.prepend | safe }}
{%- else %}{{
throw(message="page info is not valid, unknown 'when': '" ~ info.when ~ "'") }}
{%- endif %}
{%- endfor %}
</div>