Lindenii Project Forge
Login

server

Lindenii Forge’s main backend daemon
Commit info
ID
1d36ef43c2d6c2f9b106821ac04552d359f47116
Author
Runxi Yu <me@runxiyu.org>
Author date
Mon, 31 Mar 2025 00:35:29 +0800
Committer
Runxi Yu <me@runxiyu.org>
Committer date
Mon, 31 Mar 2025 00:35:29 +0800
Actions
Use ref_query for ?branch=x, etc
{{- define "ref_query" -}}
{{- if .ref_type -}}?{{- .ref_type -}}={{- .ref_name -}}{{- end -}}
{{- end -}}
{{/*
	SPDX-License-Identifier: AGPL-3.0-only
	SPDX-FileContributor: Runxi Yu <https://runxiyu.org>
*/}}
{{- define "repo_index" -}}
{{- $root := . -}}
<!DOCTYPE html>
<html lang="en">
	<head>
		{{- template "head_common" . -}}
		<title>{{ .repo_name }} &ndash; {{ template "group_path_plain" .group_path }} &ndash; {{ .global.forge_title -}}</title>
	</head>
	<body class="repo-index">
		{{- template "header" . -}}
		<div class="padding-wrapper">
			<ul class="nav-tabs-standalone">
				<li class="nav-item active">
					<a class="nav-link" href="./">Summary</a>
					<a class="nav-link" href="./{{- template "ref_query" $root -}}">Summary</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="tree/">Tree</a>
					<a class="nav-link" href="tree/{{- template "ref_query" $root -}}">Tree</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="log/">Log</a>
					<a class="nav-link" href="log/{{- template "ref_query" $root -}}">Log</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="branches/">Branches</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="tags/">Tags</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="settings/">Settings</a>
				</li>
			</ul>
		</div>
		<div class="padding-wrapper">
			<div class="key-val-grid-wrapper">
				<section id="repo-info" class="key-val-grid">
					<div class="title-row">Repo info</div>
					<div class="row-label">Name</div>
					<div class="row-value">{{- .repo_name -}}</div>
					{{- if .repo_description -}}
						<div class="row-label">Description</div>
						<div class="row-value">{{- .repo_description -}}</div>
					{{- end -}}
					<div class="row-label">SSH remote</div>
					<div class="row-value"><code>{{- .ssh_clone_url -}}</code></div>
					{{- if .notes -}}
						<div class="row-label">Notes</div>
						<div class="row-value">
							<ul>
								{{- range .notes -}}<li>{{- . -}}</li>{{- end -}}
							</ul>
						</div>
					{{- end -}}
				</section>
			</div>
		</div>
		<div class="padding-wrapper">
			<table id="branches">
				<thead>
					<tr class="title-row">
						<th colspan="1">Branches</th>
					</tr>
				</thead>
				<tbody>
					{{- range .branches -}}
					<tr>
						<td>
							<a href="./?branch={{ . }}">{{ . }}</a>
						</td>
					</tr>
					{{- end -}}
				</tbody>
			</table>
		</div>
		<div class="padding-wrapper">
			<p>
				<a href="contrib/" class="btn-normal">Merge requests</a>
			</p>
		</div>
		{{- if .commits -}}
			<div class="padding-wrapper scroll">
				<table id="recent-commits" class="wide">
					<thead>
						<tr class="title-row">
							<th colspan="3">Recent commits (<a href="log/{{- if .ref_type -}}?{{- .ref_type -}}={{- .ref_name -}}{{- end -}}">see all</a>)</th>
							<th colspan="3">Recent commits (<a href="log/{{- template "ref_query" $root -}}">see all</a>)</th>
						</tr>
						<tr>
							<th scope="col">Title</th>
							<th scope="col">Author</th>
							<th scope="col">Author Date</th>
						</tr>
					</thead>
					<tbody>
						{{- range .commits -}}
							<tr>
								<td class="commit-title"><a href="commit/{{- .Hash -}}">{{- .Message | first_line -}}</a></td>
								<td class="commit-author">
									<a class="email-name" href="mailto:{{- .Author.Email -}}">{{- .Author.Name -}}</a>
								</td>
								<td class="commit-time">
									{{- .Author.When.Format "2006-01-02 15:04:05 -0700" -}}
								</td>
							</tr>
						{{- end -}}
						{{- if dereference_error .commits_err -}}
							Error while obtaining commit log: {{ .commits_err }}
						{{- end -}}
					</tbody>
				</table>
			</div>
		{{- end -}}
		{{- if .readme -}}
			<div class="padding-wrapper" id="readme">
				{{- .readme -}}
			</div>
		{{- end -}}
		<footer>
			{{- template "footer" . -}}
		</footer>
	</body>
