{% macro news_preview(post) %}
    {% from 'macros.twig' import container_title, avatar %}

    <div class="container news__preview" style="{% if post.user is not null %}--user-colour: {{ post.user.colour }}{% endif %}">
        <div class="news__preview__info">
            <div class="news__preview__info__background"></div>
            <div class="news__preview__info__content">
                {% if post.user.id is not null %}
                    <div class="news__preview__user">
                        <a class="news__preview__avatar" href="{{ url('user-profile', {'user': post.user.id}) }}">
                            {{ avatar(post.user.id, 60, post.user.username) }}
                        </a>

                        <div class="news__preview__user__details">
                            <a class="news__preview__username" href="{{ url('user-profile', {'user': post.user.id}) }}">{{ post.user.username }}</a>
                        </div>
                    </div>
                {% endif %}

                <a class="news__preview__category" href="{{ url('news-category', {'category': post.category.id}) }}">
                    {{ post.category.name }}
                </a>

                <div class="news__preview__date">
                    Posted
                    <time datetime="{{ post.post.createdTime|date('c') }}" title="{{ post.post.createdTime|date('r') }}">
                        {{ post.post.createdTime|time_format }}
                    </time>
                </div>
            </div>
        </div>

        <div class="news__preview__content markdown">
            <h1>{{ post.post.title }}</h1>
            <div class="news__preview__text">
                {{ post.post.firstParagraph|parse_text(2)|raw }}
            </div>
            <div class="news__preview__links">
                <a href="{{ url('news-post', {'post': post.post.id}) }}" class="news__preview__link">Continue reading</a>
                <a href="{{ url('news-post-comments', {'post': post.post.id}) }}" class="news__preview__link">
                    {{ post.comments_count < 1 ? 'No' : post.comments_count|number_format }} comment{{ post.comments_count != 1 ? 's' : '' }}
                </a>
            </div>
        </div>
    </div>
{% endmacro %}

{% macro news_post(post, category, user) %}
    {% from 'macros.twig' import avatar %}

    <div class="container news__post" style="{% if user is not null %}--accent-colour: {{ user.colour }}{% endif %}">
        <div class="news__post__info">
            <div class="news__post__info__background"></div>
            <div class="news__post__info__content">
                {% if user is not null %}
                    <div class="news__post__user">
                        <a class="news__post__avatar" href="{{ url('user-profile', {'user': user.id}) }}">
                            {{ avatar(user.id, 60, user.username) }}
                        </a>

                        <div class="news__post__user__details">
                            <a class="news__post__username" href="{{ url('user-profile', {'user': user.id}) }}">{{ user.username }}</a>
                        </div>
                    </div>
                {% endif %}

                <a class="news__post__category" href="{{ url('news-category', {'category': category.id}) }}">
                    {{ category.name }}
                </a>

                <div class="news__post__date">
                    Posted
                    <time datetime="{{ post.createdTime|date('c') }}" title="{{ post.createdTime|date('r') }}">
                        {{ post.createdTime|time_format }}
                    </time>
                </div>

                {% if post.isEdited %}
                    <div class="news__post__date">
                        Updated
                        <time datetime="{{ post.updatedTime|date('c') }}" title="{{ post.updatedTime|date('r') }}">
                            {{ post.updatedTime|time_format }}
                        </time>
                    </div>
                {% endif %}
            </div>
        </div>

        <div class="news__post__text markdown">
            <h1>{{ post.title }}</h1>
            {{ post.body|parse_text(2)|raw }}
        </div>
    </div>
{% endmacro %}
