2018-05-13 17:19:23 +00:00
|
|
|
{% macro post_card(article) %}
|
2018-06-12 17:05:33 +00:00
|
|
|
{% if article.author.display_name %}
|
|
|
|
{% set name = article.author.display_name %}
|
|
|
|
{% else %}
|
|
|
|
{% set name = article.author.username %}
|
|
|
|
{% endif %}
|
2018-05-13 20:33:21 +00:00
|
|
|
<div class="card">
|
2018-05-13 17:19:23 +00:00
|
|
|
<h3><a href="{{ article.url }}">{{ article.post.title }}</a></h3>
|
2018-06-12 11:57:30 +00:00
|
|
|
<main
|
2018-06-19 11:22:26 +00:00
|
|
|
<p>{{ article.post.content | safe | striptags | truncate(length=200) }}</p>
|
2018-06-12 11:57:30 +00:00
|
|
|
</main>
|
|
|
|
<p class="author">
|
2018-06-26 15:58:11 +00:00
|
|
|
{{ "By {{ link_1 }}{{ link_2 }}{{ link_3 }}{{ name | escape }}{{ link_4 }}" | _(
|
2018-06-17 19:54:59 +00:00
|
|
|
link_1='<a href="/@/',
|
|
|
|
link_2=article.author.fqn,
|
|
|
|
link_3='/">',
|
|
|
|
name=name,
|
|
|
|
link_4="</a>")
|
|
|
|
}}
|
2018-06-17 20:22:34 +00:00
|
|
|
⋅ {{ article.date | date(format="%B %e") }}
|
2018-06-12 11:57:30 +00:00
|
|
|
</p>
|
2018-05-13 17:19:23 +00:00
|
|
|
</div>
|
|
|
|
{% endmacro post_card %}
|
2018-07-19 09:14:44 +00:00
|
|
|
{% macro input(name, label, errors, form, type="text", props="", optional=false) %}
|
|
|
|
<label for="{{ name }}">
|
|
|
|
{{ label | _ }}
|
|
|
|
{% if optional %}
|
|
|
|
<small>{{ "Optional" | _ }}</small>
|
|
|
|
{% endif %}
|
|
|
|
</label>
|
2018-07-06 17:29:36 +00:00
|
|
|
{% if errors is defined and errors[name] %}
|
|
|
|
{% for err in errors[name] %}
|
2018-07-07 20:57:53 +00:00
|
|
|
<p class="error">{{ err.message | default(value="Unknown error") | _ }}</p>
|
2018-07-06 17:29:36 +00:00
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2018-07-07 20:51:48 +00:00
|
|
|
<input type="{{ type }}" id="{{ name }}" name="{{ name }}" value="{{ form[name] | default(value="") }}" {{ props | safe }}/>
|
2018-07-06 17:29:36 +00:00
|
|
|
{% endmacro input %}
|