Use Pug template generator
Docker Build and Push / build-and-push (push) Successful in 1m15s

This commit is contained in:
2026-03-31 16:09:57 +03:00
parent 4844cdb7b6
commit 3a47b84a1b
32 changed files with 419 additions and 468 deletions
+3 -3
View File
@@ -17,12 +17,12 @@ def render_tmpl(filename: str) -> str:
@bp.route("/")
def index():
return render_tmpl('index.html')
return render_tmpl('index.pug')
@bp.route("/host")
def host():
return render_tmpl('host.html')
return render_tmpl('host.pug')
@bp.route("/us")
def us():
return render_tmpl('us.html')
return render_tmpl('us.pug')
+33
View File
@@ -0,0 +1,33 @@
doctype html
html(lang=g.locale)
head
title Lair
link(rel="stylesheet" href="/static/style/main.css")
link(rel="icon" type="image/webp" href="/static/icon/lair.webp")
script(src="/static/script/copy-mono.js")
script(
src="https://track.lair.moe/api/script.js"
data-site-id="1"
defer
)
meta(name="viewport" content="width=device-width, initial-scale=1.0")
meta(name="mock-email" content="admin@example.com")
meta(property="og:type" value="website")
meta(property="og:url" value="https://lair.moe")
meta(property="og:title" value="Lair.moe")
meta(property="og:image" value="https://lair.moe/static/icon/lair.webp")
meta(property="og:description" value=_("description"))
body
include root/templates/header.pug
h1
block title
main
block content
include root/templates/footer.pug
-35
View File
@@ -1,35 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Lair</title>
<link rel="stylesheet" href="/static/style/main.css">
<link rel="icon" type="image/webp" href="/static/icon/lair.webp" />
<script src="/static/script/copy-mono.js"> </script>
<script
src="https://track.lair.moe/api/script.js"
data-site-id="1"
defer
></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="mock-email" content="admin@example.com">
<!-- og meta -->
<meta property="og:type" value="website" />
<meta property="og:url" value="https://lair.moe" />
<meta property="og:title" value="Lair.moe" />
<meta property="og:image" value="https://lair.moe/static/icon/lair.webp" />
<meta property="og:description" value="{{ _("description") }}" />
</head>
<body>
{% include 'header.tmpl' %}
<h1>{% block title %}{% endblock %}</h1>
<main>
{% block content %}{% endblock %}
</main>
{% include 'footer.tmpl' %}
</body>
</html>
+9
View File
@@ -0,0 +1,9 @@
footer
div
| lair.moe &#127279; 2025 - 2026</div>
div
a(href="https://g.lair.moe/Sweetbread/lair.moe")= _('site source')
div
= _('contact us')
= ": "
a(href="mailto:admin@lair.moe") admin@lair.moe
-5
View File
@@ -1,5 +0,0 @@
<footer>
<div>lair.moe &#127279; 2025 - 2026</div>
<div><a href="https://g.lair.moe/Sweetbread/lair.moe">{{ _('site source') }}</a></div>
<div>{{ _('contact us') }}: <a href="mailto:admin@lair.moe">admin@lair.moe</a></div>
</footer>
+17
View File
@@ -0,0 +1,17 @@
header
if request.path != url_for('.index')
a(href=url_for('.index')) Lair
else
div
.header-links
-
var links = (
('.us', _('about us')),
('.host', _('about host')),
)
each l, t in links
if url_for(l) == request.path
strong= t
else
a(href=url_for(l))= t
-20
View File
@@ -1,20 +0,0 @@
<header>
{%- if request.path != url_for('.index') %}
<a href="{{ url_for('.index') }}">Lair</a>
{%- else %}
<div></div>
{%- endif %}
<div class="header-links">
{%- for (l, t) in (
('.us', _('about us')),
('.host', _('about host'))
) %}
{%- if url_for(l) == request.path %}
<strong>{{ t }}</strong>
{%- else %}
<a href="{{ url_for(l) }}">{{ t }}</a>
{%- endif %}
{%- endfor %}
</div>
</header>
-21
View File
@@ -1,21 +0,0 @@
{% extends 'base.tmpl' %}
{% block title %}{{ _('about host') }}{% endblock %}
{% block content %}
<a href="https://play2go.cloud/?ref_id=4baFoOIp5QE" target="_blank" class="block">
<strong>{{ _("host:hoster") }}</strong>: play2go
<p>{{ _('host:hoster_descr') }}</p>
</a>
<div class="block">
<strong>{{ _("host:specifications") }}</strong>:
<ul>
<li>CPU: 4xRyzen 9@3.4GHz</li>
<li>RAM: 8 GB</li>
<li>SSD: 150 GB</li>
<li>ETH: 1 Gb/s</li>
<li>Loc: Deutschland</li>
</ul>
</div>
{% endblock %}
+20
View File
@@ -0,0 +1,20 @@
extends root/templates/base.pug
block title
= _('about host')
block content
a.block(href="https://play2go.cloud/?ref_id=4baFoOIp5QE" target="_blank")
strong= _("host:hoster")
| : play2go
p= _('host:hoster_descr')
.block
strong= _("host:specifications")
| :
ul
li CPU: Ryzen 9@3.4GHz (4 cores)
li RAM: 8 GB
li SSD: 150 GB
li ETH: 500Mb/s
li Loc: Deutschland, Frankfurt am Main
-52
View File
@@ -1,52 +0,0 @@
{% extends 'base.tmpl' %}
{% block title %}
<img src="/static/icon/lair.webp" class="icon" />
Lair
{% endblock %}
{% block content %}
<a href="https://b.lair.moe" target="_blank" class="block">
<div class="header">
<img src="/static/icon/service/sharkey.webp" class="icon"/>
<strong>Sharkey</strong>
</div>
<p>{{ _('index.descr:sharkey') }}</p>
</a>
<a href="https://g.lair.moe" target="_blank" class="block">
<div class="header">
<img src="/static/icon/service/gitea.webp" class="icon"/>
<strong>Gitea</strong>
</div>
<p>{{ _('index.descr:gitea') }}</p>
</a>
<div class="block">
<p><a href="https://m.lair.moe" target="_blank"><strong>Matrix</strong></a> &mdash; {{ _('index.descr:matrix') }}</p>
<p><a href="https://c.lair.moe" target="_blank"><strong>Copyparty</strong></a> &mdash; {{ _('index.descr:copyparty') }}</p>
<p><a href="https://tools.lair.moe" target="_blank"><strong>IT-tools</strong></a> &mdash; {{ _('index.descr:tools') }}</p>
<p><a href="https://vert.lair.moe" target="_blank"><strong>Vert</strong></a> &mdash; {{ _('index.descr:vert') }}</p>
</div>
<div class="block">
<strong>{{ _('index:altfronts') }}</strong>
<p><a href="https://s.lair.moe" target="_blank"><strong>4get</strong></a> &mdash; {{ _('index.descr:4get') }}</p>
<p><a href="https://tl.lair.moe" target="_blank"><strong>TransLite</strong></a> &mdash; {{ _('index.descr:tl') }}</p>
<p><a href="https://lyr.lair.moe" target="_blank"><strong>Intellectual</strong></a> &mdash; {{ _('index.descr:lyr') }}</p>
</div>
<div class="block">
<div>
<strong>DNS</strong>:
<ul>
<li><span class="mono">64.188.64.176</span></li>
<li>DoT: <span class="mono">lair.moe:853</span></li>
<li>DoH: <span class="mono">dns.lair.moe</span></li>
</ul>
</div>
<p>
<strong>Yggdrasil</strong>:
<span class="mono">200:ee1:bad2:1732:4b91:c3e3:2f08:29b3</span>
</p>
</div>
{% endblock %}
+70
View File
@@ -0,0 +1,70 @@
extends root/templates/base.pug
block title
img.icon(src="/static/icon/lair.webp")
| Lair
block content
a.block(href="https://b.lair.moe" target="_blank")
.header
img.icon(src="/static/icon/service/sharkey.webp")
strong Sharkey
p= _('index.descr:sharkey')
a.block(href="https://g.lair.moe" target="_blank")
.header
img.icon(src="/static/icon/service/gitea.webp")
strong Gitea
p= _('index.descr:gitea')
.block
p
a(href="https://m.lair.moe" target="_blank")
strong Matrix
| &mdash; {{ _('index.descr:matrix') }}
p
a(href="//c.lair.moe" target="_blank")
strong Copyparty
| &mdash; {{ _('index.descr:copyparty') }}
p
a(href="https://tools.lair.moe" target="_blank")
strong IT-tools
| &mdash; {{ _('index.descr:tools') }}
p
a(href="https://vert.lair.moe" target="_blank")
strong Vert
| &mdash; {{ _('index.descr:vert') }}
.block
strong= _('index:altfronts')
p
a(href="https://s.lair.moe" target="_blank")
strong 4get
| &mdash; {{ _('index.descr:4get') }}
p
a(href="https://tl.lair.moe" target="_blank")
strong TransLite
| &mdash; {{ _('index.descr:tl') }}
p
a(href="https://lyr.lair.moe" target="_blank")
strong Intellectual
| &mdash; {{ _('index.descr:lyr') }}
.block
div
strong DNS
| :
ul
li
span.mono 64.188.64.176
li
| DoT:
span.mono lair.moe:853
li
| DoH:
span.mono dns.lair.moe
p
strong Yggdrasil
| :
span.mono 200:ee1:bad2:1732:4b91:c3e3:2f08:29b3
-21
View File
@@ -1,21 +0,0 @@
{% extends 'base.tmpl' %}
{% block title %}О нас{% endblock %}
{% block content %}
<a href="{{ url_for('risdeveau.index') }}" class="block green">
<div class="header">
<img src="/static/icon/us/risdeveau.webp" class="icon"/>
Sweetbread
</div>
Главный админ, занимается почти всеми сервисами. Создал этот сайт
</a>
<div class="block orange disabled">
<div class="header">
<img src="/static/icon/us/chest.webp" class="icon"/>
Chest
</div>
Должна была помогать делать этот сайт
</div>
{% endblock %}
+17
View File
@@ -0,0 +1,17 @@
extends root/templates/base.pug
block title
| О нас
block content
a.block.green(href=url_for('risdeveau.index'))
.header
img.icon(src="/static/icon/us/risdeveau.webp")
| Sweetbread
| Главный админ, занимается почти всеми сервисами. Создал этот сайт
.block.orange.disabled
.header
img.icon(src="/static/icon/us/chest.webp")
| Chest
| Должна была помогать делать этот сайт