diff options
| author | Ken D'Ambrosio <ken@jots.org> | 2026-05-11 18:01:35 +0000 |
|---|---|---|
| committer | Ken D'Ambrosio <ken@jots.org> | 2026-05-11 18:01:35 +0000 |
| commit | c19b0854543abd5d05e0f1c0615c45464c169d29 (patch) | |
| tree | 1e0a0e8c527f599eb6efda2af7848edf0bcc0026 | |
| parent | dca6dd919cc172886fb465d51fb5cadf2a13323c (diff) | |
Add Open Graph meta tags for social media link previews
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| -rw-r--r-- | app.rb | 14 | ||||
| -rw-r--r-- | views/layout.erb | 5 |
2 files changed, 19 insertions, 0 deletions
@@ -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> |
