From bfd9ceb93dc21544748ef6cb85ef7a60d0cb3ac8 Mon Sep 17 00:00:00 2001 From: Sweetbread Date: Tue, 31 Mar 2026 16:09:57 +0300 Subject: [PATCH] Use Pug template generator --- app.py | 9 ++- blueprints/risdeveau/__init__.py | 14 +--- blueprints/risdeveau/templates/88x31.htm | 16 ----- blueprints/risdeveau/templates/88x31.pug | 13 ++++ blueprints/risdeveau/templates/contacts.htm | 48 ------------- blueprints/risdeveau/templates/contacts.pug | 40 +++++++++++ blueprints/risdeveau/templates/donate.htm | 19 ----- blueprints/risdeveau/templates/donate.pug | 14 ++++ blueprints/risdeveau/templates/index.html | 57 --------------- blueprints/risdeveau/templates/index.pug | 50 +++++++++++++ blueprints/risdeveau/templates/info.htm | 50 ------------- blueprints/risdeveau/templates/info.pug | 35 ++++++++++ .../risdeveau/templates/listenbrainz.htm | 39 ----------- .../risdeveau/templates/listenbrainz.pug | 32 +++++++++ blueprints/risdeveau/templates/steam.htm | 69 ------------------ blueprints/risdeveau/templates/steam.pug | 52 ++++++++++++++ blueprints/root/__init__.py | 6 +- blueprints/root/templates/base.pug | 33 +++++++++ blueprints/root/templates/base.tmpl | 35 ---------- blueprints/root/templates/footer.pug | 9 +++ blueprints/root/templates/footer.tmpl | 5 -- blueprints/root/templates/header.pug | 17 +++++ blueprints/root/templates/header.tmpl | 20 ------ blueprints/root/templates/host.html | 21 ------ blueprints/root/templates/host.pug | 20 ++++++ blueprints/root/templates/index.html | 52 -------------- blueprints/root/templates/index.pug | 70 +++++++++++++++++++ blueprints/root/templates/us.html | 21 ------ blueprints/root/templates/us.pug | 17 +++++ requirements.txt | 1 + shell.nix | 2 +- 31 files changed, 418 insertions(+), 468 deletions(-) delete mode 100644 blueprints/risdeveau/templates/88x31.htm create mode 100644 blueprints/risdeveau/templates/88x31.pug delete mode 100644 blueprints/risdeveau/templates/contacts.htm create mode 100644 blueprints/risdeveau/templates/contacts.pug delete mode 100644 blueprints/risdeveau/templates/donate.htm create mode 100644 blueprints/risdeveau/templates/donate.pug delete mode 100644 blueprints/risdeveau/templates/index.html create mode 100644 blueprints/risdeveau/templates/index.pug delete mode 100644 blueprints/risdeveau/templates/info.htm create mode 100644 blueprints/risdeveau/templates/info.pug delete mode 100644 blueprints/risdeveau/templates/listenbrainz.htm create mode 100644 blueprints/risdeveau/templates/listenbrainz.pug delete mode 100644 blueprints/risdeveau/templates/steam.htm create mode 100644 blueprints/risdeveau/templates/steam.pug create mode 100644 blueprints/root/templates/base.pug delete mode 100644 blueprints/root/templates/base.tmpl create mode 100644 blueprints/root/templates/footer.pug delete mode 100644 blueprints/root/templates/footer.tmpl create mode 100644 blueprints/root/templates/header.pug delete mode 100644 blueprints/root/templates/header.tmpl delete mode 100644 blueprints/root/templates/host.html create mode 100644 blueprints/root/templates/host.pug delete mode 100644 blueprints/root/templates/index.html create mode 100644 blueprints/root/templates/index.pug delete mode 100644 blueprints/root/templates/us.html create mode 100644 blueprints/root/templates/us.pug diff --git a/app.py b/app.py index 6e7e759..66d8ff0 100644 --- a/app.py +++ b/app.py @@ -9,7 +9,14 @@ import blueprints.risdeveau.modules.style from flask import Flask -app = Flask(__name__, static_folder=None, subdomain_matching=True) +app = Flask( + __name__, + static_folder=None, + subdomain_matching=True, + template_folder="blueprints" +) + +app.jinja_env.add_extension('pypugjs.ext.jinja.PyPugJSExtension') app.before_request(locale.before_request) app.context_processor(locale.inject_translations) diff --git a/blueprints/risdeveau/__init__.py b/blueprints/risdeveau/__init__.py index 209afe4..682e4ef 100644 --- a/blueprints/risdeveau/__init__.py +++ b/blueprints/risdeveau/__init__.py @@ -85,7 +85,7 @@ args = { def index(): lb_refresh() steam_refresh() - return render_tmpl('index.html', **args) + return render_tmpl('index.pug', **args) @bp.route("/m/") def module(module): @@ -93,22 +93,14 @@ def module(module): lb_refresh() elif module == "steam": steam_refresh() - if modified_since := request.headers.get('if-modified-since'): - modified_since = int(modified_since) - none_match = request.headers.get('if-none-match') - - if any((modified_since, none_match)): + if none_match := request.headers.get('if-none-match'): match module: case "listenbrainz": - if modified_since >= int(lb_data['last_updated']): - return '', 304 if none_match == lb_data['etag']: return '', 304 case "steam": - if modified_since >= int(steam_data['last_updated']): - return '', 304 if none_match == steam_data['etag']: return '', 304 - return render_tmpl(f'{module}.htm', **args) + return render_tmpl(f'{module}.pug', **args) diff --git a/blueprints/risdeveau/templates/88x31.htm b/blueprints/risdeveau/templates/88x31.htm deleted file mode 100644 index 6beebe3..0000000 --- a/blueprints/risdeveau/templates/88x31.htm +++ /dev/null @@ -1,16 +0,0 @@ -
- -
- - - - -
-
\ No newline at end of file diff --git a/blueprints/risdeveau/templates/88x31.pug b/blueprints/risdeveau/templates/88x31.pug new file mode 100644 index 0000000..8546f3b --- /dev/null +++ b/blueprints/risdeveau/templates/88x31.pug @@ -0,0 +1,13 @@ +div + .88-31 + a.disabled(href="https://chest.lair.moe") + img(src="/static/img/88x31/gf.png") + + a#pie(href="https://preview.about.akarpov.ru") + img(src="/static/img/88x31/withpie.gif") + + .88-31 + a(href="https://g.lair.moe/Sweetbread/nixos-config") + img(src="/static/img/88x31/nixos.webp") + + img(src="/static/img/88x31/teto.webp") diff --git a/blueprints/risdeveau/templates/contacts.htm b/blueprints/risdeveau/templates/contacts.htm deleted file mode 100644 index edd6c37..0000000 --- a/blueprints/risdeveau/templates/contacts.htm +++ /dev/null @@ -1,48 +0,0 @@ - \ No newline at end of file diff --git a/blueprints/risdeveau/templates/contacts.pug b/blueprints/risdeveau/templates/contacts.pug new file mode 100644 index 0000000..9f1bedf --- /dev/null +++ b/blueprints/risdeveau/templates/contacts.pug @@ -0,0 +1,40 @@ +.block + h3 Development + .blocks.badges + a.block(href="//g.lair.moe/Sweetbread") + img.icon(src="/static/icon/service/gitea.webp") + | Gitea + + a.block(href="https://github.com/VerySweetBread") + img.icon(src="https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png") + | GitHub + + a.block(href="https://git.kolibrios.org/Sweetbread") + img.icon(src="https://git.kolibrios.org/assets/img/logo.svg") + | KolibriOS Git + + h3 Contacts + .blocks.badges + a.block(href="https://matrix.to/#/@risdeveau:lair.moe") + img.icon(src="https://matrix.org/assets/favicon.ico") + | Matrix + + a.block(href="//b.lair.moe/@risdeveau") + img.icon(src="/static/icon/service/sharkey.webp") + | Fediverse + + a.block(href="https://discord.com/users/459823895256498186") + img.icon(src="https://cdn.prod.website-files.com/6257adef93867e50d84d30e2/66e3d80db9971f10a9757c99_Symbol.svg") + | Discord + + a.block(href="mailto:risdeveau@lair.moe") Mail + + h3 Game accounts + .blocks.badges + a.block(href="https://steamcommunity.com/id/risdeveau") + img.icon(src="https://store.steampowered.com/favicon.ico") + | Steam + + a.block(href="https://gamebanana.com/members/3899828") + img.icon(src="https://images.gamebanana.com/static/img/favicon/favicon.ico") + | GameBanana diff --git a/blueprints/risdeveau/templates/donate.htm b/blueprints/risdeveau/templates/donate.htm deleted file mode 100644 index 7e7b12b..0000000 --- a/blueprints/risdeveau/templates/donate.htm +++ /dev/null @@ -1,19 +0,0 @@ -
-

Wallets

-
-
-

POL, BNB

- -
- -
-

TON

- -
- -
-

XMR

- -
-
-
diff --git a/blueprints/risdeveau/templates/donate.pug b/blueprints/risdeveau/templates/donate.pug new file mode 100644 index 0000000..3306533 --- /dev/null +++ b/blueprints/risdeveau/templates/donate.pug @@ -0,0 +1,14 @@ +div + h3 Wallets + .blocks.qr + .block.qr + p POL, BNB + img(src="/static/img/wallets/evm.webp") + + .block.qr + p TON + img(src="/static/img/wallets/ton.webp") + + .block.qr + p XMR + img(src="/static/img/wallets/xmr.webp") diff --git a/blueprints/risdeveau/templates/index.html b/blueprints/risdeveau/templates/index.html deleted file mode 100644 index 61a3aae..0000000 --- a/blueprints/risdeveau/templates/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - Sweet Bread - - - - - - - - - - - - - - - -
- Lair -
- -
- {% for m in ( - 'info', - 'contacts', - 'listenbrainz', - 'steam', - 'donate', - '88x31' - ) %} - {% include 'risdeveau/templates/%s.htm' % m %} - {% endfor %} -
- - diff --git a/blueprints/risdeveau/templates/index.pug b/blueprints/risdeveau/templates/index.pug new file mode 100644 index 0000000..805e487 --- /dev/null +++ b/blueprints/risdeveau/templates/index.pug @@ -0,0 +1,50 @@ +doctype html + +html(lang="en") + head + title Sweet Bread + + each f in ('tw', 'main', 'risdeveau') + link(rel="stylesheet", href="/static/style/#{f}.css") + + link(rel="icon" type="image/webp" href="/static/icon/us/risdeveau.webp") + + script(src="/static/script/rtime.js") + script( + src="https://track.lair.moe/api/script.js" + data-site-id="1" + defer + ) + script( + src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.8/dist/htmx.min.js" + integrity="sha384-/TgkGk7p307TH7EXJDuUlgG3Ce1UVolAOFopFekQkkXihi5u/6OCvVKyz1W+idaz" + crossorigin="anonymous" + ) + script(defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js") + + meta(name="viewport" content="width=device-width, initial-scale=1.0") + meta( + name="htmx-config" + content='{ + "responseHandling":[ + {"code":"204", "swap": false}, + {"code":"304", "swap": false}, + {"code":"[23]..", "swap": true}, + {"code":"422", "swap": true}, + {"code":"[45]..", "swap": false, "error":true}, + {"code":"...", "swap": true} + ] + }' + ) + + body + header + a(href=url_for('root.index')) Lair + + main + include risdeveau/templates/info.pug + include risdeveau/templates/contacts.pug + include risdeveau/templates/listenbrainz.pug + include risdeveau/templates/steam.pug + include risdeveau/templates/donate.pug + include risdeveau/templates/88x31.pug diff --git a/blueprints/risdeveau/templates/info.htm b/blueprints/risdeveau/templates/info.htm deleted file mode 100644 index dec2475..0000000 --- a/blueprints/risdeveau/templates/info.htm +++ /dev/null @@ -1,50 +0,0 @@ -
- - - - - - - - - - - - - -
DoB2005-01-13
Languages - - - - - - - - - - - - - - - - - - - - - -
RussianNative
EnglishB2
FrenchA1?
GermanA2?
JapaneseBeginner
-
Student - - - - - - - - - -
Programmer2.5/4yr.
Translator2.5/3yr.
-
-
diff --git a/blueprints/risdeveau/templates/info.pug b/blueprints/risdeveau/templates/info.pug new file mode 100644 index 0000000..a76b2f6 --- /dev/null +++ b/blueprints/risdeveau/templates/info.pug @@ -0,0 +1,35 @@ +.block + table + tr + th DoB + td 2005-01-13 + tr + th Languages + td + table + tr + td Russian + td Native + tr + td English + td B2 + tr + td French + td A1? + tr + td German + td A2? + tr + td Japanese + td Beginner + + tr + th Student + td + table + tr + td Programmer + td 2.5/4yr. + tr + td Translator + td 2.5/3yr. diff --git a/blueprints/risdeveau/templates/listenbrainz.htm b/blueprints/risdeveau/templates/listenbrainz.htm deleted file mode 100644 index 8611771..0000000 --- a/blueprints/risdeveau/templates/listenbrainz.htm +++ /dev/null @@ -1,39 +0,0 @@ -{% macro track_block(track, is_active=false) %} -
- {% if track.cover_url %} - - {% endif %} -
-

{{ track.artist_name }}

-

{{ track.track_name }}

- {% if not is_active %} -

- {% endif %} -
-
-{% endmacro %} - -
-

Listenbrainz

- {% if lb.caches.now.data and lb.caches.now.data.listens.0 %} - {{ track_block(lb.caches.now.data.listens.0, is_active=true) }} - {% endif %} - {% if lb.caches.listens.data and lb.caches.listens.data.listens %} - {% for track in lb.caches.listens.data.listens %} - {{ track_block(track) }} - {% endfor %} - {% endif %} -
diff --git a/blueprints/risdeveau/templates/listenbrainz.pug b/blueprints/risdeveau/templates/listenbrainz.pug new file mode 100644 index 0000000..9d89a40 --- /dev/null +++ b/blueprints/risdeveau/templates/listenbrainz.pug @@ -0,0 +1,32 @@ +mixin track_block(track, is_active=false) + - set act_cls = "active" if is_active else "" + .block.track(class=act_cls) + if track.cover_url + img(src=track.cover_url) + div + p + b= track.artist_name + p= track.track_name + + if not is_active + p( + x-data="rtime(#{track.listened_at})", + x-text="`Listened ${timeString}`", + :class="textColorClass" + ) + +.block( + hx-get="/m/listenbrainz", + hx-trigger="every 15s", + hx-swap="outerHTML", + hx-headers='{"If-None-Match": "#{lb.etag}"}' +) + h2 + a(href="https://listenbrainz.org/user/risdeveau/") Listenbrainz + + if lb.caches.now.data and lb.caches.now.data.listens[0] + +track_block(lb.caches.now.data.listens[0], true) + + if lb.caches.listens.data and lb.caches.listens.data.listens + each track in lb.caches.listens.data.listens + +track_block(track) diff --git a/blueprints/risdeveau/templates/steam.htm b/blueprints/risdeveau/templates/steam.htm deleted file mode 100644 index b02be66..0000000 --- a/blueprints/risdeveau/templates/steam.htm +++ /dev/null @@ -1,69 +0,0 @@ -
-

Steam

- - {% if steam.caches.recent.data.games %} -

Recently played:

- {% for g in steam.caches.recent.data.games %} - - - - - - -
- {{ g.name }} -

Played last 2 weeks: {{ tmsmp(g.playtime_2weeks*60) }} -

- Total played: - {{ tmsmp(g.playtime_linux_forever*60) }} (L) + - {{ tmsmp(g.playtime_windows_forever*60) }} (W) = - {{ tmsmp(g.playtime_forever*60) }} (T) -

-
-
- {% endfor %} -

- {% endif %} - - {% if steam.caches.owned.data.games %} -

Top played games:

- {% set owned_games = steam.caches.owned.data.games | sort(attribute="playtime_forever", reverse=true) %} - {% for g in owned_games[:5] %} - - - - - - -
- {{ g.name }} -

- Total played: - {{ tmsmp(g.playtime_linux_forever*60) }} (L) + - {{ tmsmp(g.playtime_windows_forever*60) }} (W) = - {{ tmsmp(g.playtime_forever*60) }} (T) -

- {% if g.rtime_last_played != 0 %} -

Last played: {{ utmsmp(g.rtime_last_played) }}

- {% endif %} -
-
- {% endfor %} -

- {% endif %} -
diff --git a/blueprints/risdeveau/templates/steam.pug b/blueprints/risdeveau/templates/steam.pug new file mode 100644 index 0000000..c31daba --- /dev/null +++ b/blueprints/risdeveau/templates/steam.pug @@ -0,0 +1,52 @@ +mixin game_block(g, show_last_played=false) + a.block(href="https://store.steampowered.com/app/#{g.appid}", target="_blank") + picture + source(media="(max-width: 45rem)", srcset=g.v_cover) + img(src=g.h_cover) + div + strong= g.name + if g.playtime_2weeks + p Played last 2 weeks: #{tmsmp(g.playtime_2weeks * 60)} + p + - var lin = g.playtime_linux_forever > 0; + - var win = g.playtime_windows_forever > 0; + | Total played: + if lin + = tmsmp(g.playtime_linux_forever * 60) + | ( + abbr(title="On Linux") L + | ) + if lin and win + = " + " + if win + = tmsmp(g.playtime_windows_forever * 60) + | ( + abbr(title="On Windows") W + | ) + if lin and win + = " = " + = tmsmp(g.playtime_forever * 60) + if show_last_played and g.rtime_last_played != 0 + p Last played: #{utmsmp(g.rtime_last_played)} + +.block.steam( + hx-get="/m/steam", + hx-trigger="every 1m", + hx-swap="outerHTML", + hx-headers='{ "If-None-Match": "#{steam.etag}" }' +) + h2 + a(href="https://steamcommunity.com/id/risdeveau") Steam + + if steam.caches.recent.data.games + h3 Recently played: + each g in steam.caches.recent.data.games + +game_block(g) + p(x-data="rtime(#{steam.caches.recent.last_updated})", x-text="`Last updated: ${timeString}`") + + if steam.caches.owned.data.games + h3 Top played games: + - var owned_games = steam.caches.owned.data.games | sort(attribute="playtime_forever", reverse=true) + each g in owned_games[:5] + +game_block(g, true) + p(x-data="rtime(#{steam.caches.owned.last_updated})", x-text="`Last updated: ${timeString}`") diff --git a/blueprints/root/__init__.py b/blueprints/root/__init__.py index 903dc7d..10c3739 100644 --- a/blueprints/root/__init__.py +++ b/blueprints/root/__init__.py @@ -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') diff --git a/blueprints/root/templates/base.pug b/blueprints/root/templates/base.pug new file mode 100644 index 0000000..0473c13 --- /dev/null +++ b/blueprints/root/templates/base.pug @@ -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 diff --git a/blueprints/root/templates/base.tmpl b/blueprints/root/templates/base.tmpl deleted file mode 100644 index bcb0f29..0000000 --- a/blueprints/root/templates/base.tmpl +++ /dev/null @@ -1,35 +0,0 @@ - - - - Lair - - - - - - - - - - - - - - - - - {% include 'header.tmpl' %} - -

{% block title %}{% endblock %}

- -
- {% block content %}{% endblock %} -
- - {% include 'footer.tmpl' %} - - \ No newline at end of file diff --git a/blueprints/root/templates/footer.pug b/blueprints/root/templates/footer.pug new file mode 100644 index 0000000..489396b --- /dev/null +++ b/blueprints/root/templates/footer.pug @@ -0,0 +1,9 @@ +footer + div + | lair.moe 🄯 2025 - 2026 + div + a(href="https://g.lair.moe/Sweetbread/lair.moe")= _('site source') + div + = _('contact us') + = ": " + a(href="mailto:admin@lair.moe") admin@lair.moe diff --git a/blueprints/root/templates/footer.tmpl b/blueprints/root/templates/footer.tmpl deleted file mode 100644 index 7fae879..0000000 --- a/blueprints/root/templates/footer.tmpl +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/blueprints/root/templates/header.pug b/blueprints/root/templates/header.pug new file mode 100644 index 0000000..96742ff --- /dev/null +++ b/blueprints/root/templates/header.pug @@ -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 diff --git a/blueprints/root/templates/header.tmpl b/blueprints/root/templates/header.tmpl deleted file mode 100644 index e6fe82f..0000000 --- a/blueprints/root/templates/header.tmpl +++ /dev/null @@ -1,20 +0,0 @@ -
- {%- if request.path != url_for('.index') %} - Lair - {%- else %} -
- {%- endif %} - - -
\ No newline at end of file diff --git a/blueprints/root/templates/host.html b/blueprints/root/templates/host.html deleted file mode 100644 index 9ead86d..0000000 --- a/blueprints/root/templates/host.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends 'base.tmpl' %} - -{% block title %}{{ _('about host') }}{% endblock %} - -{% block content %} - - {{ _("host:hoster") }}: play2go -

