this repo has no description
1{{ define "layouts/base" }} 2 <!doctype html> 3 <html lang="en" class="dark:bg-gray-900"> 4 <head> 5 <meta charset="UTF-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 7 <meta name="description" content="tightly-knit social coding"/> 8 <meta name="keywords" content="git hosting, social coding, version control, pull requests, CI/CD, code collaboration, open source, decentralized"/> 9 <meta name="htmx-config" content='{"includeIndicatorStyles": false}'> 10 <meta name="author" content="Tangled"/> 11 12 <!-- Canonical URL --> 13 <link rel="canonical" href="{{ block "canonical" . }}https://tangled.org{{ .Request.URL.Path }}{{ end }}" /> 14 15 <script defer src="/static/htmx.min.js"></script> 16 <script defer src="/static/htmx-ext-ws.min.js"></script> 17 <script defer src="/static/actor-typeahead.js" type="module"></script> 18 19 <!-- preconnect to image cdn --> 20 <link rel="preconnect" href="https://avatar.tangled.sh" /> 21 <link rel="preconnect" href="https://camo.tangled.sh" /> 22 23 <!-- RSS Feed Discovery --> 24 {{ block "rss" . }}{{ end }} 25 26 <!-- pwa manifest --> 27 <link rel="manifest" href="/pwa-manifest.json" /> 28 29 <!-- preload main font --> 30 <link rel="preload" href="/static/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin /> 31 32 <link rel="stylesheet" href="/static/tw.css?{{ cssContentHash }}" type="text/css" /> 33 <title>{{ block "title" . }}{{ end }}</title> 34 35 <!-- Structured Data --> 36 {{ block "structuredData" . }} 37 <script type="application/ld+json"> 38 { 39 "@context": "https://schema.org", 40 "@type": "Organization", 41 "name": "Tangled", 42 "url": "https://tangled.org", 43 "logo": "https://tangled.org/favicon.svg", 44 "description": "tightly-knit social coding", 45 "sameAs": [] 46 } 47 </script> 48 {{ end }} 49 50 {{ block "extrameta" . }}{{ end }} 51 </head> 52 <body class="min-h-screen flex flex-col gap-4 bg-slate-100 dark:bg-gray-900 dark:text-white transition-colors duration-200"> 53 {{ block "topbarLayout" . }} 54 <header class="w-full col-span-full md:col-span-1 md:col-start-2" style="z-index: 20;"> 55 56 {{ if .LoggedInUser }} 57 <div id="upgrade-banner" 58 hx-get="/upgradeBanner" 59 hx-trigger="load" 60 hx-swap="innerHTML"> 61 </div> 62 {{ end }} 63 {{ template "layouts/fragments/topbar" . }} 64 </header> 65 {{ end }} 66 67 {{ block "mainLayout" . }} 68 <div class="flex-grow"> 69 <div class="max-w-screen-lg mx-auto flex flex-col gap-4"> 70 {{ block "contentLayout" . }} 71 <main> 72 {{ block "content" . }}{{ end }} 73 </main> 74 {{ end }} 75 76 {{ block "contentAfterLayout" . }} 77 <main> 78 {{ block "contentAfter" . }}{{ end }} 79 </main> 80 {{ end }} 81 </div> 82 </div> 83 {{ end }} 84 85 {{ block "footerLayout" . }} 86 <footer class="mt-12"> 87 {{ template "layouts/fragments/footer" . }} 88 </footer> 89 {{ end }} 90 </body> 91 </html> 92{{ end }}