26 lines
771 B
Ruby
26 lines
771 B
Ruby
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
|