From f3bf9539efb92220e03dc9cfb03f083078e3b44b Mon Sep 17 00:00:00 2001
From: Sachin Singh <152975718+sachinggsingh@users.noreply.github.com>
Date: Fri, 24 Apr 2026 23:59:26 +0530
Subject: [PATCH 1/2] fix: fixing the roadmap page issue/bug it was redirecting
to github link data was already present in src/data/roadmaps folder fixing
(#1253)
---
docusaurus.config.ts | 2 +-
src/pages/roadmap/index.tsx | 73 ++++++++++++++++++++
src/pages/roadmap/roadmap.css | 123 ++++++++++++++++++++++++++++++++++
3 files changed, 197 insertions(+), 1 deletion(-)
create mode 100644 src/pages/roadmap/index.tsx
create mode 100644 src/pages/roadmap/roadmap.css
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 212833d7..c7b368fb 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -188,7 +188,7 @@ const config: Config = {
},
{
label: "🗺️ Roadmap",
- to: "https://github.com/orgs/recodehive/projects/9",
+ to: "/roadmap"
},
{
label: "🤝 Community",
diff --git a/src/pages/roadmap/index.tsx b/src/pages/roadmap/index.tsx
new file mode 100644
index 00000000..4fec75b3
--- /dev/null
+++ b/src/pages/roadmap/index.tsx
@@ -0,0 +1,73 @@
+import React from "react";
+import Layout from "@theme/Layout";
+import Head from "@docusaurus/Head";
+import { motion } from "framer-motion";
+import { roadmaps } from "../../data/roadmaps";
+import "./roadmap.css";
+
+const RoadmapCard = ({ roadmap, index }: { roadmap: any; index: number }) => {
+ return (
+
+
+ {roadmap.id === "html" ? "🌐" : roadmap.id === "css" ? "🎨" : "🚀"}
+
+ {roadmap.title}
+ {roadmap.description}
+
+
+
+ );
+};
+
+export default function RoadmapPage(): JSX.Element {
+ return (
+
+
+
+
+
+
+
+
+
+ Learning Roadmaps
+
+
+ Guided paths to help you navigate through the vast landscape of modern technology.
+ Step by step, from zero to hero.
+
+
+
+
+ {roadmaps.map((roadmap, index) => (
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/src/pages/roadmap/roadmap.css b/src/pages/roadmap/roadmap.css
new file mode 100644
index 00000000..8408f201
--- /dev/null
+++ b/src/pages/roadmap/roadmap.css
@@ -0,0 +1,123 @@
+.roadmap-page {
+ padding: 4rem 0;
+ min-height: 100vh;
+ background-color: var(--ifm-background-color);
+}
+
+.roadmap-hero {
+ text-align: center;
+ margin-bottom: 4rem;
+ padding: 0 1rem;
+}
+
+.roadmap-hero-title {
+ font-size: 3.5rem;
+ font-weight: 800;
+ margin-bottom: 1rem;
+ background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.roadmap-hero-subtitle {
+ font-size: 1.25rem;
+ color: var(--ifm-color-emphasis-700);
+ max-width: 600px;
+ margin: 0 auto;
+}
+
+.roadmap-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
+ gap: 2rem;
+ padding: 0 1rem;
+}
+
+.roadmap-card {
+ background: rgba(255, 255, 255, 0.03);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ border-radius: 1.5rem;
+ padding: 2rem;
+ transition: all 0.3s ease;
+ position: relative;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+}
+
+[data-theme='light'] .roadmap-card {
+ background: rgba(0, 0, 0, 0.02);
+ border: 1px solid rgba(0, 0, 0, 0.05);
+}
+
+.roadmap-card:hover {
+ transform: translateY(-10px);
+ border-color: #3b82f6;
+ box-shadow: 0 20px 40px rgba(59, 130, 246, 0.1);
+}
+
+.roadmap-card-icon {
+ font-size: 2.5rem;
+ margin-bottom: 1.5rem;
+}
+
+.roadmap-card-title {
+ font-size: 1.5rem;
+ font-weight: 700;
+ margin-bottom: 1rem;
+}
+
+.roadmap-card-description {
+ color: var(--ifm-color-emphasis-600);
+ margin-bottom: 2rem;
+ line-height: 1.6;
+ flex-grow: 1;
+}
+
+.roadmap-card-stats {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding-top: 1.5rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
+}
+
+[data-theme='light'] .roadmap-card-stats {
+ border-top-color: rgba(0, 0, 0, 0.05);
+}
+
+.roadmap-stat {
+ font-size: 0.875rem;
+ font-weight: 500;
+ color: var(--ifm-color-emphasis-500);
+}
+
+.roadmap-button {
+ background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
+ color: white;
+ border: none;
+ padding: 0.75rem 1.5rem;
+ border-radius: 0.75rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ text-decoration: none !important;
+ display: inline-block;
+ text-align: center;
+}
+
+.roadmap-button:hover {
+ transform: scale(1.05);
+ box-shadow: 0 10px 20px rgba(37, 99, 235, 0.2);
+ color: white;
+}
+
+@media (max-width: 768px) {
+ .roadmap-hero-title {
+ font-size: 2.5rem;
+ }
+
+ .roadmap-grid {
+ grid-template-columns: 1fr;
+ }
+}
From 0dbd2e4644e94b638e5a80ab556c98af2e30d2e4 Mon Sep 17 00:00:00 2001
From: Sachin Singh <152975718+sachinggsingh@users.noreply.github.com>
Date: Sat, 25 Apr 2026 12:40:10 +0530
Subject: [PATCH 2/2] fix: the social icons were not avaliable to of all
writers now available fixing (#1127)
---
blog/authors.yml | 34 +++++-
src/pages/blogs/blogs-new.css | 111 ++++++++++++++----
src/pages/blogs/index.tsx | 75 ++++++++++--
src/theme/BlogPostAuthor/Socials/index.tsx | 103 ++++++++++++++++
.../BlogPostAuthor/Socials/styles.module.css | 37 ++++++
src/theme/BlogPostAuthor/index.tsx | 31 +++++
src/theme/BlogPostAuthor/styles.module.css | 16 +++
src/utils/authors.ts | 81 ++++++++++---
8 files changed, 436 insertions(+), 52 deletions(-)
create mode 100644 src/theme/BlogPostAuthor/Socials/index.tsx
create mode 100644 src/theme/BlogPostAuthor/Socials/styles.module.css
create mode 100644 src/theme/BlogPostAuthor/index.tsx
create mode 100644 src/theme/BlogPostAuthor/styles.module.css
diff --git a/blog/authors.yml b/blog/authors.yml
index cb7314a8..b87786eb 100644
--- a/blog/authors.yml
+++ b/blog/authors.yml
@@ -7,6 +7,12 @@ ajay-dhangar:
page: true # Turns the feature on
description: >
A passionate developer who loves to code and build new things. I am a Full Stack Developer and a Cyber Security, ML & AI Enthusiast. I am also a Technical Content Writer and a Speaker. I love to share my knowledge with the community. I am the Founder of CodeHarborHub. I am also a Technical Content Writer at GeeksforGeeks. I am a Girl Script Summer of Code 2024 Project Manager (PA).
+ socials:
+ x: https://x.com/CodesWithAjay
+ linkedin: ajay-dhangar
+ github: ajay-dhangar
+ youtube: ajay-dhangar
+ facebook: ajay.dhangar.2001
sanjay-kv:
name: Sanjay Viswanthan
@@ -29,57 +35,79 @@ sanjay-kv:
hitesh-gahanolia:
name: Hitesh Gahanolia
- tile: Final Year Student At MNNIT ALLAHABAD
+ title: Final Year Student At MNNIT ALLAHABAD
url: https://github.com/Hitesh4278
image_url: https://avatars.githubusercontent.com/u/97452642?v=4
+ socials:
+ github: Hitesh4278
sowmiya-v:
name: Sowmiya Venkatesan
- tile: Business Strategy & Operations Manager
+ title: Business Strategy & Operations Manager
url: https://github.com/sowmiyeh
image_url: https://avatars.githubusercontent.com/u/74345706?v=4
+ socials:
+ x: sowmiyeh
+ linkedin: sowmiyavenkatesan
+ github: sowmiyeh
+ # medium: sowmiyeh
+ # hashnode: sowmiyeh
abhijith-m-s:
name: Abhijith M S
title: Full Stack Developer
url: https://github.com/AMS003010
image_url: https://avatars.githubusercontent.com/u/111883236?v=4
+ socials:
+ github: AMS003010
khushi-kalra:
name: Khushi Kalra
title: Full Stack Developer
url: "https://github.com/abckhush"
image_url: "https://yt3.googleusercontent.com/BpaBYEiGibr8uiNMCWytJ5BdKbPtpqTJAuA5Ida5rXAe8Zfvr8keZSPXYSqGasjGo7OunF2w=s176-c-k-c0x00ffffff-no-rj"
+ socials:
+ github: abckhush
nayanikamukherjee:
name: Nayanika Mukherjee
title: Full Stack Developer
url: "https://github.com/Nayanika1402"
image_url: https://avatars.githubusercontent.com/u/132455412?v=4
+ socials:
+ github: Nayanika1402
pujan-sarkar:
name: Pujan Sarkar
title: Cyber Security Enthusiast
url: "https://github.com/Pujan-sarkar"
image_url: https://avatars.githubusercontent.com/u/144250917?v=4
+ socials:
+ github: Pujan-sarkar
mohitmuktikant:
name: Mohit Muktikant
title: Full Stack Web Developer
url: "https://github.com/mohitmuktikant"
image_url: https://avatars.githubusercontent.com/u/101824646?v=4
+ socials:
+ github: mohitmuktikant
santhosh-siddhardha:
name: Lingamuneni Santhosh Siddhardha
title: Software Engineer
url: "https://github.com/Santhosh-Siddhardha"
image_url: https://avatars.githubusercontent.com/u/103999924?v=4
+ socials:
+ github: Santhosh-Siddhardha
akshitha-chiluka:
name: Akshitha Chiluka
title: Software Engineering Undergraduate
url: https://github.com/AKSHITHA-CHILUKA
image_url: https://avatars.githubusercontent.com/u/120377576?v=4
+ socials:
+ github: AKSHITHA-CHILUKA
Aditya-Singh-Rathore:
name: Aditya Singh Rathore
@@ -96,4 +124,4 @@ Aditya-Singh-Rathore:
github: Adez017
instagram: _aaditya_.017
bluesky: adez017.bsky.social
- x: https://x.com/Adez017
+ x: Adez017
diff --git a/src/pages/blogs/blogs-new.css b/src/pages/blogs/blogs-new.css
index bc430621..02a1a6a6 100644
--- a/src/pages/blogs/blogs-new.css
+++ b/src/pages/blogs/blogs-new.css
@@ -1627,58 +1627,117 @@
width: 80px;
}
+.card-authors-container {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ flex: 1;
+ min-width: 0;
+}
+
.card-author {
display: flex;
align-items: center;
- gap: 10px;
- flex: 1;
- min-width: 0; /* Allow text to shrink */
+ gap: 12px;
+ min-width: 0;
}
.author-avatar {
- width: 32px;
- height: 32px;
+ width: 40px;
+ height: 40px;
border-radius: 50%;
- background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
+ background: var(--ifm-color-emphasis-200);
display: flex;
align-items: center;
justify-content: center;
- font-size: 16px;
- color: white;
- font-weight: 600;
- box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
- flex-shrink: 0;
+ overflow: hidden;
+ border: 2px solid transparent;
transition: all 0.3s ease;
+ flex-shrink: 0;
}
-.author-avatar:hover {
- transform: scale(1.1);
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
+.author-img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.author-info {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ min-width: 0;
}
.author-name {
- font-size: 13px;
- color: #475569;
- font-weight: 600;
+ font-size: 14px;
+ color: #1e293b;
+ font-weight: 700;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
- max-width: 100%;
- position: relative;
- cursor: help;
transition: color 0.2s ease;
}
-.author-name:hover {
- color: #6366f1;
+[data-theme="dark"] .author-name {
+ color: #f1f5f9;
}
-[data-theme="dark"] .author-name {
- color: #cbd5e1;
+.author-social-links {
+ display: flex;
+ gap: 8px;
+ margin-top: 2px;
}
-[data-theme="dark"] .author-name:hover {
- color: #a78bfa;
+.author-social-link {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 14px;
+ color: #64748b;
+ transition: all 0.2s ease;
+ width: 24px;
+ height: 24px;
+ border-radius: 6px;
+ background: rgba(0, 0, 0, 0.03);
+}
+
+[data-theme="dark"] .author-social-link {
+ color: #94a3b8;
+ background: rgba(255, 255, 255, 0.05);
+}
+
+.author-social-link:hover {
+ transform: translateY(-2px);
+ text-decoration: none;
+}
+
+.author-social-link.github:hover {
+ color: #181717;
+ background: rgba(24, 23, 23, 0.1);
+}
+
+.author-social-link.linkedin:hover {
+ color: #0a66c2;
+ background: rgba(10, 102, 194, 0.1);
+}
+
+.author-social-link.x:hover {
+ color: #000000;
+ background: rgba(0, 0, 0, 0.1);
+}
+
+[data-theme="dark"] .author-social-link.github:hover {
+ color: #ffffff;
+}
+
+[data-theme="dark"] .author-social-link.x:hover {
+ color: #ffffff;
+}
+
+[data-theme="dark"] .author-social-link.linkedin:hover {
+ color: #0a66c2;
+ background: rgba(10, 102, 194, 0.2);
}
/* Tooltip for author names */
diff --git a/src/pages/blogs/index.tsx b/src/pages/blogs/index.tsx
index 0679d8c0..0c14a742 100644
--- a/src/pages/blogs/index.tsx
+++ b/src/pages/blogs/index.tsx
@@ -4,6 +4,9 @@ import Layout from "@theme/Layout";
import Link from "@docusaurus/Link";
import blogs from "../../database/blogs/index";
import Head from "@docusaurus/Head";
+import { FaGithub, FaLinkedin } from "react-icons/fa";
+import { FaXTwitter } from "react-icons/fa6";
+import { authorsMap } from "../../utils/authors";
import "./blogs-new.css";
@@ -269,12 +272,52 @@ export default function Blogs(): React.JSX.Element {
const BlogCard = ({ blog, index }) => {
// Get authors for this blog post
- const getAuthors = (slug) => {
- const authors = authorMapping[slug] || ["recode hive Team"];
- return authors.length > 1 ? authors.join(" & ") : authors[0];
+ const getAuthorsData = (slug: string) => {
+ // Some blogs might have multiple authors
+ const authorIds = blog.authors || [];
+ return authorIds.map((id) => ({
+ id,
+ ...authorsMap[id],
+ }));
};
- const authorName = getAuthors(blog.slug);
+ const authors = getAuthorsData(blog.slug);
+
+ const renderSocialIcons = (author) => {
+ if (!author.socials) return null;
+
+ return (
+
+ {author.socials.github && (
+
+
+
+ )}
+ {author.socials.linkedin && (
+
+
+
+ )}
+ {author.socials.x && (
+
+
+
+ )}
+
+ );
+ };
return (
@@ -286,11 +329,25 @@ const BlogCard = ({ blog, index }) => {
{blog.title}
{blog.description}
-
-
👤
-
- {authorName}
-
+
+ {authors.map((author, idx) => (
+
+
+ {
+ (e.target as HTMLImageElement).src = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E";
+ }}
+ />
+
+
+ {author.name || "recode hive Team"}
+ {renderSocialIcons(author)}
+
+
+ ))}
5 min read
diff --git a/src/theme/BlogPostAuthor/Socials/index.tsx b/src/theme/BlogPostAuthor/Socials/index.tsx
new file mode 100644
index 00000000..dd1ed98c
--- /dev/null
+++ b/src/theme/BlogPostAuthor/Socials/index.tsx
@@ -0,0 +1,103 @@
+import React from 'react';
+import Link from '@docusaurus/Link';
+import {
+ FaGithub,
+ FaTwitter,
+ FaLinkedin,
+ FaInstagram,
+ FaYoutube,
+ FaFacebook,
+ FaStackOverflow,
+ FaMedium,
+ // FaHashnod÷e,
+ FaExternalLinkAlt,
+ FaRss,
+} from 'react-icons/fa';
+import { FaXTwitter } from 'react-icons/fa6';
+import { SiBluesky, SiSubstack } from 'react-icons/si';
+import styles from './styles.module.css';
+
+const SocialIcons = {
+ github: FaGithub,
+ twitter: FaTwitter,
+ x: FaXTwitter,
+ linkedin: FaLinkedin,
+ instagram: FaInstagram,
+ youtube: FaYoutube,
+ facebook: FaFacebook,
+ stackoverflow: FaStackOverflow,
+ medium: FaMedium,
+ // hashnode: FaHashn÷ode,
+ newsletter: SiSubstack,
+ substack: SiSubstack,
+ bluesky: SiBluesky,
+ rss: FaRss,
+};
+
+export default function BlogPostAuthorSocials({author}) {
+ const {socials} = author;
+ if (!socials) {
+ return null;
+ }
+
+ const renderSocialLink = (platform, handle) => {
+ const Icon = SocialIcons[platform.toLowerCase()] || FaExternalLinkAlt;
+ let href = handle;
+
+ if (!handle.startsWith('http')) {
+ switch (platform.toLowerCase()) {
+ case 'github':
+ href = `https://github.com/${handle}`;
+ break;
+ case 'twitter':
+ case 'x':
+ href = `https://x.com/${handle}`;
+ break;
+ case 'linkedin':
+ href = `https://www.linkedin.com/in/${handle}`;
+ break;
+ case 'instagram':
+ href = `https://www.instagram.com/${handle}`;
+ break;
+ case 'youtube':
+ href = `https://www.youtube.com/@${handle}`;
+ break;
+ case 'facebook':
+ href = `https://www.facebook.com/${handle}`;
+ break;
+ case 'medium':
+ href = `https://medium.com/@${handle}`;
+ break;
+ case 'hashnode':
+ href = `https://hashnode.com/@${handle}`;
+ break;
+ case 'stackoverflow':
+ href = `https://stackoverflow.com/users/${handle}`;
+ break;
+ case 'bluesky':
+ href = `https://bsky.app/profile/${handle}`;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return (
+
+
+
+ );
+ };
+
+ return (
+
+ {Object.entries(socials).map(([platform, handle]) =>
+ renderSocialLink(platform, handle),
+ )}
+
+ );
+}
diff --git a/src/theme/BlogPostAuthor/Socials/styles.module.css b/src/theme/BlogPostAuthor/Socials/styles.module.css
new file mode 100644
index 00000000..f1ea7212
--- /dev/null
+++ b/src/theme/BlogPostAuthor/Socials/styles.module.css
@@ -0,0 +1,37 @@
+.socials {
+ display: flex;
+ gap: 0.75rem;
+ margin-top: 0.5rem;
+ flex-wrap: wrap;
+}
+
+.socialLink {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ background-color: var(--ifm-color-emphasis-100);
+ color: var(--ifm-color-emphasis-700);
+ transition: all 0.2s ease;
+ font-size: 1.1rem;
+}
+
+.socialLink:hover {
+ background-color: var(--ifm-color-primary);
+ color: white;
+ transform: translateY(-2px);
+ text-decoration: none;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+}
+
+[data-theme='dark'] .socialLink {
+ background-color: var(--ifm-color-emphasis-200);
+ color: var(--ifm-color-emphasis-800);
+}
+
+[data-theme='dark'] .socialLink:hover {
+ background-color: var(--ifm-color-primary);
+ color: white;
+}
diff --git a/src/theme/BlogPostAuthor/index.tsx b/src/theme/BlogPostAuthor/index.tsx
new file mode 100644
index 00000000..71dddc60
--- /dev/null
+++ b/src/theme/BlogPostAuthor/index.tsx
@@ -0,0 +1,31 @@
+import React from 'react';
+import clsx from 'clsx';
+import Link from '@docusaurus/Link';
+import Socials from '@theme/BlogPostAuthor/Socials';
+import styles from './styles.module.css';
+
+export default function BlogPostAuthor({author, className}) {
+ const {name, title, url, imageURL, socials} = author;
+ return (
+
+ {imageURL && (
+
+
+
+ )}
+
+
+
+ {name}
+
+
+ {title && (
+
+ {title}
+
+ )}
+
+
+
+ );
+}
diff --git a/src/theme/BlogPostAuthor/styles.module.css b/src/theme/BlogPostAuthor/styles.module.css
new file mode 100644
index 00000000..00583808
--- /dev/null
+++ b/src/theme/BlogPostAuthor/styles.module.css
@@ -0,0 +1,16 @@
+.authorPhoto {
+ width: 3.5rem;
+ height: 3.5rem;
+ border: 2px solid var(--ifm-color-emphasis-200);
+ padding: 2px;
+ background: var(--ifm-background-color);
+ transition: border-color 0.2s ease;
+}
+
+.authorPhoto:hover {
+ border-color: var(--ifm-color-primary);
+}
+
+[data-theme='dark'] .authorPhoto {
+ border-color: var(--ifm-color-emphasis-300);
+}
diff --git a/src/utils/authors.ts b/src/utils/authors.ts
index 491bac28..8cbe7eee 100644
--- a/src/utils/authors.ts
+++ b/src/utils/authors.ts
@@ -1,22 +1,75 @@
-export const authorsMap = {
- "ajay-dhangar": "Ajay Dhangar",
- "sanjay-kv": "Sanjay Viswanthan",
- "hitesh-gahanolia": "Hitesh Gahanolia",
- "sowmiya-v": "Sowmiya Venkatesan",
- "abhijith-m-s": "Abhijith M S",
- "khushi-kalra": "Khushi Kalra",
- nayanikamukherjee: "Nayanika Mukherjee",
- "pujan-sarkar": "Pujan Sarkar",
- mohitmuktikant: "Mohit Muktikant",
- "santhosh-siddhardha": "Lingamuneni Santhosh Siddhardha",
- "akshitha-chiluka": "Akshitha Chiluka",
- "Aditya-Singh-Rathore": "Aditya Singh Rathore",
+export const authorsMap: Record
}> = {
+ "ajay-dhangar": {
+ name: "Ajay Dhangar",
+ socials: {
+ github: "ajay-dhangar",
+ linkedin: "ajay-dhangar",
+ x: "CodesWithAjay",
+ }
+ },
+ "sanjay-kv": {
+ name: "Sanjay Viswanthan",
+ socials: {
+ github: "sanjay-kv",
+ linkedin: "sanjay-k-v",
+ x: "sanjay_kv_",
+ }
+ },
+ "hitesh-gahanolia": {
+ name: "Hitesh Gahanolia",
+ socials: { github: "Hitesh4278" }
+ },
+ "sowmiya-v": {
+ name: "Sowmiya Venkatesan",
+ socials: {
+ github: "sowmiyeh",
+ linkedin: "sowmiyavenkatesan",
+ x: "sowmiyeh",
+ }
+ },
+ "abhijith-m-s": {
+ name: "Abhijith M S",
+ socials: { github: "AMS003010" }
+ },
+ "khushi-kalra": {
+ name: "Khushi Kalra",
+ socials: { github: "abckhush" }
+ },
+ nayanikamukherjee: {
+ name: "Nayanika Mukherjee",
+ socials: { github: "Nayanika1402" }
+ },
+ "pujan-sarkar": {
+ name: "Pujan Sarkar",
+ socials: { github: "Pujan-sarkar" }
+ },
+ mohitmuktikant: {
+ name: "Mohit Muktikant",
+ socials: { github: "mohitmuktikant" }
+ },
+ "santhosh-siddhardha": {
+ name: "Lingamuneni Santhosh Siddhardha",
+ socials: { github: "Santhosh-Siddhardha" }
+ },
+ "akshitha-chiluka": {
+ name: "Akshitha Chiluka",
+ socials: { github: "AKSHITHA-CHILUKA" }
+ },
+ "Aditya-Singh-Rathore": {
+ name: "Aditya Singh Rathore",
+ socials: {
+ github: "Adez017",
+ linkedin: "aditya-singh-rathore0017",
+ x: "Adez017",
+ }
+ },
};
export const getAuthorNames = (authorIds: string[]): string => {
const firstNames = authorIds
.map((id) => {
- const fullName = authorsMap[id] || id;
+ const author = authorsMap[id];
+ const fullName = author ? author.name : id;
return fullName.split(" ")[0];
})
.slice(0, 2);