</html>
{{- end -}}
{{/*
	SPDX-License-Identifier: AGPL-3.0-only
	SPDX-FileContributor: Runxi Yu <https://runxiyu.org>
*/}}
{{- define "repo_raw_dir" -}}
{{- $root := . -}}
<!DOCTYPE html>
<html lang="en">
	<head>
		{{- template "head_common" . -}}
		<title>/{{ .path_spec }}{{ if ne .path_spec "" }}/{{ end }} &ndash; {{ .repo_name }} &ndash; {{ template "group_path_plain" .group_path }} &ndash; {{ .global.forge_title -}}</title>
	</head>
	<body class="repo-raw-dir">
		{{- template "header" . -}}
		<div class="padding-wrapper scroll">
			<table id="file-tree" class="wide">
				<thead>
					<tr class="title-row">
						<th colspan="3">
							(Raw) /{{ .path_spec }}{{ if ne .path_spec "" }}/{{ end }}{{ if .ref_name }} on {{ .ref_name }}{{ end -}}
						</th>
					</tr>
					<tr>
						<th scope="col">Mode</th>
						<th scope="col">Filename</th>
						<th scope="col">Size</th>
					</tr>
				</thead>
				<tbody>
					{{- $path_spec := .path_spec -}}
					{{- $ref := .ref_name -}}
					{{- $ref_type := .ref_type -}}
					{{- range .files -}}
						<tr>
							<td class="file-mode">{{- .Mode -}}</td>
							<td class="file-name"><a href="{{- .Name -}}{{- if not .IsFile -}}/{{- end -}}{{- if $ref_type -}}?{{- $ref_type -}}={{- $ref -}}{{- end -}}">{{- .Name -}}</a>{{- if not .IsFile -}}/{{- end -}}</td>
							<td class="file-name"><a href="{{- .Name -}}{{- if not .IsFile -}}/{{- end -}}{{- template "ref_query" $root -}}">{{- .Name -}}</a>{{- if not .IsFile -}}/{{- end -}}</td>
							<td class="file-size">{{- .Size -}}</td>
						</tr>
					{{- end -}}
				</tbody>
			</table>
		</div>
		<div class="padding-wrapper">
			<div id="refs">
			</div>
		</div>
		<footer>
			{{- template "footer" . -}}
		</footer>
	</body>
</html>
{{- end -}}
{{/*
	SPDX-License-Identifier: AGPL-3.0-only
	SPDX-FileContributor: Runxi Yu <https://runxiyu.org>
*/}}
{{- define "repo_tree_dir" -}}
{{ $root := . }}
<!DOCTYPE html>
<html lang="en">
	<head>
		{{- template "head_common" . -}}
		<title>/{{ .path_spec }}{{ if ne .path_spec "" }}/{{ end }} &ndash; {{ .repo_name }} &ndash; {{ template "group_path_plain" .group_path }} &ndash; {{ .global.forge_title -}}</title>
	</head>
	<body class="repo-tree-dir">
		{{- template "header" . -}}
		<div class="padding-wrapper scroll">
			<table id="file-tree" class="wide">
				<thead>
					<tr class="title-row">
						<th colspan="3">
							/{{ .path_spec }}{{ if ne .path_spec "" }}/{{ end }}{{ if .ref_name }} on {{ .ref_name }}{{ end -}}
						</th>
						<tr>
							<th scope="col">Mode</th>
							<th scope="col">Filename</th>
							<th scope="col">Size</th>
						</tr>
					</tr>
				</thead>
				<tbody>
					{{- $path_spec := .path_spec -}}
					{{- $ref := .ref_name -}}
					{{- $ref_type := .ref_type -}}
					{{- range .files -}}
						<tr>
							<td class="file-mode">{{- .Mode -}}</td>
							<td class="file-name"><a href="{{- .Name -}}{{- if not .IsFile -}}/{{- end -}}{{- if $ref_type -}}?{{- $ref_type -}}={{- $ref -}}{{- end -}}">{{- .Name -}}</a>{{- if not .IsFile -}}/{{- end -}}</td>
							<td class="file-name"><a href="{{- .Name -}}{{- if not .IsFile -}}/{{- end -}}{{- template "ref_query" $root -}}">{{- .Name -}}</a>{{- if not .IsFile -}}/{{- end -}}</td>
							<td class="file-size">{{- .Size -}}</td>
						</tr>
					{{- end -}}
				</tbody>
			</table>
		</div>
		<div class="padding-wrapper">
			<div id="refs">
			</div>
		</div>
		{{- if .readme -}}
		<div class="padding-wrapper" id="readme">
			{{- .readme -}}
		</div>
		{{- end -}}
		<footer>
			{{- template "footer" . -}}
		</footer>
	</body>
</html>
{{- end -}}
{{/*
	SPDX-License-Identifier: AGPL-3.0-only
	SPDX-FileContributor: Runxi Yu <https://runxiyu.org>
*/}}
{{- define "repo_tree_file" -}}
{{- $root := . -}}
<!DOCTYPE html>
<html lang="en">
	<head>
		{{- template "head_common" . -}}
		<link rel="stylesheet" href="/:/static/chroma.css" />
		<title>/{{ .path_spec }} &ndash; {{ .repo_name }} &ndash; {{ template "group_path_plain" .group_path }} &ndash; {{ .global.forge_title -}}</title>
	</head>
	<body class="repo-tree-file">
		{{- template "header" . -}}
		<div class="padding">
			<p>
				/{{ .path_spec }} (<a href="/{{ template "group_path_plain" .group_path }}/:/repos/{{ .repo_name }}/raw/{{ .path_spec }}{{ if .ref_type }}?{{ .ref_type }}={{ .ref_name }}{{ end }}">raw</a>)
				/{{ .path_spec }} (<a href="/{{ template "group_path_plain" .group_path }}/:/repos/{{ .repo_name }}/raw/{{ .path_spec }}{{- template "ref_query" $root -}}">raw</a>)
			</p>
			{{- .file_contents -}}
		</div>
		<footer>
			{{- template "footer" . -}}
		</footer>
	</body>
</html>
{{- end -}}