require "phlex" require "pressa/views/icons" module Pressa module Views class PostView < Phlex::HTML def initialize(post:, site:, article_class: nil) @post = post @site = site @article_class = article_class end def view_template article(**article_attributes) do header do h2 do if @post.link_post? a(href: @post.link) { "→ #{@post.title}" } else a(href: @post.path) { @post.title } end end time { @post.formatted_date } a(href: @post.path, class: "permalink") { "∞" } end raw(safe(@post.body)) end div(class: "row clearfix") do p(class: "fin") do raw(safe(Icons.code)) end end end private def article_attributes return {} unless @article_class {class: @article_class} end end end end