diff options
| -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> |
