2018-12-06 17:54:16 +00:00
|
|
|
@use plume_models::posts::Post;
|
2020-01-21 06:02:03 +00:00
|
|
|
@use crate::template_utils::*;
|
|
|
|
@use crate::routes::*;
|
2018-12-06 17:54:16 +00:00
|
|
|
|
|
|
|
@(ctx: BaseContext, article: Post)
|
|
|
|
|
2018-12-08 20:52:46 +00:00
|
|
|
<div class="card h-entry">
|
2018-12-06 17:54:16 +00:00
|
|
|
@if article.cover_id.is_some() {
|
2022-01-02 17:39:17 +00:00
|
|
|
<a class="cover-link" href="@uri!(posts::details: blog = article.get_blog_fqn(ctx.0), slug = &article.slug, responding_to = _)">
|
|
|
|
<div class="cover" style="background-image: url('@Html(article.cover_url(ctx.0).unwrap_or_default())')"></div>
|
|
|
|
</a>
|
2018-12-06 17:54:16 +00:00
|
|
|
}
|
2021-11-21 05:37:57 +00:00
|
|
|
<header dir="auto">
|
|
|
|
<h3 class="p-name">
|
|
|
|
<a class="u-url" href="@uri!(posts::details: blog = article.get_blog_fqn(ctx.0), slug = &article.slug, responding_to = _)">
|
|
|
|
@article.title
|
|
|
|
</a>
|
|
|
|
</h3>
|
2021-01-17 13:29:45 +00:00
|
|
|
@if ctx.2.clone().and_then(|u| article.is_author(ctx.0, u.id).ok()).unwrap_or(false) {
|
|
|
|
<div class="controls">
|
2021-01-20 01:39:11 +00:00
|
|
|
<a class="button" href="@uri!(posts::edit: blog = &article.get_blog_fqn(ctx.0), slug = &article.slug)">@i18n!(ctx.1, "Edit")</a>
|
2021-01-17 13:29:45 +00:00
|
|
|
</div>
|
|
|
|
}
|
|
|
|
</header>
|
2018-12-06 17:54:16 +00:00
|
|
|
<main>
|
2019-07-11 07:34:27 +00:00
|
|
|
<p class="p-summary" dir="auto">@article.subtitle</p>
|
2018-12-06 17:54:16 +00:00
|
|
|
</main>
|
2019-03-06 13:11:36 +00:00
|
|
|
<footer class="authors">
|
2020-04-12 19:29:48 +00:00
|
|
|
<div>
|
|
|
|
@Html(i18n!(ctx.1, "By {0}"; format!(
|
|
|
|
"<a class=\"p-author h-card\" href=\"{}\">{}</a>",
|
|
|
|
uri!(user::details: name = &article.get_authors(ctx.0).unwrap_or_default()[0].fqn),
|
|
|
|
escape(&article.get_authors(ctx.0).unwrap_or_default()[0].name())
|
|
|
|
)))
|
|
|
|
@if article.published {
|
|
|
|
⋅ <span class="dt-published" datetime="@article.creation_date.format("%F %T")">@article.creation_date.format("%B %e, %Y")</span>
|
|
|
|
}
|
2021-01-20 01:39:11 +00:00
|
|
|
⋅ <a href="@uri!(blogs::details: name = &article.get_blog_fqn(ctx.0), page = _)">@article.get_blog(ctx.0).unwrap().title</a>
|
2020-04-12 19:29:48 +00:00
|
|
|
⋅
|
|
|
|
</div>
|
2018-12-06 17:54:16 +00:00
|
|
|
@if !article.published {
|
2020-04-12 19:29:48 +00:00
|
|
|
<div>⋅ @i18n!(ctx.1, "Draft")</div>
|
|
|
|
} else {
|
|
|
|
<div>
|
|
|
|
<span class="likes" aria-label="@i18n!(ctx.1, "One like", "{0} likes"; article.count_likes(ctx.0).unwrap_or_default())" title="@i18n!(ctx.1, "One like", "{0} likes"; article.count_likes(ctx.0).unwrap_or_default())">
|
|
|
|
@icon!("heart") @article.count_likes(ctx.0).unwrap_or_default()
|
|
|
|
</span>
|
|
|
|
⋅
|
|
|
|
<span class="reshares" aria-label="@i18n!(ctx.1, "One like", "{0} boost"; article.count_reshares(ctx.0).unwrap_or_default())" title="@i18n!(ctx.1, "One boost", "{0} boosts"; article.count_reshares(ctx.0).unwrap_or_default())">
|
|
|
|
@icon!("repeat") @article.count_reshares(ctx.0).unwrap_or_default()
|
|
|
|
</span>
|
|
|
|
</div>
|
2018-12-06 17:54:16 +00:00
|
|
|
}
|
2019-03-06 13:11:36 +00:00
|
|
|
</footer>
|
2018-12-06 17:54:16 +00:00
|
|
|
</div>
|