2026-02-03 22:40:23 +00:00
|
|
|
{{define "base"}}
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en" class="h-full">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
<title>{{block "title" .}}git-pkgs proxy{{end}}</title>
|
2026-06-07 16:12:43 +01:00
|
|
|
{{if .UIBaseURL}}
|
|
|
|
|
<link rel="canonical" href="{{.UIBaseURL}}{{.CanonicalPath}}">
|
|
|
|
|
<meta property="og:url" content="{{.UIBaseURL}}{{.CanonicalPath}}">
|
|
|
|
|
<meta property="og:title" content="{{template "title" .}}">
|
|
|
|
|
<meta property="og:site_name" content="git-pkgs proxy">
|
|
|
|
|
{{end}}
|
2026-06-07 16:44:30 +01:00
|
|
|
<script src="/ui/static/vendor/tailwind.js"></script>
|
|
|
|
|
<script src="/ui/static/vendor/lucide.min.js" defer></script>
|
2026-02-03 22:40:23 +00:00
|
|
|
<script>
|
|
|
|
|
tailwind.config = { darkMode: 'class' }
|
|
|
|
|
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
|
|
|
document.documentElement.classList.add('dark')
|
|
|
|
|
}
|
2026-06-07 16:44:30 +01:00
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
if (window.lucide) lucide.createIcons({ attrs: { 'aria-hidden': 'true', focusable: 'false' } })
|
|
|
|
|
})
|
2026-02-03 22:40:23 +00:00
|
|
|
</script>
|
|
|
|
|
{{block "head" .}}{{end}}
|
|
|
|
|
</head>
|
2026-06-07 16:44:30 +01:00
|
|
|
<body class="min-h-full flex flex-col bg-gray-50 dark:bg-gray-950 text-gray-900 dark:text-gray-100">
|
2026-02-03 22:40:23 +00:00
|
|
|
{{template "header" .}}
|
|
|
|
|
|
2026-06-07 16:44:30 +01:00
|
|
|
<main class="flex-1 w-full max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
2026-02-03 22:40:23 +00:00
|
|
|
{{block "content" .}}{{end}}
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
|
|
{{template "footer" .}}
|
|
|
|
|
|
|
|
|
|
{{template "styles" .}}
|
|
|
|
|
{{block "scripts" .}}{{end}}
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
{{end}}
|