Sito
This commit is contained in:
0
templates/base/footer.tmpl
Normal file
0
templates/base/footer.tmpl
Normal file
177
templates/base/head_navbar.tmpl
Normal file
177
templates/base/head_navbar.tmpl
Normal file
@@ -0,0 +1,177 @@
|
||||
<nav id="navbar" aria-label="{{ctx.Locale.Tr "aria.navbar"}}">
|
||||
<div class="navbar-left">
|
||||
<!-- the logo -->
|
||||
<a class="item" id="navbar-logo" href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}">
|
||||
<img width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}" aria-hidden="true">
|
||||
</a>
|
||||
|
||||
<!-- mobile right menu, it must be here because in mobile view, each item is a flex column, the first item is a full row column -->
|
||||
<div class="ui secondary menu navbar-mobile-right only-mobile">
|
||||
{{template "base/head_navbar_icons" dict "PageGlobalData" .PageGlobalData}}
|
||||
<button class="item ui icon mini button tw-m-0" id="navbar-expand-toggle" aria-label="{{ctx.Locale.Tr "home.nav_menu"}}">{{svg "octicon-three-bars"}}</button>
|
||||
</div>
|
||||
|
||||
<!-- navbar links non-mobile -->
|
||||
{{if and .IsSigned .MustChangePassword}}
|
||||
{{/* No links */}}
|
||||
{{else if .IsSigned}}
|
||||
{{if not ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled}}
|
||||
<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{ctx.Locale.Tr "issues"}}</a>
|
||||
{{end}}
|
||||
{{if not ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled}}
|
||||
<a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubUrl}}/pulls">{{ctx.Locale.Tr "pull_requests"}}</a>
|
||||
{{end}}
|
||||
{{if not (and ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled)}}
|
||||
{{if .ShowMilestonesDashboardPage}}
|
||||
<a class="item{{if .PageIsMilestonesDashboard}} active{{end}}" href="{{AppSubUrl}}/milestones">{{ctx.Locale.Tr "milestones"}}</a>
|
||||
{{end}}
|
||||
{{end}}
|
||||
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
|
||||
{{else if .IsLandingPageOrganizations}}
|
||||
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{ctx.Locale.Tr "explore"}}</a>
|
||||
{{else}}
|
||||
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
|
||||
{{end}}
|
||||
|
||||
{{template "custom/extra_links" .}}
|
||||
|
||||
</div>
|
||||
|
||||
<!-- the full dropdown menus -->
|
||||
<div class="navbar-right">
|
||||
{{if and .IsSigned .MustChangePassword}}
|
||||
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
|
||||
<span class="text">
|
||||
{{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
|
||||
<span class="only-mobile">{{.SignedUser.Name}}</span>
|
||||
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
||||
</span>
|
||||
<div class="menu user-menu">
|
||||
<div class="header">
|
||||
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
|
||||
{{svg "octicon-sign-out"}}
|
||||
{{ctx.Locale.Tr "sign_out"}}
|
||||
</a>
|
||||
</div><!-- end content avatar menu -->
|
||||
</div><!-- end dropdown avatar menu -->
|
||||
{{else if .IsSigned}}
|
||||
{{template "base/head_navbar_icons" dict "ItemExtraClass" "not-mobile" "PageGlobalData" .PageGlobalData}}
|
||||
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "create_new"}}">
|
||||
<span class="text">
|
||||
{{svg "octicon-plus"}}
|
||||
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
||||
<span class="only-mobile">{{ctx.Locale.Tr "create_new"}}</span>
|
||||
</span>
|
||||
<div class="menu">
|
||||
<a class="item" href="{{AppSubUrl}}/repo/create">
|
||||
{{svg "octicon-plus"}} {{ctx.Locale.Tr "new_repo"}}
|
||||
</a>
|
||||
{{if not .DisableMigrations}}
|
||||
<a class="item" href="{{AppSubUrl}}/repo/migrate">
|
||||
{{svg "octicon-repo-push"}} {{ctx.Locale.Tr "new_migrate"}}
|
||||
</a>
|
||||
{{end}}
|
||||
{{if .SignedUser.CanCreateOrganization}}
|
||||
<a class="item" href="{{AppSubUrl}}/org/create">
|
||||
{{svg "octicon-organization"}} {{ctx.Locale.Tr "new_org"}}
|
||||
</a>
|
||||
{{end}}
|
||||
</div><!-- end content create new menu -->
|
||||
</div><!-- end dropdown menu create new -->
|
||||
|
||||
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
|
||||
<span class="text">
|
||||
{{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
|
||||
<span class="only-mobile">{{.SignedUser.Name}}</span>
|
||||
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
||||
</span>
|
||||
<div class="menu user-menu">
|
||||
<div class="header">
|
||||
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
<a class="item" href="{{.SignedUser.HomeLink}}">
|
||||
{{svg "octicon-person"}}
|
||||
{{ctx.Locale.Tr "your_profile"}}
|
||||
</a>
|
||||
{{if not .DisableStars}}
|
||||
<a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
|
||||
{{svg "octicon-star"}}
|
||||
{{ctx.Locale.Tr "your_starred"}}
|
||||
</a>
|
||||
{{end}}
|
||||
<a class="item" href="{{AppSubUrl}}/notifications/subscriptions">
|
||||
{{svg "octicon-bell"}}
|
||||
{{ctx.Locale.Tr "notification.subscriptions"}}
|
||||
</a>
|
||||
<a class="{{if .PageIsUserSettings}}active {{end}}item" href="{{AppSubUrl}}/user/settings">
|
||||
{{svg "octicon-tools"}}
|
||||
{{ctx.Locale.Tr "your_settings"}}
|
||||
</a>
|
||||
<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.com">
|
||||
{{svg "octicon-question"}}
|
||||
{{ctx.Locale.Tr "help"}}
|
||||
</a>
|
||||
{{if .IsAdmin}}
|
||||
<div class="divider"></div>
|
||||
<a class="{{if .PageIsAdmin}}active {{end}}item" href="{{AppSubUrl}}/-/admin">
|
||||
{{svg "octicon-server"}}
|
||||
{{ctx.Locale.Tr "admin_panel"}}
|
||||
</a>
|
||||
{{end}}
|
||||
<div class="divider"></div>
|
||||
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
|
||||
{{svg "octicon-sign-out"}}
|
||||
{{ctx.Locale.Tr "sign_out"}}
|
||||
</a>
|
||||
</div><!-- end content avatar menu -->
|
||||
</div><!-- end dropdown avatar menu -->
|
||||
{{else}}
|
||||
{{if .ShowRegistrationButton}}
|
||||
<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
|
||||
{{svg "octicon-person"}}
|
||||
<span class="tw-ml-1">{{ctx.Locale.Tr "register"}}</span>
|
||||
</a>
|
||||
{{end}}
|
||||
<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login{{if not .PageIsSignIn}}?redirect_to={{.CurrentURL}}{{end}}">
|
||||
{{svg "octicon-sign-in"}}
|
||||
<span class="tw-ml-1">{{ctx.Locale.Tr "sign_in"}}</span>
|
||||
</a>
|
||||
{{end}}
|
||||
</div><!-- end full right menu -->
|
||||
|
||||
{{$activeStopwatch := and .PageGlobalData (call .PageGlobalData.GetActiveStopwatch)}}
|
||||
{{if $activeStopwatch}}
|
||||
<div class="active-stopwatch-popup tippy-target">
|
||||
<div class="tw-flex tw-items-center tw-gap-2 tw-p-3">
|
||||
<a class="stopwatch-link tw-flex tw-items-center tw-gap-2 muted" href="{{$activeStopwatch.IssueLink}}">
|
||||
{{svg "octicon-issue-opened" 16}}
|
||||
<span class="stopwatch-issue">{{$activeStopwatch.RepoSlug}}#{{$activeStopwatch.IssueIndex}}</span>
|
||||
</a>
|
||||
<div class="tw-flex tw-gap-1">
|
||||
<form class="stopwatch-commit form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/stop">
|
||||
{{.CsrfTokenHtml}}
|
||||
<button
|
||||
type="submit"
|
||||
class="ui button mini compact basic icon tw-mr-0"
|
||||
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.stop_tracking"}}"
|
||||
>{{svg "octicon-square-fill"}}</button>
|
||||
</form>
|
||||
<form class="stopwatch-cancel form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/cancel">
|
||||
{{.CsrfTokenHtml}}
|
||||
<button
|
||||
type="submit"
|
||||
class="ui button mini compact basic icon tw-mr-0"
|
||||
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.cancel_tracking"}}"
|
||||
>{{svg "octicon-trash"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
</nav>
|
||||
222
templates/home.tmpl
Normal file
222
templates/home.tmpl
Normal file
@@ -0,0 +1,222 @@
|
||||
{{template "base/head" .}}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Devora — Ship your ideas</title>
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Hanken+Grotesk:wght@400;600;800&display=swap" rel="stylesheet" />
|
||||
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
|
||||
<meta property="og:image" content="/assets/img/logo.png">
|
||||
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
sans: ['Hanken Grotesk', 'sans-serif'],
|
||||
mono: ['JetBrains Mono', 'monospace'],
|
||||
},
|
||||
colors: {
|
||||
bg: '#0b0f14',
|
||||
panel: '#111820',
|
||||
},
|
||||
boxShadow: {
|
||||
glow: '0 18px 60px rgba(15,23,42,0.9)',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="bg-bg text-white overflow-x-hidden antialiased">
|
||||
<main class="relative min-h-screen flex flex-col justify-between">
|
||||
<!-- HERO -->
|
||||
<section class="relative flex flex-1 items-center pt-24 pb-16">
|
||||
<!-- sfondo -->
|
||||
<div class="pointer-events-none absolute inset-0">
|
||||
<div class="absolute -top-40 left-1/2 h-72 w-72 -translate-x-1/2 rounded-full bg-sky-500/20 blur-3xl"></div>
|
||||
<div class="absolute top-40 -left-10 h-52 w-52 rounded-full bg-indigo-500/20 blur-3xl"></div>
|
||||
<div class="absolute top-40 -right-10 h-52 w-52 rounded-full bg-emerald-500/16 blur-3xl"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-b from-black/40 via-transparent to-black/70"></div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10 mx-auto flex max-w-6xl flex-col gap-12 px-4 md:flex-row md:items-center">
|
||||
<!-- copy -->
|
||||
<div class="max-w-xl text-center md:text-left">
|
||||
<div class="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-1 text-[11px] text-white/70">
|
||||
<span class="h-1.5 w-1.5 rounded-full bg-emerald-400"></span>
|
||||
Siamo online!
|
||||
</div>
|
||||
|
||||
<h1 class="mt-5 text-4xl font-extrabold tracking-tight sm:text-5xl">
|
||||
La migliore piattaforma<br />
|
||||
<span class="bg-gradient-to-r from-amber-400 via-orange-400 to-orange-700 bg-clip-text text-transparent">
|
||||
di Code Hosting.
|
||||
</span>
|
||||
</h1>
|
||||
|
||||
<p class="mt-4 text-sm text-white/70">
|
||||
Devora è il garage digitale per i tuoi side‑project: repository Git, board di lavoro e deploy continui nello stesso posto, in pochi secondi.
|
||||
</p>
|
||||
|
||||
<form class="mt-6 flex flex-col gap-3 sm:flex-row sm:items-center" action="https://devora.k.vu/user/sign_up" method="get">
|
||||
<button
|
||||
type="submit"
|
||||
class="inline-flex h-11 items-center justify-center rounded-full bg-gradient-to-r from-amber-400 via-orange-400 to-orange-700 px-6 text-xs font-semibold shadow-glow hover:brightness-110 transition"
|
||||
>
|
||||
Iscriviti subito
|
||||
</button>
|
||||
</form>
|
||||
|
||||
|
||||
<p class="mt-2 text-[11px] text-white/45">
|
||||
Completamente gratuito · Ottieni il tuo prossimo hosting Git in meno di 60 secondi
|
||||
</p>
|
||||
|
||||
<div class="mt-6 flex flex-wrap items-center justify-center gap-5 text-[11px] text-white/45 md:justify-start">
|
||||
<div>
|
||||
<span class="block text-xs font-semibold text-white" id="team-online">1+</span>
|
||||
team online
|
||||
</div>
|
||||
<div class="h-8 w-px bg-white/10"></div>
|
||||
<div>
|
||||
<span class="block text-xs font-semibold text-white" id="uptime">100% uptime</span>
|
||||
negli ultimi 12 mesi
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- pannello destra -->
|
||||
<div class="mx-auto w-full max-w-md md:max-w-lg">
|
||||
<!-- card console -->
|
||||
<div class="rounded-2xl border border-white/10 bg-panel/90 p-4 shadow-glow backdrop-blur-xl">
|
||||
<!-- header finestra -->
|
||||
<div class="flex items-center gap-1.5 text-[10px] text-white/40">
|
||||
<span class="h-2 w-2 rounded-full bg-rose-400/70"></span>
|
||||
<span class="h-2 w-2 rounded-full bg-amber-300/70"></span>
|
||||
<span class="h-2 w-2 rounded-full bg-emerald-400/80"></span>
|
||||
<span class="ml-3 font-mono text-[10px] text-white/50">dev@studio ▸ git.sh</span>
|
||||
<span class="ml-auto rounded-full bg-emerald-500/10 px-2 py-0.5 text-[9px] text-emerald-300">LIVE</span>
|
||||
</div>
|
||||
|
||||
<!-- console Git -->
|
||||
<div class="mt-3 overflow-hidden rounded-xl bg-black/60 border border-white/5">
|
||||
<div class="flex items-center justify-between border-b border-white/5 px-3 py-1.5">
|
||||
<span class="font-mono text-[10px] text-white/45">~/studio/app</span>
|
||||
<span class="rounded-full bg-white/5 px-2 py-0.5 text-[9px] text-white/60">
|
||||
main · autosync
|
||||
</span>
|
||||
</div>
|
||||
<pre class="scrollbar-thin max-h-52 space-y-0.5 overflow-auto bg-gradient-to-b from-slate-900/80 to-black px-3 py-3 font-mono text-[11px] leading-relaxed text-slate-100">
|
||||
<span class="text-slate-500">01</span> <span class="text-sky-300">git clone</span> <span class="text-emerald-300">https://devora.k.vu/JustFilyy/EasyBIO-Open-Source-Project.git</span>
|
||||
<span class="text-slate-500">02</span> <span class="text-sky-300">cd EasyBIO-Open-Source-Project</span>
|
||||
<span class="text-slate-500">03</span> <span class="text-sky-300">git checkout -b feature/new-ui</span>
|
||||
<span class="text-slate-500">04</span> <span class="text-sky-300">git add .</span>
|
||||
<span class="text-slate-500">05</span> <span class="text-sky-300">git commit -m</span> <span class="text-amber-300">"Implement new responsive UI"</span>
|
||||
<span class="text-slate-500">06</span> <span class="text-sky-300">git push origin feature/new-ui</span>
|
||||
<span class="text-slate-500">07</span> <span class="text-emerald-400">✔</span> Branch pushed successfully
|
||||
<span class="text-slate-500">08</span> <span class="text-emerald-400">✔</span> Connected to Devora server
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<!-- activity mini -->
|
||||
<div class="mt-3 grid grid-cols-3 gap-2 text-[10px] text-white/60">
|
||||
|
||||
<div class="rounded-xl border border-white/10 bg-white/5 px-3 py-2">
|
||||
<p class="text-[10px] text-white/70">
|
||||
Uptime server
|
||||
</p>
|
||||
<p class="mt-1 text-[10px] text-white/40" id="uptime-server">
|
||||
100% last 30 days
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-xl border border-sky-400/20 bg-sky-400/5 px-3 py-2">
|
||||
<p class="text-[10px] text-sky-100">
|
||||
Latency globale
|
||||
</p>
|
||||
<p class="mt-1 text-lg font-semibold text-sky-300" id="latency">--<span class="text-xs align-top">ms</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- onda in basso -->
|
||||
<div class="pointer-events-none absolute bottom-0 left-0 w-full">
|
||||
<svg viewBox="0 0 1440 320" preserveAspectRatio="none" class="h-40 w-full opacity-80">
|
||||
<path fill="#141b23" d="M0,288L40,272C80,256,160,224,240,213.3C320,203,400,213,480,224C560,235,640,245,720,229.3C800,213,880,171,960,160C1040,149,1120,171,1200,181.3C1280,192,1360,192,1400,192L1440,192L1440,320L0,320Z"></path>
|
||||
<path fill="#0f141b" d="M0,256L60,240C120,224,240,192,360,186.7C480,181,600,203,720,213.3C840,224,960,224,1080,208C1200,192,1320,160,1380,144L1440,128L1440,320L0,320Z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- FEATURES -->
|
||||
<section class="relative border-t border-white/5 bg-black/40 py-10">
|
||||
<div class="mx-auto max-w-6xl px-4">
|
||||
<div class="mb-6 flex flex-col gap-2 md:flex-row md:items-end md:justify-between">
|
||||
<div>
|
||||
<h2 class="text-sm font-semibold tracking-tight">
|
||||
Fatto per sviluppatori
|
||||
</h2>
|
||||
<p class="mt-1 text-xs text-white/60 max-w-md">
|
||||
Tutto quello che ti aspetti da un DevOps moderno, senza la fatica di configurarlo da zero.
|
||||
</p>
|
||||
</div>
|
||||
<p class="text-[11px] text-white/40">
|
||||
Zero‑config · Git‑native · Cloud‑agnostic
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid gap-4 md:grid-cols-3">
|
||||
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
|
||||
<div class="mb-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-sky-500/10 text-xs text-sky-300">
|
||||
⌘
|
||||
</div>
|
||||
<h3 class="text-sm font-semibold">Git‑first workflow</h3>
|
||||
<p class="mt-1 text-xs text-white/60">
|
||||
Ogni branch diventa un ambiente isolato, perfetto per review veloci e demo con il team.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
|
||||
<div class="mb-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-emerald-500/10 text-xs text-emerald-300">
|
||||
✓
|
||||
</div>
|
||||
<h3 class="text-sm font-semibold">CI/CD automatico compatibile con GitHub</h3>
|
||||
<p class="mt-1 text-xs text-white/60">
|
||||
Devora actions è completamente compatibile con GitHub Actions, basta fare drag 'n' drop e le tue config funzioneranno
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
|
||||
<div class="mb-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-indigo-500/10 text-xs text-indigo-300">
|
||||
☁️
|
||||
</div>
|
||||
<h3 class="text-sm font-semibold">Cloud privato e sicuro</h3>
|
||||
<p class="mt-1 text-xs text-white/60">
|
||||
Salva al sicuro i tuoi progetti, con uptime elevati e privacy di default. Non utilizziamo codice per addestrare modelli di Intelligenza artificiale.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
// Aggiornamento ping e latency in tempo reale simulato
|
||||
function randomPing() { return Math.floor(Math.random() * 50) + 20; } // 20-70ms
|
||||
function randomLatency() { return Math.floor(Math.random() * 100) + 20; } // 20-120ms
|
||||
setInterval(() => {
|
||||
document.getElementById('ping').innerHTML = randomPing() + '<span class="text-xs align-top">ms</span>';
|
||||
document.getElementById('latency').innerHTML = randomLatency() + '<span class="text-xs align-top">ms</span>';
|
||||
document.getElementById('team-online').innerHTML = Math.floor(Math.random() * 100) + 1 + '+';
|
||||
}, 1000);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{{template "base/footer" .}}
|
||||
Reference in New Issue
Block a user