← back to NationalPaperHangers

views/partials/head.ejs

67 lines

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title><%= typeof title !== 'undefined' ? title : 'National Paper Hangers' %></title>
  <% /* Admin + auth pages must not be indexed by search engines (private surfaces) */ %>
  <% if (typeof admin !== 'undefined' && admin) { %><meta name="robots" content="noindex,nofollow"><% } %>
  <%
    var _metaDesc = (typeof metaDescription !== 'undefined' && metaDescription)
      ? metaDescription
      : 'National Paper Hangers — directory of verified luxury wallcovering installers across the United States. Search and schedule consultations with installation studios specializing in hand-painted, silk, grasscloth, and mural wallcoverings.';
    var _canonicalBase = (typeof publicUrl !== 'undefined' && publicUrl) ? publicUrl.replace(/\/+$/, '') : 'https://www.nationalpaperhangers.com';
    var _canonicalPath = (typeof canonicalPath !== 'undefined' && canonicalPath) ? canonicalPath : (typeof path !== 'undefined' ? path : '/');
    var _canonicalUrl = _canonicalBase + _canonicalPath;
  %>
  <meta name="description" content="<%= _metaDesc %>">
  <link rel="canonical" href="<%= _canonicalUrl %>">
  <% if (typeof alternateJsonUrl !== 'undefined' && alternateJsonUrl) { %>
    <link rel="alternate" type="application/json" href="<%= alternateJsonUrl %>" title="JSON results">
  <% } %>
  <meta property="og:type" content="website">
  <meta property="og:url" content="<%= _canonicalUrl %>">
  <meta property="og:site_name" content="National Paper Hangers">
  <meta property="og:title" content="<%= typeof title !== 'undefined' ? title : 'National Paper Hangers' %>">
  <meta property="og:description" content="<%= _metaDesc %>">
  <%
    // Per-page templates can pass `ogImage` (absolute path or full URL).
    // Falls back to a brand default (luxury-residential PD archive image)
    // so iMessage / Slack / Twitter previews never render image-less.
    var _ogImageRel = (typeof ogImage !== 'undefined' && ogImage) ? ogImage : '/img/og-default.jpg';
    var _ogImageAbs = /^https?:\/\//.test(_ogImageRel) ? _ogImageRel : (_canonicalBase + _ogImageRel);
  %>
  <meta property="og:image" content="<%= _ogImageAbs %>">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="<%= typeof title !== 'undefined' ? title : 'National Paper Hangers' %>">
  <meta name="twitter:description" content="<%= _metaDesc %>">
  <meta name="twitter:image" content="<%= _ogImageAbs %>">
  <meta name="theme-color" content="#0e0e0e">
  <meta name="csrf-token" content="<%= typeof csrfToken !== 'undefined' && csrfToken ? csrfToken : '' %>">
  <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=Cormorant+Garamond:wght@300;400;500;600&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="/css/theme.css">
  <link rel="stylesheet" href="/css/<%= typeof admin !== 'undefined' && admin ? 'admin' : 'public' %>.css">
  <% if (typeof bodyClass !== 'undefined' && bodyClass && /tpl-/.test(bodyClass)) { %><link rel="stylesheet" href="/css/templates.css"><% } %>
  <!-- Google Analytics 4 · G-1WZ49HYY39 · nationalpaperhangers.com -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-1WZ49HYY39"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-1WZ49HYY39');
  </script>
  <script>
    (function(){
      try {
        var t = localStorage.getItem('nph-theme');
        if (!t) t = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
        document.documentElement.setAttribute('data-theme', t);
      } catch (e) {}
    })();
  </script>
  <script src="/js/theme-toggle.js" defer></script>
</head>
<body class="<%= typeof bodyClass !== 'undefined' ? bodyClass : '' %>">