feat: allow dual date-format (short/long)

main
Óscar 2 years ago committed by GitHub
commit eda1b27a3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,8 +16,13 @@ highlight_code = true
highlight_theme = "css"
[extra]
# If unset, uses format: "6 July 2049" ("%d %B %Y"). Don't leave it empty or dates won't appear. Either use a proper format or comment out the line.
# date_format = "%d %B %Y"
# Date format used when listing posts (main page, /blog section, tag posts list…)
# Default is "6th July 2049".
long_date_format = ""
# Date format used for blog posts.
# Default is "31st Dec 2011".
short_date_format = ""
# Custom separator used in title tag and posts metadata (between date, time to read, and tags).
separator = "•"

@ -2,9 +2,10 @@
{% import "macros/page_header.html" as macros_page_header %}
{% import "macros/page_desc.html" as macros_page_desc %}
{% import "macros/content.html" as macros_content %}
{% import "macros/cards_posts.html" as macros_cards_posts %}
{% import "macros/cards_pages.html" as macros_cards_pages %}
{% import "macros/set_title.html" as macros_set_title %}
{% import "macros/paginate.html" as macros_paginate %}
{% import "macros/format_date.html" as macros_format_date %}
<!DOCTYPE html>
<html lang = "en">

@ -14,7 +14,7 @@
{%- set show_pages = section.pages -%}
{% endif -%}
{{ macros_cards_posts::cards_posts(pages=show_pages) }}
{{ macros_cards_pages::cards_pages(pages=show_pages) }}
</main>
{% if paginator %}

@ -0,0 +1,43 @@
{% macro cards_pages(pages) %}
<div class="cards">
{%- for page in pages %}
<div class="card">
{% if page.extra.local_image %}
<img class="card-image" alt={{ page.extra.local_image }} src="{{ get_url(path=page.extra.local_image) }}">
{% elif page.extra.remote_image %}
<img class="card-image" alt={{ page.extra.remote_image }} src="{{ page.extra.remote_image }}">
{% else %}
<div class="card-image-placeholder"></div>
{% endif %}
<div class="card-info">
<h1 class="card-title">
{% if page.extra.link_to %}
<a rel="noopener noreferrer" target="_blank" href={{ page.extra.link_to }}>{{page.title}}</a>
{% else %}
<a href={{ page.permalink }}>{{page.title}}</a>
{% endif %}
</h1>
<div class="meta">
{% if page.date %}
{{ macros_format_date::format_date(date=page.date, short=false) }}
{% endif %}
{% if page.draft %}
<span class="draft-label">DRAFT</span>
{% endif %}
</div>
<div class="card-description">
{% if page.description %}
{{ page.description }}
{% endif %}
</div>
</div>
</div>
{% endfor -%}
</div>
{% endmacro cards_pages %}

@ -1,43 +0,0 @@
{% macro cards_posts(pages) %}
<div class="cards">
{%- for page in pages %}
<div class="card">
{% if page.extra.local_image %}
<img class="card-image" alt={{ page.extra.local_image }} src="{{ get_url(path=page.extra.local_image) }}">
{% elif page.extra.remote_image %}
<img class="card-image" alt={{ page.extra.remote_image }} src="{{ page.extra.remote_image }}">
{% else %}
<div class="card-image-placeholder"></div>
{% endif %}
<div class="card-info">
<h1 class="card-title">
{% if page.extra.link_to %}
<a rel="noopener noreferrer" target="_blank" href={{ page.extra.link_to }}>{{page.title}}</a>
{% else %}
<a href={{ page.permalink }}>{{page.title}}</a>
{% endif %}
</h1>
<div class="meta">
{%- if page.date %}
{{ page.date | date(format=config.extra.date_format | default (value="%d %B %Y")) }}
{% endif -%}
{% if page.draft %}
<span class="draft-label">DRAFT</span>
{% endif %}
</div>
<div class="card-description">
{% if page.description %}
{{ page.description }}
{% endif %}
</div>
</div>
</div>
{% endfor -%}
</div>
{% endmacro cards_posts %}

@ -14,7 +14,7 @@
{% endif %}
{% if page.date %}
<li>{{ page.date | date(format=config.extra.date_format | default (value="%d %B %Y")) }} {{ separator }}</li>
<li>{{ macros_format_date::format_date(date=page.date, short=true) }} {{ separator }}</li>
{% endif %}
<li title="{{ page.word_count }} words">&nbsp;{{ page.reading_time }} min read</li>
@ -31,7 +31,7 @@
{% endif %}
{% if page.updated %}
</ul><ul class="meta last-updated"><li>Last updated on {{ page.updated | date(format=config.extra.date_format | default (value="%d %B %Y")) }}</li>
</ul><ul class="meta last-updated"><li>Last updated on {{ macros_format_date::format_date(date=page.updated, short=true) }}</li>
{% endif %}
</ul>

@ -0,0 +1,33 @@
{% macro format_date(date, short) %}
{% if config.extra.short_date_format %}
{{ date | date(format=config.extra.short_date_format) }}
{% elif config.extra.long_date_format %}
{{ date | date(format=config.extra.long_date_format) }}
{% else %}
{% 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 %}
{# Return the date. #}
{% if short == true %}
{{ date | date(format="%-d") }}{{ suffix }} {{ date | date(format="%b %Y") }}
{% else %}
{{ date | date(format="%-d") }}{{ suffix }} {{ date | date(format="%B %Y") }}
{% endif %}
{% endif %}
{% endmacro %}

@ -13,7 +13,7 @@
{% if post.date %}
<div class="date">
{{ post.date | date(format=config.extra.date_format | default (value="%d %B %Y")) }}
{{ macros_format_date::format_date(date=post.date, short=false) }}
</div>
{% endif %}

@ -2,6 +2,7 @@
{% block main_content %}
<main>
{% if section.extra.section_path -%}
{% set extra_section = get_section(path=section.extra.section_path) %}
{% endif -%}
@ -10,7 +11,7 @@
{{ macros_page_desc::page_desc(desc=section.extra.header, page=section) }}
{% endif -%}
<main class="list">
<div class="list">
<div>
{{ macros_page_header::page_header(title=section.title) }}
</div>
@ -23,6 +24,7 @@
{% set max = section.extra.max_posts | default(value=999999) %}
{{ macros_list_posts::list_posts(posts=pages, max=max) }}
</div>
</main>
{% if paginator %}

Loading…
Cancel
Save