{{ _('host:hoster_descr') }}

-
- -
- {{ _("host:specifications") }}: -
    -
  • CPU: 4xRyzen 9@3.4GHz
  • -
  • RAM: 8 GB
  • -
  • SSD: 150 GB
  • -
  • ETH: 1 Gb/s
  • -
  • Loc: Deutschland
  • -
-
-{% endblock %} diff --git a/blueprints/root/templates/host.pug b/blueprints/root/templates/host.pug new file mode 100644 index 0000000..05614b7 --- /dev/null +++ b/blueprints/root/templates/host.pug @@ -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 diff --git a/blueprints/root/templates/index.html b/blueprints/root/templates/index.html deleted file mode 100644 index 4b3ff0b..0000000 --- a/blueprints/root/templates/index.html +++ /dev/null @@ -1,52 +0,0 @@ -{% extends 'base.tmpl' %} - -{% block title %} - - Lair -{% endblock %} - -{% block content %} - -
- - Sharkey -
-

{{ _('index.descr:sharkey') }}

-
- -
- - Gitea -
-

{{ _('index.descr:gitea') }}

-
- -
-

Matrix — {{ _('index.descr:matrix') }}

-

Copyparty — {{ _('index.descr:copyparty') }}

-

IT-tools — {{ _('index.descr:tools') }}

