feat: add option to show author in post metadata (#322)

This commit is contained in:
Óscar
2024-05-27 02:16:03 +02:00
committed by GitHub
parent 86a4e5f5f4
commit 9d49a65354
24 changed files with 157 additions and 39 deletions

View File

@@ -1,43 +1,43 @@
{% macro format_date(date, short, language_strings="") %}
{%- macro format_date(date, short, language_strings="") -%}
{# Set locale #}
{% set date_locale = macros_translate::translate(key="date_locale", default="en_GB", language_strings=language_strings) %}
{#- Set locale -#}
{%- set date_locale = macros_translate::translate(key="date_locale", default="en_GB", language_strings=language_strings) -%}
{% if config.extra.short_date_format and short %}
{%- if config.extra.short_date_format and short -%}
{{ date | date(format=config.extra.short_date_format, locale=date_locale) }}
{% elif config.extra.long_date_format and not short %}
{%- elif config.extra.long_date_format and not short -%}
{{ date | date(format=config.extra.long_date_format, locale=date_locale) }}
{% elif not config.extra.short_date_format and date_locale == "en_GB" %}
{% set day = date | date(format='%-d') | int %}
{%- elif not config.extra.short_date_format and date_locale == "en_GB" -%}
{%- set day = date | date(format='%-d') | int -%}
{% if day in [11, 12, 13] %}
{% set suffix = "th" %}
{% else %}
{% set last_digit = day % 10 %}
{% if last_digit == 1 %}
{% set suffix = "st" %}
{% elif last_digit == 2 %}
{% set suffix = "nd" %}
{% elif last_digit == 3 %}
{% set suffix = "rd" %}
{% else %}
{% set suffix = "th" %}
{% endif %}
{% endif %}
{%- if day in [11, 12, 13] -%}
{%- set suffix = "th" -%}
{%- else -%}
{%- set last_digit = day % 10 -%}
{%- if last_digit == 1 -%}
{%- set suffix = "st" -%}
{%- elif last_digit == 2 -%}
{%- set suffix = "nd" -%}
{%- elif last_digit == 3 -%}
{%- set suffix = "rd" -%}
{%- else -%}
{%- set suffix = "th" -%}
{%- endif -%}
{%- endif -%}
{# Return the date. #}
{#- Return the date. -#}
{{ date | date(format="%-d") }}{{ suffix }}
{% if short == true %}
{{ date | date(format="%b %Y") }}
{% else %}
{{ date | date(format="%B %Y") }}
{% endif %}
{% else %}
{% if short %}
{%- if short == true -%}
{{ date | date(format=" %b %Y") }}
{%- else -%}
{{ date | date(format=" %B %Y") }}
{%- endif -%}
{%- else -%}
{%- if short -%}
{{ date | date(format="%-d %b %Y", locale=date_locale) }}
{% else %}
{%- else -%}
{{ date | date(format="%d %b %Y", locale=date_locale) }}
{% endif %}
{% endif %}
{%- endif -%}
{%- endif -%}
{% endmacro %}
{%- endmacro -%}

View File

@@ -23,6 +23,7 @@
"quick_navigation_buttons",
"show_reading_time",
"show_date",
"show_author",
"show_remote_changes",
"toc",
"show_previous_next_article_links",
@@ -63,22 +64,49 @@
</h1>
<ul class="meta">
{#- Draft indicator -#}
{% if page.draft %}
<li class="draft-label">{{ macros_translate::translate(key="draft", default="DRAFT", language_strings=language_strings) }}</li>
{% endif %}
{# page settings override config settings #}
{#- Author(s) -#}
{% if page.authors or config.author and macros_settings::evaluate_setting_priority(setting="show_author", page=page, default_global_value=false) == "true" %}
{%- if page.authors -%}
{%- set author_list = page.authors -%}
{%- else -%}
{%- set author_list = [config.author] -%}
{%- endif -%}
{%- if author_list | length == 1 -%}
{%- set author_string = author_list.0 -%}
{%- else -%}
{%- set last_author = author_list | last -%}
{%- set other_authors = author_list | slice(end=-1) -%}
{%- set author_separator = macros_translate::translate(key="author_separator", default=", ", language_strings=language_strings) -%}
{%- set conjunction = macros_translate::translate(key="author_conjunction", default=" and ", language_strings=language_strings) -%}
{%- set author_string = other_authors | join(sep=author_separator) -%}
{%- set author_string = author_string ~ conjunction ~ last_author -%}
{%- endif -%}
{%- set by_author = macros_translate::translate(key="by_author", default="By $AUTHOR", language_strings=language_strings) -%}
<li>{{ by_author | replace(from="$AUTHOR", to=author_string) }}</li>
{%- set previous_visible = true -%}
{% endif %}
{#- Date -#}
{% if page.date and macros_settings::evaluate_setting_priority(setting="show_date", page=page, default_global_value=true) == "true" %}
<li>{{ macros_format_date::format_date(date=page.date, short=true, language_strings=language_strings) }}</li>
{%- if previous_visible -%}&nbsp;{{ separator }}&nbsp;{%- endif -%}<li>{{ macros_format_date::format_date(date=page.date, short=true, language_strings=language_strings) }}</li>
{#- Variable to keep track of whether we've shown a section, to avoid separators as the first element -#}
{%- set previous_visible = true -%}
{% endif %}
{#- Reading time -#}
{% if macros_settings::evaluate_setting_priority(setting="show_reading_time", page=page, default_global_value=true) == "true" %}
{%- if previous_visible -%}{{ separator }}&nbsp;{%- endif -%}<li title="{{ macros_translate::translate(key="words", number=page.word_count, default="$NUMBER words", language_strings=language_strings) }}">{{ macros_translate::translate(key="min_read", number=page.reading_time, default="$NUMBER min read", language_strings=language_strings) }}</li>
{%- if previous_visible -%}&nbsp;{{ separator }}&nbsp;{%- endif -%}<li title="{{ macros_translate::translate(key="words", number=page.word_count, default="$NUMBER words", language_strings=language_strings) }}">{{ macros_translate::translate(key="min_read", number=page.reading_time, default="$NUMBER min read", language_strings=language_strings) }}</li>
{%- set previous_visible = true -%}
{% endif %}
{#- Tags -#}
{%- if page.taxonomies and page.taxonomies.tags -%}
{%- if previous_visible -%}&nbsp;{{ separator }}&nbsp;{%- endif -%}<li>{{- macros_translate::translate(key="tags", default="tags", language_strings=language_strings) | capitalize -}}:&nbsp;</li>
{%- for tag in page.taxonomies.tags -%}
@@ -91,6 +119,7 @@
{%- set previous_visible = true -%}
{%- endif -%}
{#- Last updated on -#}
{% if page.updated %}
</ul><ul class="meta last-updated"><li>{{ macros_translate::translate(key="last_updated_on", default="Last updated on", language_strings=language_strings) }} {{ macros_format_date::format_date(date=page.updated, short=true, language_strings=language_strings) }}</li>
{# Show link to remote changes if enabled #}