summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app.rb14
-rw-r--r--views/layout.erb5
2 files changed, 19 insertions, 0 deletions
diff --git a/app.rb b/app.rb
index 8cde4ff..a609f75 100644
--- a/app.rb
+++ b/app.rb
@@ -168,6 +168,20 @@ helpers do
v = s.to_s.strip
v.empty? ? nil : v
end
+
+ def og_image_url
+ first_img = Array(@entries).find { |e| e[:type] == :image }
+ if first_img
+ fr = @rel.to_s.empty? ? first_img[:name] : "#{@rel}/#{first_img[:name]}"
+ return "#{request.base_url}/thumb/#{fr}"
+ end
+ first_album = Array(@albums).first
+ if first_album&.dig(:cover)
+ cr = @rel.to_s.empty? ? "#{first_album[:name]}/#{first_album[:cover]}" : "#{@rel}/#{first_album[:name]}/#{first_album[:cover]}"
+ return "#{request.base_url}/thumb/#{cr}"
+ end
+ nil
+ end
end
# ── Public routes ──────────────────────────────────────────────────────────────
diff --git a/views/layout.erb b/views/layout.erb
index cea5df3..5f49ee6 100644
--- a/views/layout.erb
+++ b/views/layout.erb
@@ -4,6 +4,11 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><%= @title %> — Albumen</title>
+ <meta property="og:type" content="website">
+ <meta property="og:url" content="<%= request.url %>">
+ <meta property="og:title" content="<%= ERB::Util.html_escape("#{@title} — Albumen") %>">
+ <% if @desc %><meta property="og:description" content="<%= ERB::Util.html_escape(@desc) %>"><% end %>
+ <% if (og_img = og_image_url) %><meta property="og:image" content="<%= og_img %>"><% end %>
<link rel="stylesheet" href="/css/style.css?v=2">
</head>
<body>