73 lines
3.6 KiB
Plaintext
Executable File
73 lines
3.6 KiB
Plaintext
Executable File
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title><%= content_for(:title) || "Aperonight - Événements et Soirées" %></title>
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
|
|
<!-- SEO Meta Tags -->
|
|
<meta name="description" content="<%= content_for(:description) || "Découvrez et réservez vos billets pour les meilleurs événements et soirées. Aperonight vous connecte aux événements incontournables près de chez vous." %>">
|
|
<meta name="keywords" content="<%= content_for(:keywords) || "événements, soirées, billets, réservation, nightlife, fêtes" %>">
|
|
<meta name="robots" content="index, follow">
|
|
<link rel="canonical" href="<%= content_for(:canonical_url) || request.original_url %>">
|
|
|
|
<!-- Open Graph / Facebook -->
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="<%= request.original_url %>">
|
|
<meta property="og:title" content="<%= content_for(:title) || "Aperonight - Événements et Soirées" %>">
|
|
<meta property="og:description" content="<%= content_for(:description) || "Découvrez et réservez vos billets pour les meilleurs événements et soirées." %>">
|
|
<meta property="og:image" content="<%= content_for(:og_image) || asset_url('aperonight-og-image.jpg') %>">
|
|
|
|
<!-- Twitter -->
|
|
<meta property="twitter:card" content="summary_large_image">
|
|
<meta property="twitter:url" content="<%= request.original_url %>">
|
|
<meta property="twitter:title" content="<%= content_for(:title) || "Aperonight - Événements et Soirées" %>">
|
|
<meta property="twitter:description" content="<%= content_for(:description) || "Découvrez et réservez vos billets pour les meilleurs événements et soirées." %>">
|
|
<meta property="twitter:image" content="<%= content_for(:og_image) || asset_url('aperonight-og-image.jpg') %>">
|
|
|
|
<%= csrf_meta_tags %>
|
|
<%= csp_meta_tag %>
|
|
<%= yield :head %>
|
|
|
|
<!-- Fonts -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
|
|
|
|
<!-- Lucide Icons loaded via npm package -->
|
|
|
|
<%# Enable PWA manifest for installable apps (make sure to enable in config/routes.rb too!) %>
|
|
<%#= tag.link rel: "manifest", href: pwa_manifest_path(format: :json) %>
|
|
<link rel="icon" href="/icon.png" type="image/png">
|
|
<link rel="icon" href="/icon.svg" type="image/svg+xml">
|
|
<link rel="apple-touch-icon" href="/icon.png">
|
|
|
|
<%# Includes all stylesheet files in app/assets/stylesheets %>
|
|
<%# stylesheet_link_tag :app, "data-turbo-track": "reload" %>
|
|
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
|
<%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
|
|
|
|
</head>
|
|
<body data-user-authenticated="<%= user_signed_in? %>" data-event-slug="<%= @event&.slug %>">
|
|
<div class="app-wrapper">
|
|
<%= render "components/header" %>
|
|
|
|
<!-- Flash messages positioned between header and content -->
|
|
<%= render "shared/flash_messages" %>
|
|
|
|
<main class="">
|
|
<div class="yield">
|
|
<%= yield %>
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="bg-neutral-800 text-neutral-300 py-8 pb-4">
|
|
<div class="container">
|
|
<%= render "components/footer" %>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html>
|