A vibe coded tangled fork which supports pijul.
at 8fb22cb34756cc2930bb780548d45bde56cdbe65 96 lines 3.9 kB view raw
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 <link rel="icon" href="/static/logos/dolly.ico" sizes="48x48"/> 20 <link rel="icon" href="/static/logos/dolly.svg" sizes="any" type="image/svg+xml"/> 21 <link rel="apple-touch-icon" href="/static/logos/dolly.png"/> 22 23 <!-- preconnect to image cdn --> 24 <link rel="preconnect" href="https://avatar.tangled.sh" /> 25 <link rel="preconnect" href="https://camo.tangled.sh" /> 26 27 <!-- RSS Feed Discovery --> 28 {{ block "rss" . }}{{ end }} 29 30 <!-- pwa manifest --> 31 <link rel="manifest" href="/pwa-manifest.json" /> 32 33 <!-- preload main font --> 34 <link rel="preload" href="/static/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin /> 35 36 <link rel="stylesheet" href="/static/tw.css?{{ cssContentHash }}" type="text/css" /> 37 <title>{{ block "title" . }}{{ end }}</title> 38 39 <!-- Structured Data --> 40 {{ block "structuredData" . }} 41 <script type="application/ld+json"> 42 { 43 "@context": "https://schema.org", 44 "@type": "Organization", 45 "name": "Tangled", 46 "url": "https://tangled.org", 47 "logo": "https://tangled.org/favicon.svg", 48 "description": "tightly-knit social coding", 49 "sameAs": [] 50 } 51 </script> 52 {{ end }} 53 54 {{ block "extrameta" . }}{{ end }} 55 </head> 56 <body class="min-h-screen flex flex-col gap-4 bg-slate-100 dark:bg-gray-900 dark:text-white transition-colors duration-200"> 57 {{ block "topbarLayout" . }} 58 <header class="w-full col-span-full md:col-span-1 md:col-start-2" style="z-index: 20;"> 59 60 {{ if .LoggedInUser }} 61 <div id="upgrade-banner" 62 hx-get="/upgradeBanner" 63 hx-trigger="load" 64 hx-swap="innerHTML"> 65 </div> 66 {{ end }} 67 {{ template "layouts/fragments/topbar" . }} 68 </header> 69 {{ end }} 70 71 {{ block "mainLayout" . }} 72 <div class="flex-grow"> 73 <div class="max-w-screen-lg mx-auto flex flex-col gap-4"> 74 {{ block "contentLayout" . }} 75 <main> 76 {{ block "content" . }}{{ end }} 77 </main> 78 {{ end }} 79 80 {{ block "contentAfterLayout" . }} 81 <main> 82 {{ block "contentAfter" . }}{{ end }} 83 </main> 84 {{ end }} 85 </div> 86 </div> 87 {{ end }} 88 89 {{ block "footerLayout" . }} 90 <footer class="mt-12"> 91 {{ template "layouts/fragments/footer" . }} 92 </footer> 93 {{ end }} 94 </body> 95 </html> 96{{ end }}