| <!DOCTYPE html> |
| <html lang="en" class="h-full plausible"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta |
| name="description" |
| content="Plausible is a lightweight and open-source web analytics tool. Your website data is 100% yours and the privacy of your visitors is respected." |
| /> |
| <%= if assigns[:connect_live_socket] do %> |
| <meta name="csrf-token" content={Plug.CSRFProtection.get_csrf_token()} /> |
| <meta name="websocket-url" content={websocket_url()} /> |
| <% end %> |
| <meta name="robots" content={@conn.private.robots} /> |
| <meta |
| name="x-api-version" |
| content={Plausible.InternalStatsApiVersion.api_version()} |
| /> |
| |
| <PlausibleWeb.Components.Layout.favicon conn={@conn} /> |
| |
| <title> |
| {assigns[:title] || |
| "Plausible · Simple, privacy-friendly alternative to Google Analytics"} |
| </title> |
| <link rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} /> |
| <PlausibleWeb.Components.Layout.theme_script {Map.take(assigns, [:current_user, :theme])} /> |
| {render("_tracking.html", assigns)} |
| </head> |
| <body |
| class={[ |
| "flex flex-col bg-gray-50 dark:bg-gray-950", |
| if !assigns[:embedded] do |
| "h-full" |
| end |
| ]} |
| style={if assigns[:background], do: "background-color: #{assigns[:background]}"} |
| > |
| <%= if !assigns[:embedded] && assigns[:flash] do %> |
| {render("_flash.html", assigns)} |
| <% end %> |
| |
| <%= if !assigns[:embedded] && !assigns[:hide_header?] do %> |
| {render("_header.html", assigns)} |
| |
| <%= if !assigns[:disable_global_notices?] do %> |
| {render("_notice.html", assigns)} |
| <% end %> |
| <% end %> |
| |
| <main class="flex-1"> |
| {Map.get(assigns, :inner_layout) || @inner_content} |
| </main> |
| |
| <%= if assigns[:embedded] do %> |
| <div data-iframe-height></div> |
| <script type="text/javascript" src={Routes.static_path(@conn, "/js/embed.content.js")}> |
| </script> |
| <% end %> |
| <%= if !assigns[:hide_footer?] do %> |
| {render("_footer.html", assigns)} |
| <% end %> |
| <script type="text/javascript" src={Routes.static_path(@conn, "/js/app.js")}> |
| </script> |
| <%= if assigns[:load_dashboard_js] do %> |
| <script type="text/javascript" src={Routes.static_path(@conn, "/js/dashboard.js")}> |
| </script> |
| <% end %> |
| </body> |
| </html> |
| |