layout.gohtml (3317B)
1 {{define "layout"}} 2 <!doctype html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>{{.Title}} | {{.About.Name}}</title> 8 <meta name="description" content="{{.Description}}"> 9 <link rel="canonical" href="{{tabURL .ActiveTab}}"> 10 <link rel="alternate" hreflang="en" href="{{tabURL .ActiveTab}}"> 11 <link rel="alternate" hreflang="x-default" href="{{tabURL .ActiveTab}}"> 12 <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin="anonymous"> 13 <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"> 14 <link rel="preload" href="https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5.0.18/files/jetbrains-mono-latin-400-normal.woff2" as="font" type="font/woff2" crossorigin="anonymous"> 15 <meta property="og:type" content="website"> 16 <meta property="og:url" content="{{tabURL .ActiveTab}}"> 17 <meta property="og:title" content="{{.Title}} | {{.About.Name}}"> 18 <meta property="og:description" content="{{.Description}}"> 19 <meta property="og:image" content="https://www.prime8.dev/static/me.jpg"> 20 <meta property="og:image:width" content="1200"> 21 <meta property="og:image:height" content="630"> 22 <meta property="og:site_name" content="{{.About.Name}}"> 23 <meta property="og:locale" content="en_US"> 24 <meta name="twitter:card" content="summary_large_image"> 25 <meta name="twitter:url" content="{{tabURL .ActiveTab}}"> 26 <meta name="twitter:title" content="{{.Title}} | {{.About.Name}}"> 27 <meta name="twitter:description" content="{{.Description}}"> 28 <meta name="twitter:image" content="https://www.prime8.dev/static/me.jpg"> 29 <meta name="author" content="{{.About.Name}}"> 30 <meta name="robots" content="index, follow"> 31 <meta name="theme-color" content="#0d0d0d"> 32 <link rel="icon" type="image/png" href="/static/favicon.png"> 33 <link rel="apple-touch-icon" href="/static/favicon.png"> 34 <link rel="manifest" href="/static/site.webmanifest"> 35 <script defer src="https://metrics.prime8.dev/script.js" data-website-id="d3032378-7959-4411-92ec-f67e20399fe4"></script> 36 <script src="https://unpkg.com/htmx.org@2.0.4" integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+" crossorigin="anonymous"></script> 37 <script src="https://unpkg.com/htmx-ext-preload@2.1.0/preload.js" crossorigin="anonymous"></script> 38 <style>{{inlineCSS "layout.css"}}</style> 39 </head> 40 <body> 41 <div id="app" data-boot-title="{{.About.Name}}" data-boot-subtitle="www.prime8.dev" hx-ext="preload"> 42 {{template "header" .}} 43 <main id="content"> 44 {{if eq .ContentTemplate "about"}} 45 {{template "about" .}} 46 {{else if eq .ContentTemplate "projects"}} 47 {{template "projects" .}} 48 {{else if eq .ContentTemplate "experience"}} 49 {{template "experience" .}} 50 {{else if eq .ContentTemplate "blog"}} 51 {{template "blog" .}} 52 {{end}} 53 </main> 54 {{template "footer" .}} 55 </div> 56 57 {{template "lightbox" .}} 58 59 <script src="/static/app.js" defer></script> 60 <script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"{{.About.Name}}"}</script> 61 <script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"{{.About.Name}}","url":"https://www.prime8.dev"}</script> 62 </body> 63 </html> 64 {{end}}