%article.blog-post.h-entry %data.u-url{ value: url_for(blog) } %header .post-calendar{ class: "post-date-#{(blog.visible_date.year - 2007) % 4 + 1}" } %span.post-month= blog.visible_date.strftime("%^b") %span.post-day= blog.visible_date.day .blog-title %h2.p-name= link_to_unless_current blog.title, blog .post-author= blog.user.login.capitalize %ul.post-tag-3 - blog.tags.each do |tag| %li= link_to tag, tag_url(tag.name), class: "p-category" %blockquote#blog-content.entry-content.bubble.rounded.bottom.e-content - if short and blog.has_read_more = markdown(blog.short_body) = link_to "Read more...", blog - else = markdown(blog.body) %cite.bubble.blog-cite %span.p-author.h-card %strong.p-name= blog.user.login.capitalize %data.u-url{ value: root_url } on %time.dt-published{ datetime: blog.visible_date.strftime("%Y-%m-%dT%H:%M:%SZ%z") }= blog.visible_date.strftime("%B #{blog.visible_date.day.ordinalize}, %Y at %-I:%M:%S%P") .post-vote{ id: "blog-vote-section-#{blog.id}" } %span.vote-link{ id: "blog-upvote-link-#{blog.id}" }= link_to_unless (not blog.published or blog.already_upvoted?(request.remote_ip)), "👍", upvote_blog_path(blog), remote: true, rel: "nofollow", class: "blog-upvote-link", method: :post %span.post-rating{ id: "blog-rating-#{blog.id}" }= blog.upvotes - blog.downvotes %span.vote-link{ id: "blog-downvote-link-#{blog.id}" }= link_to_unless (not blog.published or blog.already_downvoted?(request.remote_ip)), "👎", downvote_blog_path(blog), remote: true, rel: "nofollow", class: "blog-downvote-link", method: :post