
Revamp the existing translation system, simplifying management and adding several new languages. The new system reads from TOML files in the `/i18n` directory and improves template structures. It also enhances customisation options and robustness by providing fallbacks and modularity. - Implement a new, streamlined translation macro. - Load translations from `/i18n` TOML files. - Remove redundant configuration requirements. - Refactor templates to align with new i18n system. - Add support for Hindi, Japanese, Russian, Portuguese, Chinese, Italian, German, Ukranian, Korean, and French languages. - Credit Thomas Weitzel (@thomasweitzel) for inspiration.
55 lines
2.2 KiB
HTML
55 lines
2.2 KiB
HTML
{% macro list_posts(posts, max, language_strings="") %}
|
|
|
|
<div class="bloglist-container">
|
|
{% for post in posts %}
|
|
{% if loop.index <= max %}
|
|
{% if loop.index == max %}
|
|
<section class="bloglist-row">
|
|
{% elif loop.last %}
|
|
<section class="bloglist-row">
|
|
{% else %}
|
|
<section class="bloglist-row bottom-divider">
|
|
{% endif %}
|
|
|
|
{% if post.date %}
|
|
<div class="date">
|
|
{{ macros_format_date::format_date(date=post.date, short=false, language_strings=language_strings) }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="bloglist-content">
|
|
<h2 class="bloglist-title">
|
|
<a href="{{ post.permalink }}">{{ post.title }}</a>
|
|
</h2>
|
|
|
|
{% if post.taxonomies.tags %}
|
|
<div class="bloglist-tags">
|
|
{% for tag in post.taxonomies.tags %}
|
|
<a class="tag" href="{{ get_taxonomy_url(kind='tags', name=tag, lang=lang) | safe }}">{{ tag }}</a>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="description">
|
|
{% if post.description %}
|
|
<p>{{ post.description | striptags | safe }}</p>
|
|
{% elif post.summary %}
|
|
<p>{{ post.summary | striptags | safe | trim_end_matches(pat=".") }}…</p>
|
|
{% endif %}
|
|
</div>
|
|
<a class="readmore" href={{ post.permalink }}>{{ macros_translate::translate(key="read_more", default="Read more", language_strings=language_strings) }} →</a>
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
{% if not loop.last %}
|
|
{% if loop.index == max %}
|
|
<div class="all-posts">
|
|
<a href="{{ get_url(path="blog", lang=lang) }}/">{{ macros_translate::translate(key="all_posts", default="All posts", language_strings=language_strings) }} ⟶</a>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
</div>
|
|
|
|
{% endmacro %}
|