templates/layout.html 3.4 KiB raw
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset="utf-8">
5
<meta name="viewport" content="width=device-width, initial-scale=1">
6
<title>{{if .Repo}}{{.Repo}} · {{if eq .Section "home"}}{{.Description}}{{else}}{{.Section}}{{end}}{{else}}{{.SiteTitle}}{{end}}</title>
7
<link rel="stylesheet" href="{{.BaseURL}}/style.css">
8
</head>
9
<body>
10
<div class="container">
11
{{if not .Repo}}
12
<nav class="repo-nav">
13
  <span class="repo-name"><a href="{{.BaseURL}}/" class="logo-link"><img class="logo" src="{{.BaseURL}}/radiant.svg" alt="" width="16" height="16"></a><a href="{{.BaseURL}}/">{{.SiteTitle}}</a>{{if .SiteDescription}}<span class="repo-desc desktop">{{.SiteDescription}}</span>{{end}}</span>
14
  <a href="{{.BaseURL}}/" class="tab{{if eq .Section "repositories"}} active{{end}}">repositories</a>
15
  {{if .Discussions}}<a href="{{.BaseURL}}/discussions" class="tab{{if eq .Section "forum"}} active{{end}}">discussions</a>{{end}}
16
  {{if .Discussions}}<span class="nav-auth">{{if .Handle}}<details class="avatar-menu"><summary>{{if .Avatar}}<img class="avatar" src="{{.Avatar}}" alt="" width="24" height="24">{{else}}<span class="avatar-placeholder">{{.Handle}}</span>{{end}}</summary><div class="avatar-dropdown"><span class="signed-in">{{.Handle}}</span><a href="{{.BaseURL}}/logout?return={{.BaseURL}}/" class="btn nav-btn">Sign out</a></div></details>{{else}}<a href="{{.BaseURL}}/login?return={{.BaseURL}}/" class="btn nav-btn">Sign in</a>{{end}}</span>{{end}}
17
</nav>
18
{{end}}
19
{{if .Repo}}
20
<nav class="repo-nav">
21
  <span class="repo-name"><a href="{{.BaseURL}}/" class="logo-link"><img class="logo" src="{{.BaseURL}}/radiant.svg" alt="" width="16" height="16"></a><a href="{{.BaseURL}}/{{.Repo}}/">{{.Repo}}</a>{{if .Description}}<span class="repo-desc desktop">{{.Description}}</span>{{end}}</span>
22
  <a href="{{.BaseURL}}/{{.Repo}}/" class="tab{{if eq .Section "home"}} active{{end}}">home</a>
23
  <a href="{{.BaseURL}}/{{.Repo}}/log/{{.Ref}}" class="tab{{if eq .Section "log"}} active{{end}}">log</a>
24
  <a href="{{.BaseURL}}/{{.Repo}}/refs" class="tab{{if eq .Section "refs"}} active{{end}}">refs</a>
25
  {{if .Discussions}}<a href="{{.BaseURL}}/{{.Repo}}/discussions" class="tab{{if eq .Section "discussions"}} active{{end}}">discussions</a>{{end}}
26
  {{if .CommitHash}}<a href="{{.BaseURL}}/{{.Repo}}/commit/{{.CommitHash}}" class="tab tab-mono active">{{shortHash .CommitHash}}</a>{{end}}
27
  {{if .Discussions}}<span class="nav-auth">{{if .Handle}}<details class="avatar-menu"><summary>{{if .Avatar}}<img class="avatar" src="{{.Avatar}}" alt="" width="24" height="24">{{else}}<span class="avatar-placeholder">{{.Handle}}</span>{{end}}</summary><div class="avatar-dropdown"><span class="signed-in">{{.Handle}}</span><a href="{{.BaseURL}}/logout?return={{.BaseURL}}/{{.Repo}}/" class="btn nav-btn">Sign out</a></div></details>{{else}}<a href="{{.BaseURL}}/login?return={{.BaseURL}}/{{.Repo}}/" class="btn nav-btn">Sign in</a>{{end}}</span>{{end}}
28
</nav>
29
{{end}}
30
<main>
31
{{template "content" .}}
32
</main>
33
{{if not .Repo}}
34
<footer>
35
  <p><span class="powered-by">Powered by <a href="https://code.radiant.computer/forge">Radiant Forge</a></span>{{if and .Discussions .DevMode (not .Handle)}}<span class="dev-login"><a href="{{.BaseURL}}/dev/login?return={{.BaseURL}}/">Sign in as cloudhead.io</a></span>{{end}}<span class="copyright">&copy; 2026 Radiant Computer</span></p>
36
</footer>
37
{{end}}
38
</div>
39
<script src="{{.BaseURL}}/js/hirad.js"></script>
40
<script src="{{.BaseURL}}/js/hiril.js"></script>
41
</body>
42
</html>