Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ jobs:
- ubuntu-latest

php:
- "8.3"
- "8.4"
- "8.5"

steps:
Expand Down
49 changes: 0 additions & 49 deletions .github/workflows/qodana_code_quality.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ jobs:
- ubuntu-latest

php:
- "8.3"
- "8.4"
- "8.5"

steps:
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
}
},
"require": {
"php": "~8.3.0 || ~8.4.0 || ~8.5.0",
"php": "~8.5.0",
"doctrine/data-fixtures": "^2.2",
"doctrine/doctrine-fixtures-bundle": "^4.3",
"dotkernel/dot-errorhandler": "^4.4.0",
Expand Down
11 changes: 10 additions & 1 deletion src/App/src/RoutesDelegator.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Light\App;

use Laminas\Diactoros\Response\RedirectResponse;
use Light\App\Handler\GetIndexViewHandler;
use Mezzio\Application;
use Psr\Container\ContainerInterface;
Expand All @@ -16,9 +17,17 @@ public function __invoke(ContainerInterface $container, string $serviceName, cal
{
$app = $callback();
assert($app instanceof Application);

$app->get('/', [GetIndexViewHandler::class], 'app::index');

$app->get('/{first}', function ($request) {
$uri = $request->getUri();
return new RedirectResponse((string) $uri . '/', 301);
});
$app->get('/{first}/{second}', function ($request) {
$uri = $request->getUri();
return new RedirectResponse((string) $uri . '/', 301);
});

return $app;
}
}
2 changes: 1 addition & 1 deletion src/App/templates/app/index.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,4 @@
</div>
</div>
</section>
{% endblock %}
{% endblock %}
34 changes: 16 additions & 18 deletions src/App/templates/layout/default.html.twig
Original file line number Diff line number Diff line change
@@ -1,52 +1,53 @@
<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="utf-8" />
{{ include('@partial/meta.html.twig') }}
{% block canonical %}<link rel="canonical" href="{{ url(routeName ?? null) }}" />{% endblock %}
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('images/app/favicon/apple-touch-icon.png') }}">
{% block canonical %}<link rel="canonical" href="{{ url(routeName ?? null) }}" />
{% endblock %}<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('images/app/favicon/apple-touch-icon.png') }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('images/app/favicon/favicon-32x32.png') }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('images/app/favicon/favicon-16x16.png') }}">
<link rel="manifest" href="{{ asset('images/app/favicon/site.webmanifest') }}">
<link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600" rel="stylesheet">

<link href="{{ asset('css/app.css') }}" rel="stylesheet" />

{% block stylesheets %}{% endblock %}
{% block stylesheets %}
{% endblock %}
</head>
<body class="app d-flex flex-column min-vh-100 bg-light text-secondary {% block body_class %}{% endblock %}">

<header class="app-header sticky-top bg-white border-bottom shadow-sm">
<nav class="navbar navbar-expand-lg navbar-light py-2">
<div class="container-fluid px-4 px-lg-5">
<a href="/" class="navbar-brand d-flex align-items-center">
<img src="{{ asset('images/app/logo.svg') }}"
onerror="this.onerror=null; this.src='{{ asset('images/app/logo.png') }}';"
alt="Dotkernel"
style="height: 35px;" />
style="height: 50px;" />
</a>

<button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarHeader">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarHeader">
<ul class="navbar-nav mx-auto gap-lg-4">
<li class="nav-item">
<a class="nav-link px-3 fw-semibold transition-all" href="{{ url('page::blog') }}">Posts</a>
<a class="nav-link px-3 fw-semibold fs-5 transition-all" target="_blank" href="https://docs.dotkernel.org/">Documentation</a>
</li>
<li class="nav-item">
<a class="nav-link px-3 fw-semibold transition-all" href="{{ url('page::categories') }}">Categories</a>
<a class="nav-link px-3 fw-semibold fs-5 transition-all" href="{{ url('page::dotkernel-packages-oss-lifecycle') }}">Packages Lifecycle</a>
</li>
<li class="nav-item">
<a class="nav-link px-3 fw-semibold transition-all" href="{{ url('page::about') }}">About Us</a>
<a class="nav-link px-3 fw-semibold fs-5 transition-all" href="{{ url('page::category-resource', {slug: 'how-to'}) }}">How to's</a>
</li>
<li class="nav-item">
<a class="nav-link px-3 fw-semibold fs-5 transition-all" href="{{ url('page::blog') }}">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link px-3 fw-semibold fs-5 transition-all" href="{{ url('page::categories') }}">Categories</a>
</li>
</ul>

