mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
33 lines
750 B
Ruby
33 lines
750 B
Ruby
require "phlex"
|
|
|
|
module Pressa
|
|
module Views
|
|
class FeedPostView < Phlex::HTML
|
|
def initialize(post:, site:)
|
|
@post = post
|
|
@site = site
|
|
end
|
|
|
|
def view_template
|
|
div do
|
|
p(class: "time") { @post.formatted_date }
|
|
raw(safe(normalized_body))
|
|
p do
|
|
a(class: "permalink", href: @site.url_for(@post.path)) { "∞" }
|
|
end
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def normalized_body
|
|
@post.body.gsub(/(href|src)=(['"])(\/(?!\/)[^'"]*)\2/) do
|
|
attr = Regexp.last_match(1)
|
|
quote = Regexp.last_match(2)
|
|
path = Regexp.last_match(3)
|
|
%(#{attr}=#{quote}#{@site.url_for(path)}#{quote})
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|