diff --git a/.eleventy.js b/.eleventy.js
index 984d7a9..2287334 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -62,6 +62,10 @@ module.exports = function (eleventyConfig) {
.length;
});
+ eleventyConfig.addFilter('getServiceById', (services, serviceId) => {
+ return services.find(s => s.id === serviceId);
+ });
+
return {
// Pre-process *.md files with: (default: `liquid`)
markdownTemplateEngine: "njk",
diff --git a/src/_data/eleventyComputed.js b/src/_data/eleventyComputed.js
deleted file mode 100644
index 00295a2..0000000
--- a/src/_data/eleventyComputed.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- service: (data) => data.services.find(s => s.id === data.service),
- title: (data) => data.title || data.service?.name || "",
- summary: (data) => data.summary || data.service?.summary?.[data.locale] || ""
-}
diff --git a/src/_includes/layouts/article.njk b/src/_includes/layouts/article.njk
index ef52841..8b4e771 100644
--- a/src/_includes/layouts/article.njk
+++ b/src/_includes/layouts/article.njk
@@ -31,6 +31,7 @@ layout: base.njk
{% endif %}
+ {% set service = services | getServiceById(service) %}
{% if service %}
{{ strings.article.relatedService }}
diff --git a/src/_includes/layouts/service.njk b/src/_includes/layouts/service.njk
index 8a36c1a..9888520 100644
--- a/src/_includes/layouts/service.njk
+++ b/src/_includes/layouts/service.njk
@@ -1,7 +1,12 @@
---
layout: base.njk
+eleventyComputed:
+ service: "{{ getServiceById(key) }}"
+ title: "{{ service.name }}"
+ summary: "{{ service.summary[locale] }}"
---
+{% set service = services | getServiceById(key) %}
{% if service %}
{{ strings.service.overview }}
{{title}} 
diff --git a/src/de/services/connectivitycheck.md b/src/de/services/connectivitycheck.md
index f06a319..8eae47f 100644
--- a/src/de/services/connectivitycheck.md
+++ b/src/de/services/connectivitycheck.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: connectivitycheck
+key: connectivitycheck
+title: Captive Portal Check
---
Ein Captive Portal ist eine Anmeldeseite in öffentlichen WLAN-Netzwerken, um den Internet-Zugriff an die Zustimmung bestimmter Nutzungsregeln zu binden. Wenn du in einem öffentlichen Netzwerk eine Anmeldeseite angezeigt bekommst, nutzt dein Gerät dafür einen Captive Portal Check. Dieser ermöglicht es dem Gerät, herauszufinden, ob du einen direkten Internetzugang hast oder nicht. Unter Android wird hierfür beispielsweise eine Anfrage an einen Google-Server gestellt.
diff --git a/src/de/services/connectivitycheck/setup.md b/src/de/services/connectivitycheck/setup.md
index 2ff7740..6bdcc38 100644
--- a/src/de/services/connectivitycheck/setup.md
+++ b/src/de/services/connectivitycheck/setup.md
@@ -1,8 +1,7 @@
---
layout: article.njk
-service: connectivitycheck
title: Einrichtung Captive Portal Check
-summary: In diesem Artikel erfährst du wie du einen eigenen Captive Portal Check in verschiedenen Umgebungen einrichten kannst.
+service: connectivitycheck
tags:
- Tutorial
- Captive Portal Check
diff --git a/src/de/services/etherpad.md b/src/de/services/etherpad.md
index fb0f94b..679a97f 100644
--- a/src/de/services/etherpad.md
+++ b/src/de/services/etherpad.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: etherpad
+key: etherpad
+title: Etherpad
---
Etherpad ist eine webbasierte Kollaborationsplattform, die es Benutzern ermöglicht, Textdokumente in Echtzeit gemeinsam zu bearbeiten. Mehrere Benutzer können zeitgleich auf dasselbe Etherpad-Dokument zugreifen, Änderungen vornehmen und sehen, was Andere schreiben. Etherpad bietet eine einfache und effektive Möglichkeit für Teamarbeit, Brainstorming, gemeinsames Schreiben und vieles mehr, ohne dass dabei Versionskonflikte auftreten.
diff --git a/src/de/services/forgejo.md b/src/de/services/forgejo.md
index bb119e8..3fe7bc9 100644
--- a/src/de/services/forgejo.md
+++ b/src/de/services/forgejo.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: forgejo
+key: forgejo
+title: Forgejo
---
Forgejo ist eine einfache Code-Hosting-Plattform wie GitHub oder GitLab. Sie ist opensource und wird kontinuierlich weiterentwickelt. Ich nutze Forgejo selber sehr gerne, um meine eigenen Projekte verwalte. So zum Beispiel auch diese Webseite. Schau dir gerne mal den Quelltext an und lass mir Feedback da: [git.sp-codes.de/samuel-p/sp-codes.de](https://git.sp-codes.de/samuel-p/sp-codes.de)
diff --git a/src/de/services/jitsi.md b/src/de/services/jitsi.md
index e9ed029..80cda16 100644
--- a/src/de/services/jitsi.md
+++ b/src/de/services/jitsi.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: jitsi
+key: jitsi
+title: Jitsi Meet
---
Jitsi-Meet ist eine Plattform für Videokonferenzen. Ohne Anmeldung können vollständig verschlüsselte Video-Chats gestartet werden. Zusätzlich bietet Jitsi-Meet die Möglichkeit den Bildschirm für die andere Teilnehmende freizugeben, neue Personen einfach per Link einzuladen und Nachrichten im integrierten Chat zu verschicken.
diff --git a/src/de/services/mastodon.md b/src/de/services/mastodon.md
index e319bf9..3480153 100644
--- a/src/de/services/mastodon.md
+++ b/src/de/services/mastodon.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: mastodon
+key: mastodon
+title: Mastodon
---
Mastodon ist ein verteilter Mikroblogging-Dienst, ähnlich wie Twitter. Allerdings basiert der Dienst nicht auf einer zentralen Plattform, sondern besteht aus vielen verschiedenen, dezentralen Instanzen, die von Privatpersonen, Vereinen oder sonstigen Stellen eigenverantwortlich betrieben werden. Dadurch machen sich die Nutzer:innen nicht von einem einzigen Anbieter abhängig, sondern können frei entscheiden, mit wem sie welche Informationen teilen.
diff --git a/src/de/services/matrix.md b/src/de/services/matrix.md
index 46bf892..f92cb3d 100644
--- a/src/de/services/matrix.md
+++ b/src/de/services/matrix.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: matrix
+key: matrix
+title: Matrix
---
[Matrix](https://matrix.org) ist eine moderne, quelloffene Software für dezentrale Kommunikation (wie E-Mail). Matrix bietet von Haus aus Sprach- und Videoanrufe, inklusive Ende-zu-Ende-Verschlüsselung und vieles mehr. Das Entscheidende ist, dass es nicht den einen Matrix-Server gibt, den alle Nutzende verwenden müssen, wie das beispielsweise bei WhatsApp, Telegram und vielen anderen verbreiteten Messengern der Fall ist.
diff --git a/src/de/services/matrix/setup/part-1.md b/src/de/services/matrix/setup/part-1.md
index 60bcc91..f337025 100644
--- a/src/de/services/matrix/setup/part-1.md
+++ b/src/de/services/matrix/setup/part-1.md
@@ -1,8 +1,7 @@
---
layout: article.njk
-service: matrix
title: Werde Teil der Matrix - Matrix Teil 1
-summary: Erfahre Schritt für Schritt, wie du deinen eigenen Matrix Account einrichten kannst.
+service: matrix
series: matrix-setup
tags:
- Tutorial
diff --git a/src/de/services/matrix/setup/part-2.md b/src/de/services/matrix/setup/part-2.md
index 2ff36a9..1195a39 100644
--- a/src/de/services/matrix/setup/part-2.md
+++ b/src/de/services/matrix/setup/part-2.md
@@ -1,8 +1,7 @@
---
layout: article.njk
-service: matrix
title: Sichere Chats mit Matrix – Matrix Teil 2
-summary: Erfahre, was es mit Ende-zu-Ende-Verschlüsselung und der Verifizierung von Kontakten auf sich hat.
+service: matrix
series: matrix-setup
tags:
- Tutorial
diff --git a/src/de/services/ntfy.md b/src/de/services/ntfy.md
index 8534696..51a61c6 100644
--- a/src/de/services/ntfy.md
+++ b/src/de/services/ntfy.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: ntfy
+key: ntfy
+title: ntfy
---
ntfy ist ein vielseitiges Tool zur Benachrichtigung über verschiedene Ereignisse. Es unterstützt auch UnifiedPush, ein offenes Protokoll für Echtzeitbenachrichtigungen.
diff --git a/src/de/services/peertube.md b/src/de/services/peertube.md
index bd02a57..d1f34d5 100644
--- a/src/de/services/peertube.md
+++ b/src/de/services/peertube.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: peertube
+key: peertube
+title: PeerTube
---
PeerTube ist ein Netzwerk aus mehreren föderierten, interoperablen Video-Hosting-Anbietern, vergleichbar mit YouTube. Allerdings basiert der Dienst nicht auf einer zentralen Plattform, sondern besteht aus vielen verschiedenen, dezentralen Instanzen, die von Privatpersonen, Vereinen oder sonstigen Stellen eigenverantwortlich betrieben werden. Dadurch machen sich die Nutzenden nicht von einem einzigen Anbieter abhängig, sondern können frei entscheiden, mit wem sie welche Informationen teilen.
diff --git a/src/de/services/shields.md b/src/de/services/shields.md
index 7d0a4c4..4d4c5df 100644
--- a/src/de/services/shields.md
+++ b/src/de/services/shields.md
@@ -1,6 +1,7 @@
---
layout: service.njk
-service: shields
+key: shields
+title: Shields
---
Shields ist ein Service für prägnante, konsistente und lesbare Badges im SVG- und Rasterformat. Über eine URL können sie sehr einfach in Readmes oder jede andere Webseite eingebunden werden. Außerdem werden Integrationen zu verschiedenen Diensten oder Netzwerken bereitgestellt.
diff --git a/src/en/services/connectivitycheck.md b/src/en/services/connectivitycheck.md
index ce0b01d..ae1daf5 100644
--- a/src/en/services/connectivitycheck.md
+++ b/src/en/services/connectivitycheck.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: connectivitycheck
+key: connectivitycheck
title: Captive Portal Check
---
A captive portal is a login page in public WLAN networks to restrict Internet access to the approval of certain terms of use. When you see a login page on a public network, your device uses a captive portal check. This allows the device to find out whether you have direct Internet access or not. In Android, for example, your device sends a request to a Google server.
diff --git a/src/en/services/connectivitycheck/setup.md b/src/en/services/connectivitycheck/setup.md
index 025d762..a2ecec9 100644
--- a/src/en/services/connectivitycheck/setup.md
+++ b/src/en/services/connectivitycheck/setup.md
@@ -1,8 +1,7 @@
---
layout: article.njk
-service: connectivitycheck
title: Setup Captive Portal Check
-summary: In this article, you will learn how to set up your own captive portal check on different devices.
+service: connectivitycheck
tags:
- Tutorial
- Captive Portal Check
diff --git a/src/en/services/etherpad.md b/src/en/services/etherpad.md
index 6db10d0..c7feda5 100644
--- a/src/en/services/etherpad.md
+++ b/src/en/services/etherpad.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: etherpad
+key: etherpad
title: Etherpad
---
Etherpad is a web-based collaboration platform that allows users to edit text documents together in real time. Multiple users can simultaneously access the same Etherpad document, make changes, and see what others are writing. Etherpad provides a simple and effective way for teamwork, brainstorming, collaborative writing, and more, without version conflicts.
diff --git a/src/en/services/forgejo.md b/src/en/services/forgejo.md
index c5db822..32aa677 100644
--- a/src/en/services/forgejo.md
+++ b/src/en/services/forgejo.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: forgejo
+key: forgejo
title: Forgejo
---
Forgejo is a simple code hosting platform like GitHub or GitLab. It is open source and under continuous development. I like to use Forgejo myself to manage my own projects. For example, this website. Take a look at the source code and leave me some feedback: [git.sp-codes.de/samuel-p/sp-codes.de](https://git.sp-codes.de/samuel-p/sp-codes.de)
diff --git a/src/en/services/jitsi.md b/src/en/services/jitsi.md
index 04ead1f..e3f2510 100644
--- a/src/en/services/jitsi.md
+++ b/src/en/services/jitsi.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: jitsi
+key: jitsi
title: Jitsi Meet
---
Jitsi-Meet is a platform for video conferences. You can start fully encrypted video chats without registration. Additionally, Jitsi-Meet offers the possibility to share the screen with other participants, invite new users with a simple link and send messages in the integrated chat.
diff --git a/src/en/services/mastodon.md b/src/en/services/mastodon.md
index 3a4b850..e56763f 100644
--- a/src/en/services/mastodon.md
+++ b/src/en/services/mastodon.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: mastodon
+key: mastodon
title: Mastodon
---
Mastodon is a federated microblogging service, similar to Twitter. However, the service is not based on a central platform, but consists of many, decentralized instances that are run independently by private individuals, associations or other organizations. This means that users are not locked into a single provider, but are free to decide with whom they share what information.
diff --git a/src/en/services/matrix.md b/src/en/services/matrix.md
index c82e2f2..a409c69 100644
--- a/src/en/services/matrix.md
+++ b/src/en/services/matrix.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: matrix
+key: matrix
title: Matrix
---
[Matrix](https://matrix.org) is a modern, open source software for decentralized communication (like e-mail). Matrix offers end-to-end encryption, voice and video calls and much more. However, the most important thing is that there is not one Matrix server that all users have to use, like WhatsApp, Telegram and many other popular messengers.
diff --git a/src/en/services/ntfy.md b/src/en/services/ntfy.md
index c5e41b9..d0fc007 100644
--- a/src/en/services/ntfy.md
+++ b/src/en/services/ntfy.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: ntfy
+key: ntfy
title: ntfy
---
ntfy is a versatile tool for notification about various events. It also supports UnifiedPush, an open protocol for real-time notifications.
diff --git a/src/en/services/peertube.md b/src/en/services/peertube.md
index b75a179..f816e34 100644
--- a/src/en/services/peertube.md
+++ b/src/en/services/peertube.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: peertube
+key: peertube
title: PeerTube
---
PeerTube is a network of several federated, interoperable video hosting providers, comparable to YouTube. However, the service is not based on a central platform, but consists of many, decentralized instances that are run independently by private individuals, associations or other organizations. This means that users are not locked into a single provider, but are free to decide with whom they share what information.
diff --git a/src/en/services/shields.md b/src/en/services/shields.md
index c6b967e..35d36b3 100644
--- a/src/en/services/shields.md
+++ b/src/en/services/shields.md
@@ -1,6 +1,6 @@
---
layout: service.njk
-service: shields
+key: shields
title: Shields
---
Shields is a service for concise, consistent and legible badges in SVG and raster format. Via a URL they can be easily embedded in readmes or any other website. In addition, integrations to various services or networks are provided.