class Pages::Post < ::Phlex::HTML
def initialize(post)
@slug = post[:slug]
@post = post
end
def view_template
meta = @post[:data].front_matter
render ::Pages::Layout.new({ as: :blog, title: meta['title'] }, banner: meta['banner'], meta: {title: meta['title']}) {
article(class: 'prose prose-lg m-auto') {
h1 { meta['title'] }
if meta['published_on']
time(datetime: meta['published_on']) { meta['published_on'] }
else
div(class: 'flex flex-row gap-2 -my-5 items-center') {
raw safe(::Util::Heroicons.pencil_square('size-4 block'))
p { 'Draft' }
}
end
hr
raw safe Kramdown::Document.new(@post[:data].content).to_html
}
}
end
end