main
erb 29 lines 1.68 KB
Raw
1 <%# On-page SEO tags. Driven by SeoHelper + per-page content_for overrides. %>
2 <title><%= page_full_title %></title>
3 <meta name="description" content="<%= meta_description %>">
4 <meta name="robots" content="<%= meta_robots %>">
5 <link rel="canonical" href="<%= canonical_url %>">
6
7 <%# ── Open Graph ── %>
8 <meta property="og:type" content="<%= og_type %>">
9 <meta property="og:site_name" content="<%= SeoHelper::SITE_NAME %>">
10 <meta property="og:title" content="<%= content_for(:title).presence || SeoHelper::TITLE_SUFFIX %>">
11 <meta property="og:description" content="<%= meta_description %>">
12 <meta property="og:url" content="<%= canonical_url %>">
13 <meta property="og:image" content="<%= og_image_url %>">
14 <meta property="og:image:type" content="image/png">
15 <meta property="og:image:width" content="<%= SeoHelper::OG_IMAGE_WIDTH %>">
16 <meta property="og:image:height" content="<%= SeoHelper::OG_IMAGE_HEIGHT %>">
17 <meta property="og:image:alt" content="<%= content_for(:og_image_alt).presence || "#{SeoHelper::SITE_NAME} — Git hosting for the AI era" %>">
18 <meta property="og:locale" content="en_US">
19
20 <%# ── Twitter Card ── %>
21 <meta name="twitter:card" content="summary_large_image">
22 <meta name="twitter:title" content="<%= content_for(:title).presence || SeoHelper::TITLE_SUFFIX %>">
23 <meta name="twitter:description" content="<%= meta_description %>">
24 <meta name="twitter:image" content="<%= og_image_url %>">
25 <meta name="twitter:image:alt" content="<%= content_for(:og_image_alt).presence || "#{SeoHelper::SITE_NAME} — Git hosting for the AI era" %>">
26
27 <%# ── Structured data ── %>
28 <%= tag.script organization_json_ld.to_json.html_safe, type: "application/ld+json" %>
29 <%= yield :structured_data %>