<div class="d-none d-lg-block">
<a href="#" class="btn btn-primary rounded-pill px-4">Contact</a>
<a href="{{ url('page::contact') }}" class="btn btn-primary rounded-pill px-4">Contact</a>
</div>
</div>
</div>
Expand All @@ -57,13 +58,11 @@
<header class="content-header mb-4">
{% block page_title %}{% endblock %}
</header>

<section class="content">
{% block content %}{% endblock %}
</section>
</div>
</main>

<footer class="app-footer bg-white border-top py-4 mt-auto text-muted">
<div class="container d-flex flex-column flex-md-row justify-content-between align-items-center gap-2">
<p class="enjoy text-uppercase tracking-wider small fw-bold text-primary mb-0">
Expand All @@ -74,7 +73,6 @@
</p>
</div>
</footer>

<script src="{{ asset('js/app.js') }}"></script>
{% block javascript %}{% endblock %}
</body>
Expand Down
38 changes: 18 additions & 20 deletions src/App/templates/partial/meta.html.twig
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="msapplication-TileColor" content="#2d89ef">
<meta name="theme-color" content="#ffffff">
<title>{{ meta.title ?? meta.name ?? app.meta.title }}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="msapplication-TileColor" content="#2d89ef">
<meta name="theme-color" content="#ffffff">
<title>{{ meta.title ?? meta.name ?? app.meta.title }}</title>
<meta name="description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 155) }}"/>
<meta property="og:title" content="{{ meta.title ?? app.meta.title }}"/>
<meta property="og:description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 120) }}"/>
<meta property="og:image" content="{{ meta.image ?? app.meta.image }}"/>
<meta property="og:type" content="{{ meta.type ?? app.meta.type }}"/>
<meta property="og:site_name" content="{{ app.meta.siteName }}"/>
<meta property="og:url" content="{{ meta.url ?? app.meta.url }}"/>
<meta property="og:locale" content="{{ app.meta.locale }}"/>

<meta name="description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 155) }}"/>
<meta property="og:title" content="{{ meta.title ?? app.meta.title }}"/>
<meta property="og:description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 120) }}"/>
<meta property="og:image" content="{{ meta.image ?? app.meta.image }}"/>
<meta property="og:type" content="{{ meta.type ?? app.meta.type }}"/>
<meta property="og:site_name" content="{{ app.meta.siteName }}"/>
<meta property="og:url" content="{{ meta.url ?? app.meta.url }}"/>
<meta property="og:locale" content="{{ app.meta.locale }}"/>

<meta name="twitter:card" content="{{ app.meta.twitterCard }}"/>
<meta name="twitter:site" content="{{ app.meta.twitterSite }}"/>
<meta name="twitter:title" content="{{ meta.title ?? meta.name ?? app.meta.title }}"/>
<meta name="twitter:description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 155) }}"/>
<meta name="twitter:image" content="{{ meta.image ?? app.meta.image }}"/>
<meta name="twitter:card" content="{{ app.meta.twitterCard }}"/>
<meta name="twitter:site" content="{{ app.meta.twitterSite }}"/>
<meta name="twitter:title" content="{{ meta.title ?? meta.name ?? app.meta.title }}"/>
<meta name="twitter:description" content="{{ (meta.description ?? meta.excerpt ?? app.meta.description)|slice(0, 155) }}"/>
<meta name="twitter:image" content="{{ meta.image ?? app.meta.image }}"/>
10 changes: 5 additions & 5 deletions src/Blog/src/RoutesDelegator.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ public function __invoke(ContainerInterface $container, string $serviceName, cal
{
$app = $callback();
assert($app instanceof Application);
$app->get('/blog', [GetPostCollectionHandler::class], 'page::blog');
$app->get('/category/{slug}', [GetCategoryResourceHandler::class], 'page::category-resource');
$app->get('/categories', [GetCategoryCollectionHandler::class], 'page::categories');
$app->get('/author/{slug}', [GetAuthorResourceHandler::class], 'page::author-resource');
$app->get('/{categorySlug}/{slug}', [GetPostResourceHandler::class], 'page::blog-resource');
$app->get('/blog/', [GetPostCollectionHandler::class], 'page::blog');
$app->get('/category/{slug}/', [GetCategoryResourceHandler::class], 'page::category-resource');
$app->get('/categories/', [GetCategoryCollectionHandler::class], 'page::categories');
$app->get('/author/{slug}/', [GetAuthorResourceHandler::class], 'page::author-resource');
$app->get('/{categorySlug}/{slug}/', [GetPostResourceHandler::class], 'page::blog-resource');
return $app;
}
}
Loading