Compare commits

..

1 Commits

Author SHA1 Message Date
1c3911d722
make webring page
This webring page references another page's CSS rather than making its
own.

It has one link, to Tilde.zone.
2023-08-04 17:48:12 +02:00
14 changed files with 236 additions and 138 deletions

View File

@ -1,45 +0,0 @@
#! /usr/bin/python3
# needs lowdown and feegden installed
# feedgen can be installed with pip
# also expects that *.md files are in blog/ directory
from feedgen.feed import FeedGenerator
import subprocess
import os
blogs_dir = os.fsencode("blog")
def blogposts_list_gen():
output_list = []
for file in os.listdir(blogs_dir):
filename = os.fsdecode(file)
if filename.endswith(".md"):
full_path = "blog/" + filename
author = subprocess.run("lowdown -X author " + full_path, capture_output=True, shell=True, text=True).stdout.strip()
title = subprocess.run("lowdown -X title " + full_path, capture_output=True, shell=True, text=True).stdout.strip()
time = subprocess.run("lowdown -X time " + full_path, capture_output=True, shell=True, text=True).stdout.strip()
content_html = subprocess.run("lowdown " + full_path, capture_output=True, shell=True, text=True).stdout.strip()
output_list.append([author, title, time, content_html, full_path])
return output_list
def feedgen(blogs):
fg = FeedGenerator()
fg.id('http://dmz.rs/')
fg.title('Decentrala Blog')
fg.author( {'name':'Decentrala','email':'dmz@dmz.rs'} )
fg.link( href='https://dmz.rs/atom.xml', rel='self' )
for post in blogs:
fe = fg.add_entry()
fe.id("https://dmz.rs/" + post[4][:-3] + ".html")
fe.author({'name': post[0]})
fe.title(post[1])
fe.updated(post[2])
fe.content(content=post[3], type='html')
fg.atom_file('atom.xml')
feedgen(blogposts_list_gen())

43
blogs/Lorem Ipsum.html Normal file
View File

@ -0,0 +1,43 @@
<h1>Nulla possent lacrimas huius</h1>
<h2>Fratres quoque</h2>
<p>Lorem markdownum pariter: lata per tuae quo salus rorant septemfluus mecum
summisque feres potes Ulixes. Aeacus Tritonida reicere non convocat pariter
neque arma refovet quoque stabunt in. Velamina inrita, silvestribus, ut sarcina
memori, bellaque dummodo.</p>
<p>Factis dixit macies coissent! Nactasque molliter quam in memorant velamine;
praemia mundi <em>illo</em> Achille <strong>de</strong>.</p>
<h2>Velut Procrin</h2>
<p>Vobis <a href="http://www.palmae.net/aquis-inmota.html">grave</a> fessos ita Belides; poena
hora oculis celebrandaque audita guttur ad custodia exprobravit. Pacis monuere
et crimen loquor <em>contigit quae</em>! Nondum iudex, auro moratur rogaberis manet.
Faciem in dolor adusque, sum soror pectoris in reppulit superest caesis, Hebrum
e natura sonabunt. Incensaque An monitae, in animoque vulnerat terra cavo
torquet qui humili perque, cristis alii fruitur adacto.</p>
<ul>
<li>Est velavit idem</li>
<li>Naupliades tenebant instanti ense iactura ut nutantem</li>
<li>Miserarum corpore habet</li>
</ul>
<h2>Ad utque sic Charybdis iamque sequenti genitore</h2>
<p>Hesperien arida. Tibi caelo clavigeram saxoque capillos doleamne faveas testes
senex <strong>rudente lacrimis</strong> insula Cnosiacaeque? Dant ablato adulterium gemino,
pluvialibus una, dependent iactura illum redit atque dixi pondera. Eumque
sanguis errare, formasque parabat volubilibus satis creaverat dextera Iuppiter
te sero, est. Opem duceret quam tum pollentibus ramumque tauri; at Saturnia
erigitur imitamine ferens adunca delapsaque viminis, terras.</p>
<h2>Denique ostendit femina tamen</h2>
<p>Telum in ab utque ut et mihi <strong>auras Midan</strong> meo genus membra comites ne. Orbis
via necis. Romana deus, sub frangunt furor crepuscula equorum Teleboasque templa
virgineumque belua obsita est. Fragorem Somnus; ducebas placido oscula.</p>
<blockquote>
<p>Inmota manifesta producit, inquit verbisque fluctus iamque, quo fuerat ipse
nostra, iussit <strong>nec tenebat</strong>. Pars procul, pietate crinales meus <em>totiens</em>
haustus frondes, per sedebat. Domum vincite.</p>
</blockquote>
<h2>De curaque quoque reddat numina quae veniam</h2>
<p>Fessus iacit tantum elimat a medios vinoque finita adspergine liquerat munere
vultibus Atridae pecus positoque reluxit. Veniebat videtur laesae quod vacca,
lolium neu Perseus fraude nominibus contraria.</p>
<p>Parat <strong>ferus</strong> in actis terebrata animaeque <strong>quoque</strong>, deos et morte agitantem
ore. Proelia casus Gryneus. Quis mihi <em>ille cur</em> Assyrius per siquis, ille
Hecabe Arethusa, erigite perfectis.</p>