-

Vert — {{ _('index.descr:vert') }}

-
- -
- {{ _('index:altfronts') }} -

4get — {{ _('index.descr:4get') }}

-

TransLite — {{ _('index.descr:tl') }}

-

Intellectual — {{ _('index.descr:lyr') }}

-
- -
-
- DNS: -
    -
  • 64.188.64.176
  • -
  • DoT: lair.moe:853
  • -
  • DoH: dns.lair.moe
  • -
-
-

- Yggdrasil: - 200:ee1:bad2:1732:4b91:c3e3:2f08:29b3 -

-
-{% endblock %} diff --git a/blueprints/root/templates/index.pug b/blueprints/root/templates/index.pug new file mode 100644 index 0000000..2cf0fb3 --- /dev/null +++ b/blueprints/root/templates/index.pug @@ -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 + | — {{ _('index.descr:matrix') }} + p + a(href="//c.lair.moe" target="_blank") + strong Copyparty + | — {{ _('index.descr:copyparty') }} + p + a(href="https://tools.lair.moe" target="_blank") + strong IT-tools + | — {{ _('index.descr:tools') }} + p + a(href="https://vert.lair.moe" target="_blank") + strong Vert + | — {{ _('index.descr:vert') }} + + .block + strong= _('index:altfronts') + p + a(href="https://s.lair.moe" target="_blank") + strong 4get + | — {{ _('index.descr:4get') }} + p + a(href="https://tl.lair.moe" target="_blank") + strong TransLite + | — {{ _('index.descr:tl') }} + p + a(href="https://lyr.lair.moe" target="_blank") + strong Intellectual + | — {{ _('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 diff --git a/blueprints/root/templates/us.html b/blueprints/root/templates/us.html deleted file mode 100644 index 7851093..0000000 --- a/blueprints/root/templates/us.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends 'base.tmpl' %} - -{% block title %}О нас{% endblock %} - -{% block content %} - -
- - Sweetbread -
- Главный админ, занимается почти всеми сервисами. Создал этот сайт -
- -
-
- - Chest -
- Должна была помогать делать этот сайт -
-{% endblock %} \ No newline at end of file diff --git a/blueprints/root/templates/us.pug b/blueprints/root/templates/us.pug new file mode 100644 index 0000000..da63a8b --- /dev/null +++ b/blueprints/root/templates/us.pug @@ -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 + | Должна была помогать делать этот сайт diff --git a/requirements.txt b/requirements.txt index 75d13ee..22e8d2d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ requests APScheduler musicbrainzngs python-magic +git+https://github.com/VerySweetBread/pypugjs diff --git a/shell.nix b/shell.nix index c814697..9c7c75d 100644 --- a/shell.nix +++ b/shell.nix @@ -9,7 +9,7 @@ pkgs.mkShell { python python-magic virtualenv - pkgs.nodePackages.sass + pkgs.dart-sass ]; shellHook = ''