Loads of boiler plating
Some checks failed
Build, Push, and Deploy to Nomad / docker-nomad (push) Has been cancelled

This commit is contained in:
Henrik Jess
2024-12-10 17:09:37 +01:00
parent e7fdfb4967
commit 492d933119
6 changed files with 172 additions and 158 deletions

30
app.py
View File

@@ -20,17 +20,29 @@ with open("mock_data.json") as file:
# Index route
@app.get("/", response_class=HTMLResponse)
async def get_index(request: Request):
return templates.TemplateResponse("index.html", {"request": request, "data": data})
return templates.TemplateResponse(
"index.html",
{"request": request, "data": data, "page_title": "Forside", "author": "Henrik"}
)
# Category route
@app.get("/category/{category_name}", response_class=HTMLResponse)
async def get_category(request: Request, category_name: str):
category_file = f"data/{category_name}/index.html"
if os.path.exists(category_file):
with open(category_file) as file:
category_content = file.read()
return templates.TemplateResponse(
"category.html",
{"request": request, "category_name": category_name, "content": category_content}
)
# Find den korrekte kategori
category = next((cat for cat in data["categories"] if cat["path"] == category_name), None)
if category:
category_file = f"data/{category_name}/index.html"
if os.path.exists(category_file):
with open(category_file) as file:
category_content = file.read()
return templates.TemplateResponse(
"category.html",
{
"request": request,
"data": data,
"page_title": category["name"],
"author": category["author"],
"content": category_content
},
)
return HTMLResponse("Kategori ikke fundet", status_code=404)

View File

@@ -1,13 +1,13 @@
{
"categories": [
{"name": "SKAT", "path": "skat"},
{"name": "Skole", "path": "skole"},
{"name": "Bolig", "path": "bolig"},
{"name": "Job", "path": "job"}
{"name": "SKAT", "path": "skat", "author": "Henrik"},
{"name": "Skole", "path": "skole", "author": "Erika"},
{"name": "Bolig", "path": "bolig", "author": "Henrik"},
{"name": "Job", "path": "job", "author": "Henrik"}
],
"favorites": [
{"name": "SKAT", "image": "images/pic07.jpg", "description": "Farvorit Kategori"},
{"name": "Skole", "image": "images/pic08.jpg", "description": "Skole info"},
{"name": "SKAT", "image": "images/pic07.jpg", "description": "Favorit Kategori"},
{"name": "Skole", "image": "images/pic08.jpg", "description": "Skole information"},
{"name": "Bolig", "image": "images/pic09.jpg", "description": "Bolig detaljer"}
]
}

View File

