Lindenii Project Forge
Login

server

Lindenii Forge’s main backend daemon
Commit info
ID
3c3c383a9d6dec77e93272483699b3aef2c1dd47
Author
Runxi Yu <me@runxiyu.org>
Author date
Thu, 13 Mar 2025 20:17:19 +0800
Committer
Runxi Yu <me@runxiyu.org>
Committer date
Thu, 13 Mar 2025 20:17:19 +0800
Actions
Partially port templates used by the index page
let global: struct {
	title: str,
	version: str,
	ssh_pubkey: str,
	ssh_fp: str,
} = struct {
	title: str = "Test Forge",
	version: str = "v0.0.0",
	ssh_pubkey: str = "pubkey",
	ssh_fp: str = "fp",
};
{{ define _tp_footer(handle: io::handle) (void | io::error | nomem) }}
<a href="https://lindenii.runxiyu.org/forge/">Lindenii Forge</a>
{{ global.version }}
(<a href="/:/source/">source</a>,
<a href="https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/server/">upstream</a>)
{{ end }}
{{ define _tp_head_common(handle: io::handle, title: str = "Untitled") (void | io::error | nomem) }}
<title>{{ title }}</title>
{{ define _tp_head_common(handle: io::handle) (void | io::error | nomem) }}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/:/static/style.css" />
{{ end }}
{{ define _tp_header(handle: io::handle, user_id_str: str, username: str) (void | io::error | nomem) }}
<header id="main-header">
	<div id="main-header-forge-title">
		<a href="/">{{ global.title }}</a>
	</div>
	<div id="main-header-user">
		{{ if user_id_str != "" }}
			<a href="/:/users/{{ user_id_str }}">{{ username }}</a>
		{{ else }}
			<a href="/:/login/">Login</a>
		{{ end }}
	</div>
</header>
{{ end }}
{{ define tp_index(handle: io::handle) (void | io::error | nomem) }}
{!
	let title: str = "Test";
!}
<!DOCTYPE html>
<html lang="en">
<head>
{{ render _tp_head_common(handle, title) }}
{{ render _tp_head_common(handle) }}
<title>Index &ndash; {{ global.title }}</title>
</head>
<body>
<h1>{{ title }}</h1>
{{ render _tp_header(handle, "test", "test") }}
<div class="padding-wrapper">
<table class="wide rounded">
	<thead>
		<tr>
			<th colspan="2" class="title-row">Groups</th>
		</tr>
		<tr>
			<th scope="col">Name</th>
			<th scope="col">Description</th>
		</tr>
	</thead>
	<tbody>
	</tbody>
</table>
<div class="padding-wrapper">
	<table class="wide rounded">
		<thead>
			<tr>
				<th colspan="2" class="title-row">
					Info
				</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<th scope="row">SSH public key</th>
				<td><code>{{ global.ssh_pubkey }}</code></td>
			</tr>
			<tr>
				<th scope="row">SSH fingerprint</th>
				<td><code>{{ global.ssh_fp }}</code></td>
			</tr>
		</tbody>
	</table>
</div>
<footer>
	{{ render _tp_footer(handle) }}
</footer>
</body>
</html>
{{ end }}