47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
% use DateTime::Format::ISO8601;
|
|
%
|
|
% use Mojo::DOM;
|
|
% use Mojo::Util;
|
|
%
|
|
% use MyRedland::Posts;
|
|
%
|
|
% layout 'default', current_slug => $current_category->{slug};
|
|
% title $current_category->{title};
|
|
<div class="description">
|
|
<h2><%= $current_category->{title} %></h2>
|
|
<%== $current_category->{description} %>
|
|
<h3>Artículos</h3>
|
|
<div class="articles">
|
|
% my ($cached_posts_by_category) = MyRedland::Posts->new->Retrieve;
|
|
% my $category_post = $cached_posts_by_category->{$current_category->{slug}};
|
|
% if (defined $category_post) {
|
|
% for my $post (@$category_post) {
|
|
<a href="/posts/<%=$post->{slug}%>">
|
|
<article><%
|
|
my $date_article = DateTime::Format::ISO8601->parse_datetime($post->{date});
|
|
$date_article->set_time_zone('Europe/Madrid');
|
|
%><p class="date"><%= ''.$date_article %></p><%
|
|
if (defined $post->{image}) {
|
|
%><img alt="Portada de <%=$post->{title}%>" src="<%=$post->{image}%>"/><%
|
|
}
|
|
%><h4><%=$post->{title}%></h4><%
|
|
my $xml = Mojo::DOM->new($post->{content});
|
|
my $text = $xml->all_text;
|
|
if (length($text) > 120) {
|
|
$text = substr($text, 0, 100).'...';
|
|
}
|
|
%><p><%=$text%></p><p class="author">Escrito por <%=$post->{author}%></p></article>
|
|
</a>
|
|
% }
|
|
% } else {
|
|
<p>Parece que aun no hay artículos.</p>
|
|
% }
|
|
|
|
</div>
|
|
<h3>Suscribete a esta categoría.</h3>
|
|
|
|
<a class="suscribe-category-rss" href="/<%=$current_category->{slug}%>.rss">
|
|
<img src="/img/rss.svg" alt="Icono de suscripción rss"/>
|
|
</a>
|
|
</div>
|