feature: implement page building

This commit is contained in:
Prof. Dr. Matthias Jung DL9MJ
2025-06-24 22:04:13 +02:00
committed by Tim Grelka
parent 952006fa3a
commit 43e7bdc118
4 changed files with 113 additions and 8 deletions
+22 -8
View File
@@ -190,8 +190,7 @@ class Build:
def build_assets(self):
shutil.copytree("assets", "build/assets", dirs_exist_ok=True)
def __build_index(self):
template = self.env.get_template("index.html")
def __parse_snippets(self):
with open("data/snippets.json") as f:
snippets = json.load(f)
@@ -200,14 +199,29 @@ class Build:
snippets[key] = renderer.render_inner(Document(value))
# Remove leading <p> and trailing </p>:
snippets[key] = snippets[key][3:-4]
return snippets
result = template.render({"snippets": snippets})
def __build_index(self, snippets):
template = self.env.get_template("index.html")
result = template.render({"snippets": snippets})
with open("build/index.html", "w") as file:
result = self.__build_page(result)
result = BeautifulSoup(result, "html.parser").prettify()
file.write(result)
with open("build/index.html", "w") as file:
result = self.__build_page(result)
result = BeautifulSoup(result, "html.parser").prettify()
file.write(result)
def __build_course_page(self, snippets, template, page):
template = self.env.get_template(f"{template}.html")
result=template.render({"snippets": snippets})
with open(f"build/{page}.html", "w") as file:
result = self.__build_page(result)
result = BeautifulSoup(result, "html.parser").prettify()
file.write(result)
def build_website(self):
self.__build_index()
snippets = self.__parse_snippets()
self.__build_index(snippets)
self.__build_course_page(snippets, "kurse-karte", "kurse_vor_ort_karte")
self.__build_course_page(snippets, "kurse-liste", "kurse_vor_ort_liste")
self.__build_course_page(snippets, "patenkarte", "patenkarte")
+53
View File
@@ -0,0 +1,53 @@
<div class="row flex-lg-row-reverse align-items-top g-5">
<div class="col-lg-7">
<iframe src="https://ajw.darc.de/lehrgangskarte/" width="100%" height="800px"></iframe>
</div>
<div class="col-lg-5">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item"><a href="lernen.html">Lernen</a></li>
<li class="breadcrumb-item active" aria-current="page">Kurse vor Ort</li>
</ol>
</nav>
<h1>Kurse vor Ort</h1>
<p>Erfahrene Ausbilder halten &ndash; meist einmal in der Woche abends &ndash; Lektionen. Zwischen den Treffen solltest du selbständig den Lernstoff vertiefen und üben.</p>
<a class="btn btn-outline-secondary btn-sm px-4 gap-3" href="kurse_vor_ort_liste.html">Online-Kurse</a>
<hr class="col-md-12 mb-3">
<div><b>Ausbildungskurs</b></div>
<div class="d-grid gap-4 d-sm-flex mb-2 align-items-center">
<div class="d-grid gap-2 d-sm-flex mb-2 align-items-center">
<img src="https://ajw.darc.de/lehrgangskarte/img/Lehrgang-neu.png">
neu
</div>
<div class="d-grid gap-2 d-sm-flex mb-2 align-items-center">
<img src="https://ajw.darc.de/lehrgangskarte/img/Lehrgang-begonnen.png">
läuft
</div>
<div class="d-grid gap-2 d-sm-flex mb-2 align-items-center">
<img src="https://ajw.darc.de/lehrgangskarte/img/Lehrgang-jederzeit.png">
auf Anfrage
</div>
</div>
<div><b>Online-Kurs mit Präsenzanteil</b></div>
<div class="d-grid gap-4 d-sm-flex mb-2 align-items-center">
<div class="d-grid gap-2 d-sm-flex mb-2 align-items-center">
<img src="https://ajw.darc.de/lehrgangskarte/img/Online-neu.png">
neu
</div>
<div class="d-grid gap-2 d-sm-flex mb-2 align-items-center">
<img src="https://ajw.darc.de/lehrgangskarte/img/Online-begonnen.png">
läuft
</div>
</div>
</div>
</div>
+19
View File
@@ -0,0 +1,19 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item"><a href="lernen.html">Lernen</a></li>
<li class="breadcrumb-item active" aria-current="page">Kurse vor Ort</li>
</ol>
</nav>
<h1>Kurse vor Ort</h1>
<p>Erfahrene Ausbilder halten &ndash; meist einmal in der Woche abends &ndash; Lektionen. Zwischen den Treffen solltest du selbständig den Lernstoff vertiefen und üben.</p>
<a class="btn btn-outline-secondary btn-sm px-4 gap-3" href="kurse_vor_ort_karte.html">Kartenansicht</a>
<hr class="col-md-12 mb-3">
<script src="https://darc.de/fileadmin/config/Resources/Public/JavaScript/tx_t3jquery/jquery-1.8.x-1.9.x-1.2.x.js?1619439474" type="text/javascript"></script>
<script id="onlinekurse" type="text/javascript" src="https://ajw.darc.de/lehrgangskarte/onlinelehrgaenge.js"></script>
+19
View File
@@ -0,0 +1,19 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item"><a href="lernen.html">Lernen</a></li>
<li class="breadcrumb-item active" aria-current="page">Ausbildungspaten</li>
</ol>
</nav>
<div class="row flex-lg-row-reverse align-items-top g-5 py-1">
<div class="col-lg-7">
<iframe src="https://ajw.darc.de/patenkarte/" width="100%" height="800px"></iframe>
</div>
<div class="col-lg-5">
<h1>Ausbildungspaten</h1>
<p>Die DARC-Ausbildungspaten sind erfahrene Funkamateure und helfen dir gerne beim Einstieg in den Amateurfunk. Sie beantworten Fragen, Helfen beim Lernen und können mit dir praktischen Ausbildungsfunk machen.</p>
</div>
</div>