From bd128094b5c44d2f7f9bfb78bc23e85da5ab0636 Mon Sep 17 00:00:00 2001
From: alexmerlin <alex.merlin.1985@gmail.com>
Date: Fri, 4 Oct 2024 14:28:37 +0300
Subject: [PATCH 1/2] Issue #501: Home page cleanup

Signed-off-by: alexmerlin <alex.merlin.1985@gmail.com>
---
 src/App/templates/app/home-page.html.twig  | 120 ----------
 src/App/templates/app/home.html.twig       | 248 +++++++++++++++++++++
 src/Page/src/Controller/PageController.php |   4 +-
 3 files changed, 250 insertions(+), 122 deletions(-)
 delete mode 100644 src/App/templates/app/home-page.html.twig
 create mode 100644 src/App/templates/app/home.html.twig

diff --git a/src/App/templates/app/home-page.html.twig b/src/App/templates/app/home-page.html.twig
deleted file mode 100644
index 4e7f9f6c..00000000
--- a/src/App/templates/app/home-page.html.twig
+++ /dev/null
@@ -1,120 +0,0 @@
-{% extends '@layout/default.html.twig' %}
-
-{% block title %}Home{% endblock %}
-
-{% block content %}
-    <div class="jumbotron">
-        <h1>Welcome to <span class="api-tools-green">mezzio</span></h1>
-        <p>
-            Congratulations! You have successfully installed the
-            <a href="https://github.com/mezzio/mezzio-skeleton" target="_blank">mezzio skeleton application</a>.
-            This skeleton can serve as a simple starting point for you to begin building your application.
-        </p>
-        <p>
-            Mezzio builds on laminas-stratigility to provide a minimalist PSR-7 middleware framework for PHP.
-        </p>
-    </div>
-
-    <div class="row">
-        <div class="col-md-4">
-            <h2>
-                <a href="https://docs.mezzio.dev/mezzio/getting-started/features" target="_blank">
-                    <i class="fa fa-bolt"></i> Agile &amp; Lean
-                </a>
-            </h2>
-            <p>
-                Mezzio is fast, small and perfect for rapid application development, prototyping and api's.
-                You decide how you extend it and choose the best packages from major framework or standalone projects.
-            </p>
-        </div>
-
-        <div class="col-md-4">
-            <h2>
-                <a href="https://github.com/laminas/laminas-diactoros" target="_blank">
-                    <i class="fa fa-exchange-alt"></i> HTTP Messages
-                </a>
-            </h2>
-            <p>
-                HTTP messages are the foundation of web development. Web browsers and HTTP clients such as cURL create
-                HTTP request messages that are sent to a web server, which provides an HTTP response message.
-                Server-side code receives an HTTP request message, and returns an HTTP response message.
-            </p>
-        </div>
-
-        <div class="col-md-4">
-            <h2>
-                <a href="https://github.com/laminas/laminas-stratigility" target="_blank">
-                    <i class="fa fa-dot-circle"></i> Middleware
-                </a>
-            </h2>
-            <p>
-                Middleware is code that exists between the request and response, and which can take the incoming
-                request, perform actions based on it, and either complete the response or pass delegation on to the
-                next middleware in the queue. Your application is easily extended with custom middleware created by
-                yourself or <a href="https://packagist.org/search/?q=middleware" target="_blank">others</a>.
-            </p>
-        </div>
-    </div>
-
-    <div class="row">
-        <div class="col-md-4">
-            <h2>
-                <a href="https://docs.mezzio.dev/mezzio/features/container/intro" target="_blank">
-                    <i class="fa fa-cube"></i> Containers
-                </a>
-            </h2>
-            <p>
-                Mezzio promotes and advocates the usage of Dependency Injection/Inversion of Control containers
-                when writing your applications. Mezzio supports multiple containers which typehints against
-                <a href="https://github.com/php-fig/container" target="_blank">PSR Container</a>.
-            </p>
-            {% if containerName is defined %}
-                <p>
-                    <a href="{{ containerDocs }}" target="_blank">
-                        Get started with {{ containerName }}.
-                    </a>
-                </p>
-            {% endif %}
-        </div>
-
-        <div class="col-md-4">
-            <h2>
-                <a href="https://docs.mezzio.dev/mezzio/features/router/intro" target="_blank">
-                    <i class="fa fa-plane"></i> Routers
-                </a>
-            </h2>
-            <p>
-                One fundamental feature of mezzio is that it provides mechanisms for implementing dynamic
-                routing, a feature required in most modern web applications. Mezzio ships with multiple adapters.
-            </p>
-            {% if routerName is defined %}
-                <p>
-                    <a href="{{ routerDocs }}" target="_blank">
-                        Get started with {{ routerName }}.
-                    </a>
-                </p>
-            {% endif %}
-        </div>
-
-        <div class="col-md-4">
-            <h2>
-                <a href="https://docs.mezzio.dev/mezzio/features/template/twig" target="_blank">
-                    <i class="fa fa-edit"></i> Templating
-                </a>
-            </h2>
-            <p>
-                By default, no middleware in Mezzio is templated. We do not even provide a default templating
-                engine, as the choice of templating engine is often very specific to the project and/or organization.
-                However, Mezzio does provide abstraction for templating, which allows you to write middleware that
-                is engine-agnostic.
-            </p>
-            {% if templateName is defined %}
-                <p>
-                    <a href="{{ templateDocs }}" target="_blank">
-                        Get started with {{ templateName }}.
-                    </a>
-                </p>
-            {% endif %}
-        </div>
-    </div>
-{% endblock %}
diff --git a/src/App/templates/app/home.html.twig b/src/App/templates/app/home.html.twig
new file mode 100644
index 00000000..58b279b6
--- /dev/null
+++ b/src/App/templates/app/home.html.twig
@@ -0,0 +1,248 @@
+{% extends '@layout/default.html.twig' %}
+
+{% block title %}Home{% endblock %}
+
+{% block page_title %}{% endblock %}
+
+{% block content %}
+    {{ messagesPartial('partial::alerts', {}, null, 'page-home') }}
+    <div class="page-intro home-intro">
+        <div class="container">
+            <p class="welcome">Dotkernel is a collection of</p>
+            <h1>PSR-7 Middleware applications</h1>
+            <p>Built on top of the Mezzio microframework.<br/>Composed of a set of custom and extended Laminas components.</p>
+        </div>
+        <div class="arrow_down">
+            <div class="arrow_down_content">&nbsp;</div>
+        </div>
+    </div>
+
+    <div class="home-list">
+        <div class="container">
+            <h2><a href="https://docs.mezzio.dev/mezzio/" target="_blank" class="text-decoration-none">Mezzio</a></h2>
+            <div class="row">
+                <div class="col-lg-3 col-md-6">
+                    <h3>
+                        <a href="https://github.com/php-fig/container" target="_blank" class="text-decoration-none">containers</a>
+                    </h3>
+                    <p>
+                        Dotkernel is built around the PSR-11 dependency container.
+                        We have chosen <b>Laminas Service Manager</b> as our default implementation.
+                    </p>
+                    <p>
+                        Get Started with <a href="https://github.com/laminas/laminas-servicemanager" target="_blank" class="text-decoration-none">Laminas Service Manager</a>
+                    </p>
+                </div>
+                <div class="col-lg-3 col-md-6">
+                    <h3>
+                        <a href="https://github.com/twigphp/Twig" target="_blank" class="text-decoration-none">templating</a>
+                    </h3>
+                    <p>
+                        By default, no middleware in Laminas is templated.
+                        For Dotkernel's Light application, we have chosen <b>Twig</b> as the default templating engine.
+                    </p>
+                    <p>
+                        Get started with <a href="https://twig.symfony.com/" target="_blank" class="text-decoration-none">Twig</a>
+                    </p>
+                </div>
+
+                <div class="col-lg-3 col-md-6">
+                    <h3>
+                        <a href="https://github.com/nikic/FastRoute" target="_blank" class="text-decoration-none">routers</a>
+                    </h3>
+                    <p>
+                        Among the various routing implementations compatible with Expressive, we have chosen <b>FastRoute</b> as Dotkernel's default routing library.
+                    </p>
+                    <p>
+                        Get started with <a href="https://github.com/nikic/FastRoute" target="_blank" class="text-decoration-none">FastRoute</a>
+                    </p>
+                </div>
+                <div class="col-lg-3 col-md-6">
+                    <h3>
+                        <a href="https://github.com/laminas/laminas-diactoros" target="_blank" class="text-decoration-none">http messages</a>
+                    </h3>
+                    <p>
+                        Laminas, and consequently Dotkernel, is built around the PSR-7 standard.<br />It uses <b>Laminas Diactoros</b> as the PSR-7 implementation.
+                    </p>
+                    <p>
+                        Get started with <a href="https://github.com/php-fig/http-message" target="_blank" class="text-decoration-none">PSR-7</a> and <a href="https://github.com/laminas/laminas-diactoros" target="_blank" class="text-decoration-none">Diactoros</a>
+                    </p>
+                </div>
+            </div>
+
+            <h2>Dotkernel Frontend components</h2>
+            <div class="row">
+                <div class="col-md-12">
+                    <div class="accordion" id="dotkernelComponents">
+                        <div class="card">
+                            <div class="card-header" id="headingOne">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
+                                        Authentication & Authorization
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseOne" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingOne">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-authentication" target="_blank" class="text-decoration-none">dot-authentication</a>: core authentication interfaces
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-authorization" target="_blank" class="text-decoration-none">dot-authorization</a>: core authorization interfaces
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-rbac" target="_blank" class="text-decoration-none">dot-rbac</a>: defines users roles
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-rbac-guard" target="_blank" class="text-decoration-none">dot-rbac-guard</a>: authorize users based on various criteria
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingTwo">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
+                                        Controllers
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseTwo" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingTwo">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-controller" target="_blank" class="text-decoration-none">dot-controller</a>: controller-like middleware for laminas
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingThree">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
+                                        Logging & Error Handling
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseThree" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingThree">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-log" target="_blank" class="text-decoration-none">dot-log</a>: generic logging component
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-errorhandler" target="_blank" class="text-decoration-none">dot-errorhandler</a>: automatically logs errors
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingFour">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
+                                        Mailing
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseFour" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingFour">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-mail" target="_blank" class="text-decoration-none">dot-mail</a>
+                                            (<a href="https://docs.laminas.dev/laminas-mail/" target="_blank" class="text-decoration-none">laminas-mail</a>): send emails using different transport providers
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingFive">
+                                <h4 class="panel-title">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFive" aria-expanded="false" aria-controls="collapseFive">
+                                        Navigation
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseFive" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingFive">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-navigation" target="_blank" class="text-decoration-none">dot-navigation</a>: easy menu configuration and parsing
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingSix">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSix" aria-expanded="false" aria-controls="collapseSix">
+                                        Session
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseSix" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingSix">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-session" target="_blank" class="text-decoration-none">dot-session</a>
+                                            (<a href="https://docs.laminas.dev/laminas-session/" target="_blank" class="text-decoration-none">laminas-session</a>): session management
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-flashmessenger" target="_blank" class="text-decoration-none">dot-flashmessenger</a>: short-lived session messages
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="card">
+                            <div class="card-header" id="headingSeven">
+                                <h4 class="">
+                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSeven" aria-expanded="false" aria-controls="collapseSeven">
+                                        Others
+                                    </button>
+                                </h4>
+                            </div>
+                            <div id="collapseSeven" class="collapse" data-parent="#dotkernelComponents" aria-labelledby="headingSeven">
+                                <div class="card-body">
+                                    <ul class="list-unstyled list-group list-group-flush">
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-response-header" target="_blank" class="text-decoration-none">dot-response-header</a>: setting and overwriting custom response headers
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-data-fixtures" target="_blank" class="text-decoration-none">dot-data-fixtures</a>: fixtures populate tables with data
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-dependency-injection" target="_blank" class="text-decoration-none">dot-dependency-injection</a>: dependency injection component using class attributes
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-event" target="_blank" class="text-decoration-none">dot-event</a>
+                                            (<a href="https://docs.laminas.dev/laminas-eventmanager/" target="_blank" class="text-decoration-none">laminas-eventmanager</a>): event management
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-helpers" target="_blank" class="text-decoration-none">dot-helpers</a>
+                                            (<a href="https://docs.mezzio.dev/mezzio/v3/features/helpers/intro/" target="_blank" class="text-decoration-none">mezzio/mezzio-helpers</a>): provides URL helper methods
+                                        </li>
+                                        <li class="list-group-item">
+                                            <a href="https://github.com/dotkernel/dot-twigrenderer" target="_blank" class="text-decoration-none">dot-twigrenderer</a>: extends the twig renderer with useful extensions and customizations
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+{% endblock %}
diff --git a/src/Page/src/Controller/PageController.php b/src/Page/src/Controller/PageController.php
index a8bbfdc6..3a1ec440 100644
--- a/src/Page/src/Controller/PageController.php
+++ b/src/Page/src/Controller/PageController.php
@@ -29,14 +29,14 @@ public function __construct(
     public function indexAction(): ResponseInterface
     {
         return new HtmlResponse(
-            $this->template->render('page::home')
+            $this->template->render('app::home')
         );
     }
 
     public function homeAction(): ResponseInterface
     {
         return new HtmlResponse(
-            $this->template->render('page::home', ['routeName' => 'home'])
+            $this->template->render('app::home', ['routeName' => 'home'])
         );
     }
 

From 1dfebc1c21597254d7d3f739d6b75d32e328d582 Mon Sep 17 00:00:00 2001
From: alexmerlin <alex.merlin.1985@gmail.com>
Date: Fri, 4 Oct 2024 14:38:58 +0300
Subject: [PATCH 2/2] Removed page::home page, replaced by app::home

Signed-off-by: alexmerlin <alex.merlin.1985@gmail.com>
---
 src/Page/templates/page/home.html.twig | 302 -------------------------
 1 file changed, 302 deletions(-)
 delete mode 100644 src/Page/templates/page/home.html.twig

diff --git a/src/Page/templates/page/home.html.twig b/src/Page/templates/page/home.html.twig
deleted file mode 100644
index 6ccfd4fd..00000000
--- a/src/Page/templates/page/home.html.twig
+++ /dev/null
@@ -1,302 +0,0 @@
-{% extends '@layout/default.html.twig' %}
-
-{% block title %}Home{% endblock %}
-
-{% block page_title %}{% endblock %}
-
-{% block content %}
-    {{ messagesPartial('partial::alerts', {}, null, 'page-home') }}
-    <div class="page-intro home-intro">
-        <div class="container">
-            <p class="welcome">DotKernel is a collection of</p>
-            <h1>PSR-7 Middleware applications</h1>
-            <p>Built on top of the Laminas microframework. <br/>Composed of a set of custom and extended Laminas components.</p>
-        </div>
-        <div class="arrow_down">
-            <div class="arrow_down_content">&nbsp;</div>
-        </div>
-    </div>
-
-    <div class="home-list">
-        <div class="container">
-            <h2><a href="https://docs.mezzio.dev/mezzio/" target="_blank" class="text-decoration-none">Laminas</a></h2>
-            <div class="row">
-                <div class="col-lg-3 col-md-6">
-                    <h3>
-                        <a href="https://github.com/php-fig/container" target="_blank" class="text-decoration-none">
-                            containers
-                        </a>
-                    </h3>
-                    <p>
-                        DotKernel is built around the PSR-11 dependency container.
-                        We have chosen <b>Laminas Service Manager</b> as our default implementation.
-                    </p>
-                    <p>
-                        Get Started with <a href="https://github.com/laminas/laminas-servicemanager"
-                                            target="_blank" class="text-decoration-none">Laminas Service Manager</a>
-                    </p>
-                </div>
-                <div class="col-lg-3 col-md-6">
-                    <h3>
-                        <a href="https://github.com/twigphp/Twig" target="_blank" class="text-decoration-none">
-                            templating
-                        </a>
-                    </h3>
-                    <p>
-                        By default, no middleware in Laminas is templated.
-                        For DotKernel's Frontend application, we have chosen <b>Twig</b>
-                        as the default templating engine.
-                    </p>
-                    <p>
-                        Get started with <a href="https://twig.symfony.com/" target="_blank" class="text-decoration-none">Twig</a>
-                    </p>
-                </div>
-
-                <div class="col-lg-3 col-md-6">
-                    <h3>
-                        <a href="https://github.com/nikic/FastRoute" target="_blank" class="text-decoration-none">routers</a>
-                    </h3>
-                    <p>
-                        Among the various routing implementations compatible with Expressive, we have chosen <b>FastRoute</b>
-                        as DotKernel's default routing library.
-                    </p>
-                    <p>
-                        Get started with <a href="https://github.com/nikic/FastRoute" target="_blank" class="text-decoration-none">FastRoute</a>
-                    </p>
-                </div>
-                <div class="col-lg-3 col-md-6">
-                    <h3>
-                        <a href="https://github.com/laminas/laminas-diactoros" target="_blank" class="text-decoration-none">http messages</a>
-                    </h3>
-                    <p>
-                        Laminas, and consequently DotKernel, is built around the PSR-7 standard. It uses
-                        <b>Laminas Diactoros</b> as the PSR-7 implementation.
-                    </p>
-                    <p>
-                        Get started with
-                        <a href="https://github.com/php-fig/http-message" target="_blank" class="text-decoration-none">PSR-7</a>
-                        and <a href="https://github.com/laminas/laminas-diactoros" target="_blank" class="text-decoration-none">Diactoros</a>
-                    </p>
-                </div>
-            </div>
-
-            <h2>DotKernel components</h2>
-            <div class="row">
-                <div class="col-md-12">
-                    <div class="accordion" id="dotkernelComponents">
-                        <div class="card">
-                            <div class="card-header" id="headingTwo">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
-                                        Authentication & Authorization
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="collapseTwo" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingTwo">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-authentication" target="_blank" class="text-decoration-none">dot-authentication</a>:
-                                            core authentication interfaces
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-authorization" target="_blank" class="text-decoration-none">dot-authorization</a>:
-                                            core authorization interfaces
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-rbac" target="_blank" class="text-decoration-none">dot-rbac</a>:
-                                            defines users roles
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-rbac-guard" target="_blank" class="text-decoration-none">dot-rbac-guard</a>:
-                                            authorize users based on various criteria
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingThree">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
-                                        Controllers
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="collapseThree" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingThree">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-controller" target="_blank" class="text-decoration-none">dot-controller</a>:
-                                            controller-like middleware for laminas
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingFour">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
-                                        Email
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="collapseFour" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingFour">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-mail"
-                                               target="_blank" class="text-decoration-none">dot-mail</a>
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingFive">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#headingFive" aria-expanded="false" aria-controls="headingFive">
-                                        Logging & Error Handling
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="headingFive" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingFive">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-log" target="_blank" class="text-decoration-none">dot-log</a>
-                                            (<a href="https://docs.laminas.dev/laminas-log/"
-                                                target="_blank" class="text-decoration-none">laminas-log</a>)
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-errorhandler" target="_blank" class="text-decoration-none">dot-errorhandler</a>
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingSix">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSix" aria-expanded="false" aria-controls="collapseSix">
-                                        Mailing
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="collapseSix" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingSix">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-mail" target="_blank" class="text-decoration-none">dot-mail</a>
-                                            (<a href="https://docs.laminas.dev/laminas-mail/" target="_blank" class="text-decoration-none">laminas-mail</a>)
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingSeven">
-                                <h4 class="panel-title">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#headingSeven" aria-expanded="false" aria-controls="headingSeven">
-                                        Navigation
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="headingSeven" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingSeven">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-navigation" target="_blank" class="text-decoration-none">dot-navigation</a>:
-                                            easy menu configuration and parsing
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingEight">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#headingEight" aria-expanded="false" aria-controls="headingEight">
-                                        Session
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="headingEight" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingEight">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-session" target="_blank" class="text-decoration-none">dot-session</a>
-                                            (<a href="https://docs.laminas.dev/laminas-session/" target="_blank" class="text-decoration-none">laminas-session</a>)
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-flashmessenger" target="_blank" class="text-decoration-none">dot-flashmessenger</a>:
-                                            short-lived session messages
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="card">
-                            <div class="card-header" id="headingNine">
-                                <h4 class="">
-                                    <button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#collapseNine" aria-expanded="false" aria-controls="collapseNine">
-                                        Others
-                                    </button>
-                                </h4>
-                            </div>
-                            <div id="collapseNine" class="collapse" data-parent="#dotkernelComponents"
-                                 aria-labelledby="headingNine">
-                                <div class="card-body">
-                                    <ul>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-response-header"
-                                               target="_blank" class="text-decoration-none">dot-response-header</a>: setting and overwriting custom response headers
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-data-fixtures"
-                                               target="_blank" class="text-decoration-none">dot-data-fixtures</a>: fixtures populate tables with data
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-dependency-injection"
-                                               target="_blank" class="text-decoration-none">dot-dependency-injection</a>: dependency injection component using class attributes
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-event"
-                                               target="_blank" class="text-decoration-none">dot-event</a>
-                                            (<a href="https://docs.laminas.dev/laminas-eventmanager/"
-                                                target="_blank" class="text-decoration-none">laminas-eventmanager</a>)
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-helpers" target="_blank" class="text-decoration-none">dot-helpers</a>
-                                            (<a href="https://docs.mezzio.dev/mezzio/v3/features/helpers/intro/"
-                                                target="_blank" class="text-decoration-none">mezzio/mezzio-helpers</a>)
-                                        </li>
-                                        <li>
-                                            <a href="https://github.com/dotkernel/dot-twigrenderer" target="_blank" class="text-decoration-none">dot-twigrenderer</a>
-                                            extends the twig renderer with useful extensions and customizations
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-{% endblock %}
