diff --git a/src/App/templates/app/index.html.twig b/src/App/templates/app/index.html.twig index 74933678..a7990241 100644 --- a/src/App/templates/app/index.html.twig +++ b/src/App/templates/app/index.html.twig @@ -1,6 +1,5 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/index.jsonld.twig') }} {% endblock %} -{% block title %}A PSR-15 compliant application{% endblock %} {% block head_links %}{% endblock %} {% block content %} diff --git a/src/App/templates/error/404.html.twig b/src/App/templates/error/404.html.twig index 1288d3f6..5eaa746f 100644 --- a/src/App/templates/error/404.html.twig +++ b/src/App/templates/error/404.html.twig @@ -1,6 +1,5 @@ {% extends '@layout/default.html.twig' %} -{% block title %}404 Not Found{% endblock %} {% block canonical %}{% endblock %} {% block content %} diff --git a/src/App/templates/error/410.html.twig b/src/App/templates/error/410.html.twig index 3f5a7a23..0f40f6e2 100644 --- a/src/App/templates/error/410.html.twig +++ b/src/App/templates/error/410.html.twig @@ -1,6 +1,5 @@ {% extends '@layout/default.html.twig' %} -{% block title %}410 Gone{% endblock %} {% block canonical %}{% endblock %} {% block content %} diff --git a/src/App/templates/error/error.html.twig b/src/App/templates/error/error.html.twig index 45142e09..5086ed93 100644 --- a/src/App/templates/error/error.html.twig +++ b/src/App/templates/error/error.html.twig @@ -1,6 +1,5 @@ {% extends '@layout/default.html.twig' %} -{% block title %}{{ status }} {{ reason }}{% endblock %} {% block canonical %}{% endblock %} {% block content %} diff --git a/src/App/templates/layout/blog-post.html.twig b/src/App/templates/layout/blog-post.html.twig index 3d675b56..c9523a49 100644 --- a/src/App/templates/layout/blog-post.html.twig +++ b/src/App/templates/layout/blog-post.html.twig @@ -1,5 +1,11 @@ {% extends '@layout/default.html.twig' %} +{% set canonicalUrl = app.url ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) %} +{% set ogType = 'article' %} + +{% block canonical %} +{% endblock %} + {% block json_ld %} {% endblock %} -{% block title %}{{ article.title }}{% endblock %} - {% block head_links %} {% endblock %} diff --git a/src/App/templates/layout/default.html.twig b/src/App/templates/layout/default.html.twig index beb522c4..77a281f8 100644 --- a/src/App/templates/layout/default.html.twig +++ b/src/App/templates/layout/default.html.twig @@ -8,6 +8,9 @@ document.documentElement.setAttribute('data-theme', saved === 'dark' ? 'dark' : 'light'); })(); + {% set meta = meta ?? article ?? category ?? tag ?? null %} + {% set ogImage = meta.openGraphImage ?? null %} + {% set ogImageUrl = ogImage ? (app.url ~ ogImage) : app.meta.image %} {{ include('@partial/meta.html.twig') }} {% block canonical %} {% endblock %} diff --git a/src/App/templates/partial/meta.html.twig b/src/App/templates/partial/meta.html.twig index 138c52b9..95b2b919 100644 --- a/src/App/templates/partial/meta.html.twig +++ b/src/App/templates/partial/meta.html.twig @@ -1,19 +1,21 @@ -{% set ogImage = meta.openGraphImage ?? null %} +{% set ogDescription = meta.description ?? meta.excerpt ?? app.meta.description %} {{ meta.title ?? meta.name ?? app.meta.title }} - + - - - + + + + - + - - + + + diff --git a/src/Blog/src/Handler/GetCategoryResourceHandler.php b/src/Blog/src/Handler/GetCategoryResourceHandler.php index 926f15a0..d2984e11 100644 --- a/src/Blog/src/Handler/GetCategoryResourceHandler.php +++ b/src/Blog/src/Handler/GetCategoryResourceHandler.php @@ -34,8 +34,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface if ($category->getPublishedPostsCount() === 0) { return $this->blogService->gone($categories); } - $meta = $category; - $queryParams = $request->getQueryParams(); $params = Paginator::getParams($queryParams, 'articles.id'); $data = Paginator::wrapper( @@ -49,7 +47,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface [ 'categories' => $categories, 'category' => $category, - 'meta' => $meta, 'data' => $data, ] ); diff --git a/src/Blog/src/Handler/GetPostResourceHandler.php b/src/Blog/src/Handler/GetPostResourceHandler.php index b9a0915b..630884df 100644 --- a/src/Blog/src/Handler/GetPostResourceHandler.php +++ b/src/Blog/src/Handler/GetPostResourceHandler.php @@ -60,7 +60,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface if ($article->getStatus() !== PostStatusEnum::Published) { return $this->blogService->notFound($categories); } - $meta = $article; $adjacent = $this->articleRepository->getAdjacentPosts($article); if ($article->isTwig()) { @@ -69,7 +68,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface "page::blog-resource/{$categorySlug}/{$slug}", [ 'article' => $article, - 'meta' => $meta, 'categories' => $categories, 'previousPost' => $adjacent['previous'], 'nextPost' => $adjacent['next'], @@ -95,7 +93,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface 'page::markdown-article', [ 'article' => $article, - 'meta' => $meta, 'categories' => $categories, 'previousPost' => $adjacent['previous'], 'nextPost' => $adjacent['next'], diff --git a/src/Blog/src/Handler/GetTagResourceHandler.php b/src/Blog/src/Handler/GetTagResourceHandler.php index a03a9e47..00e5b7bb 100644 --- a/src/Blog/src/Handler/GetTagResourceHandler.php +++ b/src/Blog/src/Handler/GetTagResourceHandler.php @@ -33,8 +33,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface if ($tag === null) { return $this->blogService->notFound($categories); } - $meta = $tag; - $queryParams = $request->getQueryParams(); $params = Paginator::getParams($queryParams, 'articles.id'); $data = Paginator::wrapper( @@ -48,7 +46,6 @@ public function handle(ServerRequestInterface $request): ResponseInterface [ 'categories' => $categories, 'tag' => $tag, - 'meta' => $meta, 'data' => $data, ] ); diff --git a/src/Blog/templates/page/author-resource.html.twig b/src/Blog/templates/page/author-resource.html.twig index 4358de08..bfeb62a3 100644 --- a/src/Blog/templates/page/author-resource.html.twig +++ b/src/Blog/templates/page/author-resource.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/author-resource.jsonld.twig') }} {% endblock %} -{% block title %}{{ author.name }}{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { back_href: url('page::blog'), diff --git a/src/Blog/templates/page/authors.html.twig b/src/Blog/templates/page/authors.html.twig index f28bd7d3..e1bc642c 100644 --- a/src/Blog/templates/page/authors.html.twig +++ b/src/Blog/templates/page/authors.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/authors.jsonld.twig') }} {% endblock %} -{% block title %}Authors{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { badge: 'Explore', diff --git a/src/Blog/templates/page/blog.html.twig b/src/Blog/templates/page/blog.html.twig index afd850f4..7314b5ba 100644 --- a/src/Blog/templates/page/blog.html.twig +++ b/src/Blog/templates/page/blog.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/blog.jsonld.twig') }} {% endblock %} -{% block title %}Posts{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { badge: 'Blog', diff --git a/src/Blog/templates/page/categories.html.twig b/src/Blog/templates/page/categories.html.twig index d4f12de5..3db8cacb 100644 --- a/src/Blog/templates/page/categories.html.twig +++ b/src/Blog/templates/page/categories.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/categories.jsonld.twig') }} {% endblock %} -{% block title %}Categories{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { badge: 'Explore', diff --git a/src/Blog/templates/page/category-resource.html.twig b/src/Blog/templates/page/category-resource.html.twig index 5694a5d4..db7329c9 100644 --- a/src/Blog/templates/page/category-resource.html.twig +++ b/src/Blog/templates/page/category-resource.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/category-resource.jsonld.twig') }} {% endblock %} -{% block title %}{{ category.name }}{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { back_href: url('page::categories'), diff --git a/src/Blog/templates/page/contact.html.twig b/src/Blog/templates/page/contact.html.twig index b028a743..fdf09ef9 100644 --- a/src/Blog/templates/page/contact.html.twig +++ b/src/Blog/templates/page/contact.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/contact.jsonld.twig') }} {% endblock %} -{% block title %}Contact{% endblock %} - {% block stylesheets %}{% endblock %} {% set support_links = [ diff --git a/src/Blog/templates/page/dotkernel-packages-oss-lifecycle.html.twig b/src/Blog/templates/page/dotkernel-packages-oss-lifecycle.html.twig index 8b81ad4e..8275882a 100644 --- a/src/Blog/templates/page/dotkernel-packages-oss-lifecycle.html.twig +++ b/src/Blog/templates/page/dotkernel-packages-oss-lifecycle.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-packages-oss-lifecycle.jsonld.twig') }} {% endblock %} -{% block title %}Dotkernel Packages OSS Lifecycle{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { badge: 'Open Source', diff --git a/src/Blog/templates/page/tag-resource.html.twig b/src/Blog/templates/page/tag-resource.html.twig index 4f2827f4..2f324334 100644 --- a/src/Blog/templates/page/tag-resource.html.twig +++ b/src/Blog/templates/page/tag-resource.html.twig @@ -1,8 +1,6 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/tag-resource.jsonld.twig') }} {% endblock %} -{% block title %}{{ tag.name }}{% endblock %} - {% block page_title %} {{ include('@partial/title-section.html.twig', { back_href: url('page::blog'), diff --git a/src/Page/templates/page/about.html.twig b/src/Page/templates/page/about.html.twig index 61501216..ff4ecbd6 100644 --- a/src/Page/templates/page/about.html.twig +++ b/src/Page/templates/page/about.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-about-dk.com.png', } %} -{% block title %}About Us{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/admin.html.twig b/src/Page/templates/page/admin.html.twig index 2204879e..1f914031 100644 --- a/src/Page/templates/page/admin.html.twig +++ b/src/Page/templates/page/admin.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-admin.png', } %} -{% block title %}Dotkernel Admin{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/api.html.twig b/src/Page/templates/page/api.html.twig index eb6f0b2c..ccd5cb6a 100644 --- a/src/Page/templates/page/api.html.twig +++ b/src/Page/templates/page/api.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-api.png', } %} -{% block title %}Dotkernel API{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/architecture.html.twig b/src/Page/templates/page/architecture.html.twig index 622a66d3..56f03c96 100644 --- a/src/Page/templates/page/architecture.html.twig +++ b/src/Page/templates/page/architecture.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-architecture.png', } %} -{% block title %}Architecture{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/dotboost.html.twig b/src/Page/templates/page/dotboost.html.twig index f84a30aa..641c3fe8 100644 --- a/src/Page/templates/page/dotboost.html.twig +++ b/src/Page/templates/page/dotboost.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-dotboost.png', } %} -{% block title %}dotboost{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/frontend.html.twig b/src/Page/templates/page/frontend.html.twig index 3d8f7f66..0b1422a6 100644 --- a/src/Page/templates/page/frontend.html.twig +++ b/src/Page/templates/page/frontend.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-frontend.png', } %} -{% block title %}Dotkernel Frontend{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/light.html.twig b/src/Page/templates/page/light.html.twig index 8ed2d9ff..c8888b7c 100644 --- a/src/Page/templates/page/light.html.twig +++ b/src/Page/templates/page/light.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-light.png', } %} -{% block title %}Dotkernel Light{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/queue.html.twig b/src/Page/templates/page/queue.html.twig index dd618a18..62aa37ac 100644 --- a/src/Page/templates/page/queue.html.twig +++ b/src/Page/templates/page/queue.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-queue.png', } %} -{% block title %}Dotkernel Queue{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %} diff --git a/src/Page/templates/page/wsl2.html.twig b/src/Page/templates/page/wsl2.html.twig index 72906a0e..8ecda9e4 100644 --- a/src/Page/templates/page/wsl2.html.twig +++ b/src/Page/templates/page/wsl2.html.twig @@ -8,8 +8,6 @@ openGraphImage: '/opengraph/pages/twitter-card-wsl2.png', } %} -{% block title %}Development Environment{% endblock %} - {% block head_links %}{% endblock %} {% block stylesheets %}