53
blogs/Lorem Ipsum.md Normal file
View File

@ -0,0 +1,53 @@
# Nulla possent lacrimas huius
## Fratres quoque
Lorem markdownum pariter: lata per tuae quo salus rorant septemfluus mecum
summisque feres potes Ulixes. Aeacus Tritonida reicere non convocat pariter
neque arma refovet quoque stabunt in. Velamina inrita, silvestribus, ut sarcina
memori, bellaque dummodo.
Factis dixit macies coissent! Nactasque molliter quam in memorant velamine;
praemia mundi *illo* Achille **de**.
## Velut Procrin
Vobis [grave](http://www.palmae.net/aquis-inmota.html) fessos ita Belides; poena
hora oculis celebrandaque audita guttur ad custodia exprobravit. Pacis monuere
et crimen loquor *contigit quae*! Nondum iudex, auro moratur rogaberis manet.
Faciem in dolor adusque, sum soror pectoris in reppulit superest caesis, Hebrum
e natura sonabunt. Incensaque An monitae, in animoque vulnerat terra cavo
torquet qui humili perque, cristis alii fruitur adacto.
- Est velavit idem
- Naupliades tenebant instanti ense iactura ut nutantem
- Miserarum corpore habet
## Ad utque sic Charybdis iamque sequenti genitore
Hesperien arida. Tibi caelo clavigeram saxoque capillos doleamne faveas testes
senex **rudente lacrimis** insula Cnosiacaeque? Dant ablato adulterium gemino,
pluvialibus una, dependent iactura illum redit atque dixi pondera. Eumque
sanguis errare, formasque parabat volubilibus satis creaverat dextera Iuppiter
te sero, est. Opem duceret quam tum pollentibus ramumque tauri; at Saturnia
erigitur imitamine ferens adunca delapsaque viminis, terras.
## Denique ostendit femina tamen
Telum in ab utque ut et mihi **auras Midan** meo genus membra comites ne. Orbis
via necis. Romana deus, sub frangunt furor crepuscula equorum Teleboasque templa
virgineumque belua obsita est. Fragorem Somnus; ducebas placido oscula.
> Inmota manifesta producit, inquit verbisque fluctus iamque, quo fuerat ipse
> nostra, iussit **nec tenebat**. Pars procul, pietate crinales meus *totiens*
> haustus frondes, per sedebat. Domum vincite.
## De curaque quoque reddat numina quae veniam
Fessus iacit tantum elimat a medios vinoque finita adspergine liquerat munere
vultibus Atridae pecus positoque reluxit. Veniebat videtur laesae quod vacca,
lolium neu Perseus fraude nominibus contraria.
Parat **ferus** in actis terebrata animaeque **quoque**, deos et morte agitantem
ore. Proelia casus Gryneus. Quis mihi *ille cur* Assyrius per siquis, ille
Hecabe Arethusa, erigite perfectis.

View File

@ -21,29 +21,36 @@
</span> </span>
</header> </header>
<div id="main"> <div id="main">
<h1>Dobrodošao!</h1> <h1>Dobrodosli!</h1>
<p> <p>
Mi smo <em>Decentrala</em> - grupa entuzijasta okupljena oko ideja decentralizacije i slobodnog širenja znanja. Mi smo <em>Decentrala</em> - grupa entuzijasta okupljena oko ideja decentralizacije i slobodnog sirenja znanja.
Zvuči interesantno? Evo još nekih stvari o nama: Zvuci interesantno? Evo jos nekih stvari o nama:
</p> </p>
<dl> <dl>
<dt>Znanje:</dt> <dt>Znanje:</dt>
<dd>Sve naše radionice su besplatne i otvorene za sve zainteresovane. <dd>Sve nase radionice su besplatne i otvorene za sve zainteresovane, a ako imate nesto sto zelite da
Ako želiš nešto da podeliš najavi se na našem <a href="https://forum.dmz.rs">Forumu</a> i održi radionicu kod nas!</dd> podelite, najavite se na nasem <a href="https://forum.dmz.rs">Forumu</a> i odrzite radionicu kod nas!</dd>
<dt>Akcije:</dt> <dt>Akcije:</dt>
<dd>Povremeno organizujemo različite akcije, hakatone, crypto-partije, izložbe i slične događaje otvorene za sve zainteresovane. </dd> <dd>Povremeno organizujemo razlicite akcije, hakatone, crypto-partije, izlozbe i slicne dogadjaje otvorene za sve
zainteresovane. </dd>
<dt>Servisi:</dt> <dt>Servisi:</dt>
<dd>Na našim serverima pokrećemo razne servise (email, git, wiki i druge) koji su otvoreni za sve i koji se mogu koristiti sa ili bez našeg naloga.</dd> <dd>Na nasim serverima pokrecemo neke servise (email, git, wiki i druge) koji su otvoreni za sve i koje mozes
koristiti sa ili bez naseg naloga.</dd>
<dt>Ljudi:</dt>
<dd>Lorem ipsum dolor sit amet.</dd>
</dl> </dl>
<p> <p>
Ako si i dalje zainteresovan, možeš napraviti <a href="/pages/account.html">nalog</a> na našem serveru koji će ti omogućiti korišćenje svih naših <a href="/pages/services.html">servisa</a>. Ako si procitao sve i i dalje si zainteresovan, mozes da napravis <a href="/pages/account.html">nalog</a> na nasem
Ako želiš prvo da vidiš kako to sve izgleda u realnosti, možeš doći na neki od naših <a href="/pages/events.html">događaja</a>, i tu nas upoznati! serveru koji ce
ti omoguciti da koristis sve nase <a href="/pages/services.html">servise</a>, a ako prvo hoces da vidis kako to
sve izgleda u realnosti, mozes da dodjes na neki od nasih <a href="/pages/events.html">dogadjaja</a>, i tamo nas
upoznas!
</p> </p>
<img id="mesh" src="/img/mesh-light.svg"> <img id="mesh" src="/img/mesh-light.svg">
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -51,7 +58,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -61,7 +68,7 @@
<span class="links"> <span class="links">
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="/img/cc-light.svg" <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="/img/cc-light.svg"
alt="CreativeCommons"></a> alt="CreativeCommons"></a>
<a href=""><img src="/img/w-light.svg" alt="Webring"></a> <a href="/pages/webring.html"><img src="/img/w-light.svg" alt="Webring"></a>
<a href="https://gitea.dmz.rs/eline/decentrala-website-static-new"><img src="/img/git-light.svg" <a href="https://gitea.dmz.rs/eline/decentrala-website-static-new"><img src="/img/git-light.svg"
alt="SourceCode"></a> alt="SourceCode"></a>
<a href="https://balkan.fedive.rs/@decentrala"><img src="/img/mastodon-light.svg" alt="Mastodon"></a> <a href="https://balkan.fedive.rs/@decentrala"><img src="/img/mastodon-light.svg" alt="Mastodon"></a>
@ -71,4 +78,4 @@
</footer> </footer>
</body> </body>
</html> </html>

View File

@ -25,7 +25,7 @@
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -33,7 +33,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>

View File

@ -25,7 +25,7 @@
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -33,7 +33,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>

View File

@ -21,16 +21,16 @@
</header> </header>
<div id="main"> <div id="main">
<h1>Kontakt</h1> <h1>Kontakt</h1>
<p>Možeš nam poslati mail na <a href="mailto:dmz@dmz.rs">dmz@dmz.rs</a> ili se mozes pridružiti našem <a <p>Mozes nam poslati mail na <a href="mailto:dmz@dmz.rs">dmz@dmz.rs</a> ili se mozes pridruziti nasem <a
href="https://forum.dmz.rs">Forumu</a>.</p> href="https://forum.dmz.rs">Forumu</a>.</p>
<p>Takođe smo i na <a href="https://balkan.fedive.rs/@decentrala">Fediversu!</a></p> <p>Takodje smo i na <a href="https://balkan.fedive.rs/@decentrala">Fediversu!</a></p>
<p style="position: relative; top: 5rem;">U slucaju da nadjete <em>bug</em> na sajtu, bili bismo jako zahvalni <p style="position: relative; top: 5rem;">U slucaju da nadjete <em>bug</em> na sajtu, bili bismo jako zahvalni
ako bi mogli da nam ga prijavite (npr. putem emaila).</p> ako bi mogli da nam ga prijavite (npr. putem emaila).</p>
<img id="mesh" src="/img/mesh-light.svg"> <img id="mesh" src="/img/mesh-light.svg">
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -38,7 +38,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>

View File

@ -25,7 +25,7 @@
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -33,7 +33,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>

View File

@ -66,7 +66,7 @@
</div> </div>
<footer> <footer>
<div id="sections-menu"> <div id="sections-menu">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>
@ -74,7 +74,7 @@
</div> </div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections"> <span class="sections">
<a href="/pages/events.html">Događaji</a> <a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a> <a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a> <a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a> <a href="/pages/services.html">Servisi</a>

56
pages/webring.html Normal file
View File

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/styles/style.css">
<link rel="stylesheet" href="/styles/blog.css">
<link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon">
<script src="/scripts/main.js" defer></script>
<title>Decentrala - Blog</title>
</head>
<body>
<header>
<a class="logo" href="/index.html">Decentrala</a>
<span>
<button id="theme-switcher">turn the lights off</button>
<a class="account" href="/pages/account.html">Nalog</a>
</span>
</header>
<div id="main">
<list>
<li> <a href="https://tilde.zone/explore">Tilde Zone</a> </li>
</list>
<img id="mesh" src="/img/mesh-light.svg">
</div>
<footer>
<div id="sections-menu">
<a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a>
<a href="/pages/contact.html">Kontakt</a>
</div>
<button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button>
<span class="sections">
<a href="/pages/events.html">Dogadjaji</a>
<a href="/pages/projects.html">Projekti</a>
<a href="/pages/blog.html">Blog</a>
<a href="/pages/services.html">Servisi</a>
<a href="/pages/contact.html">Kontakt</a>
</span>
<span class="copyleft">
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="/img/cc-light.svg"
alt="CreativeCommons"></a>
<a href=""><img src="/img/w-light.svg" alt="Webring"></a>
<a href="https://gitea.dmz.rs/eline/decentrala-website-static-new"><img src="/img/git-light.svg"
alt="SourceCode"></a>
<a href="https://balkan.fedive.rs/@decentrala"><img src="/img/mastodon-light.svg" alt="Mastodon"></a>
<span>Decentrala &copy; 2023</span>
</span>
</footer>
</body>
</html>

View File

@ -5,9 +5,8 @@ from dateutil import relativedelta
EVENTS_CSV_PATH = "dogadjaji.csv" EVENTS_CSV_PATH = "dogadjaji.csv"
CURRENT_TIME = dt.date.today() CURRENT_TIME = dt.date.today()
NEXT_MONTH = CURRENT_TIME + relativedelta.relativedelta(months=1, day=1) NEXT_MONTH = CURRENT_TIME + relativedelta.relativedelta(months=1, day=1)
DAYS_OF_WEEK_SR = ("PON", "UTO", "SRE", "ČET", "PET", "SUB", "NED") DAYS_OF_WEEK_SR = ("PON", "UTO", "SRE", "CET", "PET", "SUB", "NED")
MONTHS_SR = ("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust",\ MONTHS_SR = ("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar")
"Septembar", "Oktobar", "Novembar", "Decembar")
def load_events(csv_path:str) -> list[dict]: def load_events(csv_path:str) -> list[dict]:
events = [] events = []
@ -21,9 +20,11 @@ def load_events(csv_path:str) -> list[dict]:
event_title = event[3] event_title = event[3]
current_event = {"date":event_date_parsed, current_event = {"date":event_date_parsed,
"time":event_time, "time":event_time,
"title":event_title.strip()} "title":event_title}
if event_date_parsed >= NEXT_MONTH: if event_date_parsed >= NEXT_MONTH:
events.append(current_event) events.append(current_event)
return events return events
def render_table(events:list[dict])-> str: def render_table(events:list[dict])-> str:
@ -32,23 +33,18 @@ def render_table(events:list[dict])-> str:
date = DAYS_OF_WEEK_SR[event["date"].weekday()] date = DAYS_OF_WEEK_SR[event["date"].weekday()]
day = event["date"].day day = event["date"].day
title = event["title"] title = event["title"]
html += f"\t\t\t<tr> <td>{date}</td> <td>{day}.</td> <td>{title}</td> </tr>\n" html += f"<tr><td>{date}</td><td>{day}.</td><td>{title}</td></tr>\n"
return html return html
def render_page(table: str) -> str: def render_page(table: str) -> str:
head = "<head>\n\t<meta charset=\"UTF-8\">\n\t<link rel=\"stylesheet\"\ head = "<head><link rel=\"stylesheet\" href=\"styles/poster.css\"><head>"
href=\"styles/poster.css\">\n<head>"
header = "<h1>DECENTRALA</h1>" header = "<h1>DECENTRALA</h1>"
subheader = f"<h2>Plan za {MONTHS_SR[NEXT_MONTH.month - 1]}</h2>" subheader = f"<h2>Plan za {MONTHS_SR[NEXT_MONTH.month - 1]}</h2>"
link = "<div id=link>dmz.rs</div>" link = "<div id=link>dmz.rs</div>"
p1 = "<p>Radionice počinju u <strong>19h</strong> u Društvenom centru Krov\ p1 = "<p>Radionice počinju u <strong>19h</strong> u Društvenom centru Krov u <strong>Kraljice Marije 47</strong>.</p>"
u <strong>Kraljice Marije 47</strong>.</p>" p2 = "<p>Ulaz u zgradu je u prolazu pored Štark prodavnice slatkiša, odmah pored menjačnice. DC Krov je na poslednjem spratu.</p>"
p2 = "<p>Ulaz u zgradu je u prolazu pored Štark prodavnice slatkiša, odmah\ return f"<html>{head}<body><main>{header}{subheader}<table>{table}</table>{p1}{p2}{link}</main></body></html>"
pored menjačnice. DC Krov je na poslednjem spratu.</p>"
return f"<html>\n{head}\n<body>\n\t<main>\n\t\t{header}\n\t\t{subheader}\
\n\t\t<table>\n{table}\t\t</table>\n\t\t{p1}\n\t\t{p2}\n\t\t{link}\n\t</main>\
\n</body>\n</html>"
def main(): def main():
events = load_events(EVENTS_CSV_PATH) events = load_events(EVENTS_CSV_PATH)
table = render_table(events) table = render_table(events)
@ -57,5 +53,6 @@ def main():
f.write(page) f.write(page)
f.close() f.close()
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -22,7 +22,7 @@ if (theme !== null) {
} }
theme_switcher.addEventListener("click", () => { theme_switcher.addEventListener("click", () => {
if (theme_switcher.getAttribute("title").indexOf("off") !== -1) { if (theme_switcher.textContent.indexOf("off") !== -1) {
changeToDarkTheme(); changeToDarkTheme();
} else { } else {
changeToLightTheme(); changeToLightTheme();
@ -30,7 +30,7 @@ theme_switcher.addEventListener("click", () => {
}); });
function changeToDarkTheme() { function changeToDarkTheme() {
theme_switcher.setAttribute("title", "turn the light on"); theme_switcher.textContent = "turn the light on";
document.documentElement.style.setProperty("--border", "var(--dark-border)"); document.documentElement.style.setProperty("--border", "var(--dark-border)");
document.documentElement.style.setProperty("--text", "var(--dark-text)"); document.documentElement.style.setProperty("--text", "var(--dark-text)");
document.documentElement.style.setProperty("--bg", "var(--dark-bg)"); document.documentElement.style.setProperty("--bg", "var(--dark-bg)");
@ -41,7 +41,7 @@ function changeToDarkTheme() {
} }
function changeToLightTheme() { function changeToLightTheme() {
theme_switcher.setAttribute("title", "turn the light off"); theme_switcher.textContent = "turn the light off";
document.documentElement.style.setProperty("--border", "var(--light-border)"); document.documentElement.style.setProperty("--border", "var(--light-border)");
document.documentElement.style.setProperty("--text", "var(--light-text)"); document.documentElement.style.setProperty("--text", "var(--light-text)");
document.documentElement.style.setProperty("--bg", "var(--light-bg)"); document.documentElement.style.setProperty("--bg", "var(--light-bg)");
@ -84,10 +84,12 @@ window.addEventListener("resize", () => {
} }
}); });
main.addEventListener("click", () => { main.addEventListener("click", (event) => {
if (sections_button.getAttribute("opened") === "true") { if (sections_button.getAttribute("opened") === "true") {
closeMenu(); closeMenu();
} }
}); });
// DEBUG;
console.log(window.innerWidth);
console.log(window.innerHeight);

View File

@ -40,6 +40,7 @@ h2 {
font-size: 2rem; font-size: 2rem;
} }
p { p {
font-size: 1.5rem; font-size: 1.5rem;
} }

View File

@ -5,7 +5,9 @@
--dark-text: #ffffff; --dark-text: #ffffff;
--dark-bg: #181715; --dark-bg: #181715;
--dark-border: #ffffff; --dark-border: #ffffff;
--hightlight: #72dec2; --hightlight: #72dec2;
--border: var(--light-border); --border: var(--light-border);
--text: var(--light-text); --text: var(--light-text);
--bg: var(--light-bg); --bg: var(--light-bg);
@ -86,24 +88,10 @@ a:focus {
} }
#logo { #logo {
font-size: 2.5rem; font-size: 3rem;
font-weight: bold; font-weight: bold;
font-variant: small-caps;
} }
#theme-switcher {
border: 3px solid var(--border);
width: 1.5rem;
height: 1.5rem;
border-radius: 3rem;
margin-left: auto;
background: linear-gradient(90deg, var(--border) 0%, var(--border) 50%, var(--bg) 51%, var(--bg) 100%);
}
#theme-switcher:hover {
border-color: var(--hightlight);
background: linear-gradient(90deg, var(--hightlight) 0%, var(--hightlight) 50%, var(--bg) 51%, var(--bg) 100%);
}
.account, .account,
.sections, .sections,
#sections-menu { #sections-menu {
@ -118,10 +106,37 @@ a:focus {
pointer-events: none; pointer-events: none;
} }
@media screen and (max-height: 860px),
screen and (max-width: 1500px) {
#mesh {
display: none;
}
}
@media screen and (max-width: 1160px) {
.sections {
display: none;
}
#sections-button {
display: block !important;
}
}
.links { .links {
display: flex; display: flex;
} }
@media screen and (max-width: 540px) {
#logo {
font-size: 2.2rem;
}
.links {
display: none;
}
}
#sections-button { #sections-button {
display: none; display: none;
} }
@ -141,6 +156,8 @@ a:focus {
display: none; display: none;
} }
.copyleft a, .copyleft a,
.sections a { .sections a {
margin: 0 1rem 0 0; margin: 0 1rem 0 0;
@ -164,37 +181,4 @@ button {
background: var(--bg); background: var(--bg);
color: var(--text); color: var(--text);
margin: 0 2rem 0 0; margin: 0 2rem 0 0;
cursor: pointer;
}
@media screen and (max-height: 860px),
screen and (max-width: 1500px) {
#mesh {
display: none;
}
}
@media screen and (max-width: 1160px) {
.sections {
display: none;
}
#sections-button {
display: block !important;
}
}
@media screen and (max-width: 540px) {
#logo {
font-size: 2.2rem;
}
.links {
display: none;
}
header,
footer {
padding: 0 1rem;
}
} }