OXYGENHUB
# 76f262e1a666 oxygenhub / templates / base.html
5.0 KiB · HTML · last changed Theme switch, auto theme, and a highlighting fix 1 month ago source blame history raw
d23464c0 Andy McCall ↶ 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>{% block title %}{{ shell.site }}{% endblock %} · {{ shell.site }}</title>
7
<link rel="stylesheet" href="/style.css">
8
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
c40c2d3e Andy McCall ↶ 9
<script>/* Theme before first paint: the theme cookie (dark, light or auto; dark when unset), auto following the system. */(function(){var d=document.documentElement,m=document.cookie.match(/(?:^|; )theme=(light|dark|auto)/),p=m?m[1]:"dark",q=window.matchMedia&&matchMedia("(prefers-color-scheme: light)");function a(){d.dataset.theme=p==="auto"?(q&&q.matches?"light":"dark"):p;}d.dataset.themePref=p;a();if(q&&q.addEventListener)q.addEventListener("change",function(){if(d.dataset.themePref==="auto")d.dataset.theme=q.matches?"light":"dark";});})();</script>
d23464c0 Andy McCall ↶ 10
</head>
11
<body{% block bodyattrs %}{% endblock %}>
12
<header>
5c6eb1fe Andy McCall ↶ 13
  <a class="brand" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-24 -12 48 24" width="48" height="24" aria-hidden="true"><defs><linearGradient id="oxyGradH" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#00F0FF"/><stop offset="100%" stop-color="#0072FF"/></linearGradient></defs><path d="M -11 -6 L 11 -6" stroke="url(#oxyGradH)" stroke-width="3" stroke-linecap="round"/><path d="M -11 6 L 11 6" stroke="url(#oxyGradH)" stroke-width="3" stroke-linecap="round"/><circle cx="-11" cy="0" r="10" fill="none" stroke="url(#oxyGradH)" stroke-width="3"/><circle cx="-11" cy="0" r="3.5" fill="#00F0FF"/><circle cx="11" cy="0" r="10" fill="none" stroke="url(#oxyGradH)" stroke-width="3"/><circle cx="11" cy="0" r="3.5" fill="#FFFFFF"/></svg><span class="px">OXYGEN<em>HUB</em></span></a>
d23464c0 Andy McCall ↶ 14
  <form class="find" action="/search" method="get" role="search"><input type="search" name="q" placeholder="Search…" aria-label="Search" autocomplete="off"></form>
15
  <nav>
c40c2d3e Andy McCall ↶ 16
    <button type="button" class="theme-toggle" data-theme-toggle aria-label="Theme" title="Theme"><span aria-hidden="true">◐</span></button>
19bb31ff Andy McCall ↶ 17
    {% if let Some(u) = shell.user %}
18
    <a class="go" href="/new" title="New repository">+ NEW</a>
18e381ea Andy McCall ↶ 19
    <a class="bell" href="/notifications" title="Notifications">✉{% if shell.unread > 0 %}<span class="count">{{ shell.unread }}</span>{% endif %}</a>
19bb31ff Andy McCall ↶ 20
    <a class="me" href="/{{ u }}">{{ u }}</a>
21
    <form class="inline" method="post" action="/logout"><input type="hidden" name="_csrf" value="{{ shell.csrf }}"><button>SIGN OUT</button></form>
22
    {% else %}
23
    <a class="go" href="/login">SIGN IN</a>
24
    <a class="go" href="/register">REGISTER</a>
25
    {% endif %}
d23464c0 Andy McCall ↶ 26
  </nav>
27
</header>
28
<div class="band">
25ab8c73 Andy McCall ↶ 29
  <a href="/">{% if shell.user.is_some() %}Dashboard{% else %}Repositories{% endif %}</a>
d23464c0 Andy McCall ↶ 30
  <a href="/explore">Explore</a>
18e381ea Andy McCall ↶ 31
  {% if shell.user.is_some() %}<a href="/notifications">Notifications</a><a href="/settings">Settings</a>{% endif %}
d23464c0 Andy McCall ↶ 32
  <span class="grow"></span>
19bb31ff Andy McCall ↶ 33
  {% if shell.is_admin %}<a class="admin" href="/admin">Admin</a>{% endif %}
d23464c0 Andy McCall ↶ 34
  <a class="dim" href="/{{ shell.version }}" title="Oxygenhub {{ shell.version }}" tabindex="-1">v{{ shell.version }}</a>
35
</div>
36
{% block tabs %}{% endblock %}
37
<main{% block mainclass %}{% endblock %}>
38
{% block content %}{% endblock %}
39
</main>
40
<footer>
41
  <div class="foot">
42
    <div>
5c6eb1fe Andy McCall ↶ 43
      <a class="brand" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-24 -12 48 24" width="48" height="24" aria-hidden="true"><defs><linearGradient id="oxyGradF" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#00F0FF"/><stop offset="100%" stop-color="#0072FF"/></linearGradient></defs><path d="M -11 -6 L 11 -6" stroke="url(#oxyGradF)" stroke-width="3" stroke-linecap="round"/><path d="M -11 6 L 11 6" stroke="url(#oxyGradF)" stroke-width="3" stroke-linecap="round"/><circle cx="-11" cy="0" r="10" fill="none" stroke="url(#oxyGradF)" stroke-width="3"/><circle cx="-11" cy="0" r="3.5" fill="#00F0FF"/><circle cx="11" cy="0" r="10" fill="none" stroke="url(#oxyGradF)" stroke-width="3"/><circle cx="11" cy="0" r="3.5" fill="#FFFFFF"/></svg><span class="px">OXYGEN<em>HUB</em></span></a>
d23464c0 Andy McCall ↶ 44
      <p class="small">{{ shell.site }} · a forge for Oxygen repositories. Nothing here is inferred: what a page says, the object store says.</p>
45
    </div>
46
    <div class="cols">
47
      <div><h3>Use</h3><a href="/explore">Explore</a><a href="/api/v1/repos">API</a><a href="/.well-known/oxyhub-key">Hub key</a></div>
48
      <div><h3>Keys</h3><span class="small"><kbd>/</kbd> search · <kbd>g</kbd><kbd>c</kbd> code · <kbd>g</kbd><kbd>h</kbd> history · <kbd>?</kbd> help</span></div>
49
    </div>
50
  </div>
51
</footer>
52
<div id="keys" class="sheet" hidden>
53
  <h2>Keyboard</h2>
54
  <table><tr><td><kbd>/</kbd></td><td>Search</td></tr><tr><td><kbd>g</kbd> <kbd>c</kbd></td><td>Code</td></tr><tr><td><kbd>g</kbd> <kbd>h</kbd></td><td>History</td></tr><tr><td><kbd>g</kbd> <kbd>b</kbd></td><td>Bookmarks</td></tr><tr><td><kbd>g</kbd> <kbd>t</kbd></td><td>Trust</td></tr><tr><td><kbd>?</kbd></td><td>This sheet</td></tr></table>
55
</div>
56
<script src="/static/hub.js" defer></script>
57
</body>
58
</html>