@@ -0,0 +1,48 @@
<!DOCTYPE HTML>
<html>
<head>
<title>{% block title %}PortugalFAQ{% endblock %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="{{ url_for('static', path='css/main.css') }}" />
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<!-- Header -->
<header id="header">
<a href="/" class="logo">
<strong>{{ page_title }}</strong> af {{ author }}
</a>
</header>
<!-- Content -->
{% block content %}{% endblock %}
</div>
</div>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
{% include 'navigation.html' %}
<!-- Footer -->
<footer id="footer">
<p class="copyright">
&copy; Henriks lille hjørne: <a href="https://lifefaq.i80.dk">LifeFAQ</a>
</p>
</footer>
</div>
</div>
</div>
<!-- Scripts -->
<script src="{{ url_for('static', path='js/jquery.min.js') }}"></script>
<script src="{{ url_for('static', path='js/browser.min.js') }}"></script>
<script src="{{ url_for('static', path='js/breakpoints.min.js') }}"></script>
<script src="{{ url_for('static', path='js/util.js') }}"></script>
<script src="{{ url_for('static', path='js/main.js') }}"></script>
</body>
</html>

View File

@@ -1,14 +1,12 @@
<!DOCTYPE HTML>
<html>
<head>
<title>{{ category_name }} - PortugalFAQ</title>
<link rel="stylesheet" href="{{ url_for('static', path='css/main.css') }}" />
</head>
<body>
<div id="main">
{% extends "base_template.html" %}
{% block title %}{{ category_name }} - PortugalFAQ{% endblock %}
{% block content %}
<header class="main">
<h1>{{ category_name }}</h1>
<div>{{ content | safe }}</div>
<a href="/">Tilbage til forsiden</a>
</header>
<div>
{{ content | safe }}
</div>
</body>
</html>
{% endblock %}

View File

@@ -1,135 +1,44 @@
<!DOCTYPE HTML>
<html>
<head>
<title>PortugalFAQ - Henriks og Erikas lille side</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="{{ url_for('static', path='css/main.css') }}" />
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<!-- Header -->
<header id="header">
<a href="/" class="logo"><strong>Forside</strong> af Henrik</a>
<ul class="icons">
<li><a href="#" class="icon brands fa-facebook-f"><span class="label">Facebook</span></a></li>
</ul>
</header>
{% extends "base_template.html" %}
<!-- Content -->
<section>
<header class="main">
<h1>Min Drøm om Portugal</h1>
<h2>En Frisk Start for Henrik og Erika</h2>
</header>
{% block title %}PortugalFAQ - Henriks og Erikas lille side{% endblock %}
<span class="image main">
<img src="{{ url_for('static', path='images/pic11.jpg') }}" alt="Portugal" />
</span>
{% block content %}
<section>
<header class="main">
<h1>Min Drøm om Portugal</h1>
<h2>En Frisk Start for Henrik og Erika</h2>
</header>
<hr class="major" />
<p>
Portugal er blevet symbolet på den nye begyndelse, jeg drømmer om en mulighed for at skabe et liv
med mere ro, plads og mening. Som Henrik, far til min 16-årige datter Erika, har tanken om at flytte
fra Danmark til Portugal vokset sig stærkere de seneste år. Det er ikke bare et ønske om sol og varme,
men om en hverdag, hvor livskvalitet betyder mere end stress og travlhed.
</p>
<p>
Drømmen er konkret: en hverdag med tid til både arbejde og familieliv, omgivet af Portugals smukke
landskaber og venlige kultur. Med Lissabon som udgangspunkt forestiller jeg mig et liv, hvor jeg
arbejder struktureret, pendler til Danmark i de lige uger og tilbringer de øvrige uger i vores nye
hjem. Det handler ikke om at efterlade alt bag sig, men om at finde en bedre balance mellem mine
forpligtelser i Danmark og en ny tilværelse, hvor solen skinner lidt længere.
</p>
<p>
For Erika er det også en chance for at opleve en ny kultur, møde nye mennesker og måske starte på
en ungdomsuddannelse i Portugal. Vi ved begge, at det ikke bliver uden udfordringer med praktiske
overvejelser som bolig, skat, pendling og skolegang men fordelene vejer tungere. Leveomkostningerne
er lavere, menneskerne er imødekommende, og tempoet giver plads til at trække vejret.
</p>
<p>
Denne hjemmeside er en samling af mine tanker, forberedelser og erfaringer på vejen mod at gøre
drømmen til virkelighed. Måske overvejer du selv en lignende rejse, eller måske er du bare nysgerrig
på, hvordan det er at tage springet. Her deler jeg min rejse fra de første spæde idéer til de
praktiske skridt mod et nyt liv i Portugal. For mig og for Erika.
</p>
<hr class="major" />
</section>
</div>
</div>
<span class="image main">
<img src="{{ url_for('static', path='images/pic11.jpg') }}" alt="Portugal" />
</span>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
<!-- Menu -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="/">Forside</a></li>
<li>
<span class="opener">Kategorier</span>
<ul>
{% for category in data.categories %}
<li>
<a href="/category/{{ category.path }}">{{ category.name }}</a>
</li>
{% endfor %}
</ul>
</li>
<li><a href="#">Fotobog</a></li>
</ul>
</nav>
<!-- Highlights (favoritter) -->
<section>
<header class="major">
<h2>Highlights</h2>
</header>
<div class="mini-posts">
{% for favorite in data.favorites %}
<article>
<a href="#" class="image">
<img src="{{ url_for('static', path=favorite.image) }}" alt="{{ favorite.name }}" />
</a>
<p>{{ favorite.description }}</p>
</article>
{% endfor %}
</div>
</section>
<!-- Kontakt -->
<section>
<header class="major">
<h2>Kontakt os</h2>
</header>
<ul class="contact">
<li class="icon solid fa-envelope"><a href="#">henrik@i80.dk</a></li>
<li class="icon solid fa-phone">(+45) 60214417</li>
<li class="icon solid fa-home">Skovstræde 3<br />Stensved, 4773</li>
</ul>
</section>
<!-- Footer -->
<footer id="footer">
<p class="copyright">
&copy; Henriks lille hjørne: <a href="https://lifefaq.i80.dk">LifeFAQ</a>
</p>
</footer>
</div>
</div>
</div>
<!-- Scripts -->
<script src="{{ url_for('static', path='js/jquery.min.js') }}"></script>
<script src="{{ url_for('static', path='js/browser.min.js') }}"></script>
<script src="{{ url_for('static', path='js/breakpoints.min.js') }}"></script>
<script src="{{ url_for('static', path='js/util.js') }}"></script>
<script src="{{ url_for('static', path='js/main.js') }}"></script>
</body>
</html>
<hr class="major" />
<p>
Portugal er blevet symbolet på den nye begyndelse, jeg drømmer om en mulighed for at skabe et liv
med mere ro, plads og mening. Som Henrik, far til min 16-årige datter Erika, har tanken om at flytte
fra Danmark til Portugal vokset sig stærkere de seneste år. Det er ikke bare et ønske om sol og varme,
men om en hverdag, hvor livskvalitet betyder mere end stress og travlhed.
</p>
<p>
Drømmen er konkret: en hverdag med tid til både arbejde og familieliv, omgivet af Portugals smukke
landskaber og venlige kultur. Med Lissabon som udgangspunkt forestiller jeg mig et liv, hvor jeg
arbejder struktureret, pendler til Danmark i de lige uger og tilbringer de øvrige uger i vores nye
hjem. Det handler ikke om at efterlade alt bag sig, men om at finde en bedre balance mellem mine
forpligtelser i Danmark og en ny tilværelse, hvor solen skinner lidt længere.
</p>
<p>
For Erika er det også en chance for at opleve en ny kultur, møde nye mennesker og måske starte på
en ungdomsuddannelse i Portugal. Vi ved begge, at det ikke bliver uden udfordringer med praktiske
overvejelser som bolig, skat, pendling og skolegang men fordelene vejer tungere. Leveomkostningerne
er lavere, menneskerne er imødekommende, og tempoet giver plads til at trække vejret.
</p>
<p>
Denne hjemmeside er en samling af mine tanker, forberedelser og erfaringer på vejen mod at gøre
drømmen til virkelighed. Måske overvejer du selv en lignende rejse, eller måske er du bare nysgerrig
på, hvordan det er at tage springet. Her deler jeg min rejse fra de første spæde idéer til de
praktiske skridt mod et nyt liv i Portugal. For mig og for Erika.
</p>
<hr class="major" />
</section>
{% endblock %}

47
templates/navigation.html Normal file
View File

@@ -0,0 +1,47 @@
<!-- Navigation -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="/">Forside</a></li>
<li>
<span class="opener">Kategorier</span>
<ul>
{% for category in data.categories %}
<li><a href="/category/{{ category.path }}">{{ category.name }}</a></li>
{% endfor %}
</ul>
</li>
<li><a href="#">Fotobog</a></li>
</ul>
</nav>
<!-- Highlights -->
<section>
<header class="major">
<h2>Highlights</h2>
</header>
<div class="mini-posts">
{% for favorite in data.favorites %}
<article>
<a href="#" class="image">
<img src="{{ url_for('static', path=favorite.image) }}" alt="{{ favorite.name }}" />
</a>
<p>{{ favorite.description }}</p>
</article>
{% endfor %}
</div>
</section>
<!-- Kontakt -->
<section>
<header class="major">
<h2>Kontakt os</h2>
</header>
<ul class="contact">
<li class="icon solid fa-envelope"><a href="#">henrik@i80.dk</a></li>
<li class="icon solid fa-phone">(+45) 60214417</li>
<li class="icon solid fa-home">Skovstræde 3<br />Stensved, 4773</li>
</ul>
</section>