diff --git a/public/site.webmanifest b/public/site.webmanifest
index 7b28b97..bc19373 100644
--- a/public/site.webmanifest
+++ b/public/site.webmanifest
@@ -1,6 +1,6 @@
{
"name": "Fix Security",
- "short_name": "Fix Security",
+ "short_name": "Fix",
"start_url": "./",
"icons": [
{
diff --git a/src/app/blog/tag/[slug]/page.tsx b/src/app/blog/tag/[slug]/page.tsx
index b01d0f3..50deafe 100644
--- a/src/app/blog/tag/[slug]/page.tsx
+++ b/src/app/blog/tag/[slug]/page.tsx
@@ -35,7 +35,7 @@ export async function generateMetadata({
const url = `${siteConfig.url}/blog/tag/${params.slug}`;
const title = `${tag.charAt(0).toUpperCase()}${tag.slice(1)} | Blog`;
- const description = `Guides, how-tos, and news about ${tag} from the Fix Security team.`;
+ const description = `Guides, how-tos, and news from the Fix Security team.`;
const ogImage = openGraph({
title,
description,
@@ -103,8 +103,7 @@ export default async function BlogTagPage({
{tagName.slice(1)}
- Guides, how-tos, and news about {tagName} from the Fix Security
- team.
+ Guides, how-tos, and news about from the Fix Security team.
edge.node)}
diff --git a/src/components/blog/BlogDraft.tsx b/src/components/blog/BlogDraft.tsx
index a06029a..5a8ba2f 100644
--- a/src/components/blog/BlogDraft.tsx
+++ b/src/components/blog/BlogDraft.tsx
@@ -54,11 +54,16 @@ export default function BlogDraft({
? draft.features.tableOfContents.items
: undefined
}
+ coverImage={draft.coverImage?.url}
/>
)}
- {draft.series ? : null}
+ {draft.tagsV2?.find((tag) => tag.slug === 'launch-week') ? (
+
+ ) : draft.series ? (
+
+ ) : null}
);
}
diff --git a/src/components/blog/BlogPost/Content.tsx b/src/components/blog/BlogPost/Content.tsx
index 00d0c5d..618ef37 100644
--- a/src/components/blog/BlogPost/Content.tsx
+++ b/src/components/blog/BlogPost/Content.tsx
@@ -1,3 +1,5 @@
+import Image from 'next/image';
+
import TableOfContents from '@/components/blog/BlogPost/TableOfContents';
import MarkdownContent from '@/components/common/MarkdownContent';
import { TableOfContentsItemFragment as HashnodeTableOfContentsItem } from '@/generated/hashnode/graphql';
@@ -5,12 +7,24 @@ import { TableOfContentsItemFragment as HashnodeTableOfContentsItem } from '@/ge
export default function Content({
markdown,
tocItems,
+ coverImage,
}: {
markdown?: string;
tocItems?: HashnodeTableOfContentsItem[];
+ coverImage?: string;
}) {
return (
+ {coverImage ? (
+
+
+
+ ) : null}
{tocItems ?
: null}
{markdown}
diff --git a/src/components/blog/BlogPost/RelatedPosts/index.tsx b/src/components/blog/BlogPost/RelatedPosts/index.tsx
index 597e503..08f43ca 100644
--- a/src/components/blog/BlogPost/RelatedPosts/index.tsx
+++ b/src/components/blog/BlogPost/RelatedPosts/index.tsx
@@ -1,17 +1,26 @@
import Item from '@/components/blog/BlogPost/RelatedPosts/Item';
-import { getPostsBySeries } from '@/lib/hashnode';
+import { getPostsBySeries, getPostsByTag } from '@/lib/hashnode';
export default async function RelatedPosts({
seriesSlug,
+ tagSlug,
excludePostSlug,
}: {
- seriesSlug: string;
+ seriesSlug?: string;
+ tagSlug?: string;
excludePostSlug?: string;
}) {
- const posts = await getPostsBySeries({
- first: excludePostSlug ? 4 : 3,
- seriesSlug,
- });
+ const posts = seriesSlug
+ ? await getPostsBySeries({
+ first: excludePostSlug ? 4 : 3,
+ seriesSlug,
+ })
+ : tagSlug
+ ? await getPostsByTag({
+ first: excludePostSlug ? 4 : 3,
+ tagSlug,
+ })
+ : null;
if (!posts) {
return null;
diff --git a/src/components/blog/BlogPost/index.tsx b/src/components/blog/BlogPost/index.tsx
index 01d5630..2719164 100644
--- a/src/components/blog/BlogPost/index.tsx
+++ b/src/components/blog/BlogPost/index.tsx
@@ -59,11 +59,14 @@ export default function BlogPost({
? post.features.tableOfContents.items
: undefined
}
+ coverImage={post.coverImage?.url}
/>
)}
- {post.series ? (
+ {post.tags?.find((tag) => tag.slug === 'launch-week') ? (
+
+ ) : post.series ? (