Compare commits
1 Commits
6d8b8d8400
...
refactor-i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6ddbac8ce |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 821 KiB After Width: | Height: | Size: 821 KiB |
|
Before Width: | Height: | Size: 386 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1013 KiB After Width: | Height: | Size: 1013 KiB |
|
Before Width: | Height: | Size: 370 KiB After Width: | Height: | Size: 370 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 1021 B After Width: | Height: | Size: 1021 B |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 405 KiB After Width: | Height: | Size: 405 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 936 KiB After Width: | Height: | Size: 936 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 398 KiB |
|
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 312 KiB After Width: | Height: | Size: 312 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<a href="https://roadmap.sh/"><img src="public/images/brand.png" height="128"></a>
|
||||
<a href="https://roadmap.sh/"><img src="public/img/brand.png" height="128"></a>
|
||||
<h2 align="center"><a href="https://roadmap.sh">roadmap.sh</a></h2>
|
||||
<p align="center">Community driven roadmaps, articles and resources for developers<p>
|
||||
<p align="center">
|
||||
|
||||
@@ -36,33 +36,33 @@
|
||||
"public/guides/torrent-client/pipelining.png",
|
||||
"public/guides/unfamiliar-codebase.png",
|
||||
"public/guides/web-vitals.png",
|
||||
"public/images/brand.png",
|
||||
"public/images/default-avatar.png",
|
||||
"public/images/features/in-progress.png",
|
||||
"public/images/icons8-wand.gif",
|
||||
"public/images/partners/ambassador-graphic-1.png",
|
||||
"public/images/partners/ambassador-graphic-2.png",
|
||||
"public/images/partners/apollo-workshop.png",
|
||||
"public/images/partners/graphql-summit.png",
|
||||
"public/images/partners/nginx.png",
|
||||
"public/images/roadmap-editor.jpeg",
|
||||
"public/images/system-design.png",
|
||||
"public/images/team-promo/contact.png",
|
||||
"public/images/team-promo/documentation.png",
|
||||
"public/images/team-promo/growth-plans.png",
|
||||
"public/images/team-promo/hero-img.png",
|
||||
"public/images/team-promo/hero.png",
|
||||
"public/images/team-promo/invite-members.png",
|
||||
"public/images/team-promo/many-roadmaps.png",
|
||||
"public/images/team-promo/onboarding.png",
|
||||
"public/images/team-promo/our-roadmaps.png",
|
||||
"public/images/team-promo/progress-tracking.png",
|
||||
"public/images/team-promo/roadmap-editor.png",
|
||||
"public/images/team-promo/sharing-settings.png",
|
||||
"public/images/team-promo/skill-gap.png",
|
||||
"public/images/team-promo/team-dashboard.png",
|
||||
"public/images/team-promo/team-insights.png",
|
||||
"public/images/team-promo/update-progress.png",
|
||||
"public/img/brand.png",
|
||||
"public/img/default-avatar.png",
|
||||
"public/img/features/in-progress.png",
|
||||
"public/img/icons8-wand.gif",
|
||||
"public/img/partners/ambassador-graphic-1.png",
|
||||
"public/img/partners/ambassador-graphic-2.png",
|
||||
"public/img/partners/apollo-workshop.png",
|
||||
"public/img/partners/graphql-summit.png",
|
||||
"public/img/partners/nginx.png",
|
||||
"public/img/roadmap-editor.jpeg",
|
||||
"public/img/system-design.png",
|
||||
"public/img/team-promo/contact.png",
|
||||
"public/img/team-promo/documentation.png",
|
||||
"public/img/team-promo/growth-plans.png",
|
||||
"public/img/team-promo/hero-img.png",
|
||||
"public/img/team-promo/hero.png",
|
||||
"public/img/team-promo/invite-members.png",
|
||||
"public/img/team-promo/many-roadmaps.png",
|
||||
"public/img/team-promo/onboarding.png",
|
||||
"public/img/team-promo/our-roadmaps.png",
|
||||
"public/img/team-promo/progress-tracking.png",
|
||||
"public/img/team-promo/roadmap-editor.png",
|
||||
"public/img/team-promo/sharing-settings.png",
|
||||
"public/img/team-promo/skill-gap.png",
|
||||
"public/img/team-promo/team-dashboard.png",
|
||||
"public/img/team-promo/team-insights.png",
|
||||
"public/img/team-promo/update-progress.png",
|
||||
"public/manifest/apple-touch-icon.png",
|
||||
"public/manifest/icon152.png",
|
||||
"public/manifest/icon196.png",
|
||||
|
||||
@@ -239,7 +239,7 @@ async function generateGuideOpenGraph() {
|
||||
for (const guide of allGuides) {
|
||||
const author = allAuthors.find((author) => author.id === guide.authorId);
|
||||
const image =
|
||||
author?.imageUrl || 'https://roadmap.sh/images/default-avatar.png';
|
||||
author?.imageUrl || 'https://roadmap.sh/img/default-avatar.png';
|
||||
const isExternalImage = image?.startsWith('http');
|
||||
let authorImageExtension = '';
|
||||
let authorAvatar;
|
||||
|
||||
@@ -44,7 +44,7 @@ export function UserDropdown(props: UserDropdownProps) {
|
||||
|
||||
const userAvatar = currentUser?.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${currentUser?.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
return (
|
||||
<DropdownMenu>
|
||||
|
||||
@@ -136,7 +136,7 @@ export function Befriend() {
|
||||
|
||||
const userAvatar = user.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${user.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const isMe = currentUser?.id === user.id;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ const formattedDate = DateTime.fromISO('2024-09-13').toFormat('dd LLL, yyyy');
|
||||
<div
|
||||
class='flex flex-col items-center justify-center gap-2 sm:gap-2 rounded-xl border bg-white px-8 py-12 text-center'
|
||||
>
|
||||
<img src='/images/gifs/rocket.gif' class='w-[70px] mb-4' />
|
||||
<img src='/img/gifs/rocket.gif' class='w-[70px] mb-4' />
|
||||
<h2 class='text-balance text-xl font-medium'>Changelog page is launched</h2>
|
||||
<p class='font-normal text-balance text-gray-400 text-sm sm:text-base'>
|
||||
We will be sharing a selected list of updates, improvements, and fixes made to
|
||||
|
||||
@@ -10,7 +10,7 @@ const top10Changelogs = allChangelogs.slice(0, 10);
|
||||
<div class='container max-w-[650px]!'>
|
||||
<p class='text-2xl font-bold sm:text-5xl'>
|
||||
<img
|
||||
src='/images/gifs/rocket.gif'
|
||||
src='/img/gifs/rocket.gif'
|
||||
alt='Rocket'
|
||||
class='mr-2 hidden h-12 w-12 sm:inline'
|
||||
/>
|
||||
|
||||
@@ -117,7 +117,7 @@ export function ListRoadmapRatings(props: ListRoadmapRatingsProps) {
|
||||
{ratings.map((rating) => {
|
||||
const userAvatar = rating?.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${rating.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const isLastRating =
|
||||
ratings[ratings.length - 1]._id === rating._id;
|
||||
|
||||
@@ -72,7 +72,7 @@ export function RoadmapHeader(props: RoadmapHeaderProps) {
|
||||
|
||||
const avatarUrl = creator?.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${creator?.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -70,7 +70,7 @@ export function SharedRoadmapList(props: SharedRoadmapListProps) {
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${
|
||||
creator.avatar
|
||||
}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={creator.name || ''}
|
||||
className="h-8 w-8 rounded-full"
|
||||
|
||||
@@ -73,7 +73,7 @@ export function DashboardPage(props: DashboardPageProps) {
|
||||
const userAvatar =
|
||||
currentUser?.avatar && !isLoading
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${currentUser.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -96,7 +96,7 @@ export function DashboardPage(props: DashboardPageProps) {
|
||||
const { avatar } = team;
|
||||
const avatarUrl = avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
return (
|
||||
<DashboardTabButton
|
||||
key={team._id}
|
||||
|
||||
@@ -288,7 +288,7 @@ export function PersonalDashboard(props: PersonalDashboardProps) {
|
||||
const { avatar, name } = personalDashboardDetails || {};
|
||||
const avatarLink = avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const enrichedProjects = personalDashboardDetails?.projects
|
||||
.map((project) => {
|
||||
|
||||
@@ -128,7 +128,7 @@ export function TeamDashboard(props: TeamDashboardProps) {
|
||||
{allMembersWithoutCurrentUser.map((member) => {
|
||||
const avatar = member?.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${member.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
return (
|
||||
<a
|
||||
className="group relative"
|
||||
|
||||
@@ -117,7 +117,7 @@ import { CookieSettingsButton } from './CookieSettingsButton';
|
||||
<div class='max-w-[340px] text-left lg:text-right'>
|
||||
<a href='https://thenewstack.io' target='_blank'>
|
||||
<img
|
||||
src='/images/tns-sm.png'
|
||||
src='/img/tns-sm.png'
|
||||
alt='ThewNewStack'
|
||||
class='my-1.5 mr-auto lg:mr-0 lg:ml-auto'
|
||||
width='200'
|
||||
|
||||
@@ -143,5 +143,5 @@ svg .removed path {
|
||||
}
|
||||
|
||||
/*.clickable-group:hover {*/
|
||||
/* cursor: url(/images/cursors/add.svg) 5 5, move;*/
|
||||
/* cursor: url(/img/cursors/add.svg) 5 5, move;*/
|
||||
/*}*/
|
||||
|
||||
@@ -75,7 +75,7 @@ export function FriendProgressItem(props: FriendProgressItemProps) {
|
||||
src={
|
||||
friend.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${friend.avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={friend.name || ''}
|
||||
className="h-8 w-8 rounded-full"
|
||||
|
||||
@@ -162,7 +162,7 @@ function LeaderboardLane(props: LeaderboardLaneProps) {
|
||||
? user?.avatar?.startsWith('http')
|
||||
? user?.avatar
|
||||
: `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${user.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const rank = counter + 1;
|
||||
const isGitHubUser = avatar?.indexOf('github') > -1;
|
||||
|
||||
@@ -145,7 +145,7 @@ export function ProjectSolutionModal(props: ProjectSolutionModalProps) {
|
||||
src={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={solution?.user?.name}
|
||||
className="h-12 w-12 rounded-full border-2 border-white shadow-md"
|
||||
|
||||
@@ -58,7 +58,7 @@ export function ProjectSolutionRow(props: ProjectSolutionRowProps) {
|
||||
src={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={solution.user.name}
|
||||
className="h-7 w-7 shrink-0 rounded-full sm:h-8 sm:w-8"
|
||||
|
||||
@@ -109,7 +109,7 @@ export function TransferToTeamList(props: TransferToTeamListProps) {
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${
|
||||
team.avatar
|
||||
}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={team.name || ''}
|
||||
className="h-6 w-6 shrink-0 rounded-full"
|
||||
|
||||
@@ -25,7 +25,7 @@ export function UserItem(props: UserItemProps) {
|
||||
src={
|
||||
user.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${user.avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={user.name || ''}
|
||||
className="relative top-[1px] h-10 w-10 shrink-0 rounded-full"
|
||||
|
||||
@@ -124,7 +124,7 @@ export function ShareRoadmapButton(props: ShareRoadmapButtonProps) {
|
||||
<div className="flex w-[20px] items-center justify-center">
|
||||
<img
|
||||
alt={'hackernews logo'}
|
||||
src={'/images/hackernews.svg'}
|
||||
src={'/img/hackernews.svg'}
|
||||
className="h-5 w-5"
|
||||
/>
|
||||
</div>
|
||||
@@ -138,7 +138,7 @@ export function ShareRoadmapButton(props: ShareRoadmapButtonProps) {
|
||||
<div className="flex w-[20px] items-center justify-center">
|
||||
<img
|
||||
alt={'reddit logo'}
|
||||
src={'/images/reddit.svg'}
|
||||
src={'/img/reddit.svg'}
|
||||
className="h-5 w-5"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -63,7 +63,7 @@ export function TeamActivityItem(props: TeamActivityItemProps) {
|
||||
);
|
||||
const userAvatar = user.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${user.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const isPersonalProgressOnly =
|
||||
currentTeam?.personalProgressOnly &&
|
||||
|
||||
@@ -103,7 +103,7 @@ export function TeamDropdown() {
|
||||
? `${
|
||||
import.meta.env.PUBLIC_AVATAR_BASE_URL
|
||||
}/${selectedAvatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt=""
|
||||
className="h-4 w-4 rounded-full object-cover"
|
||||
|
||||
@@ -8,43 +8,43 @@ const demoItems = [
|
||||
title: 'Roadmap Editor',
|
||||
description:
|
||||
'<span class="font-semibold">Powerful editor</span> to create custom roadmaps and other trackable documents',
|
||||
image: '/images/team-promo/roadmap-editor.png',
|
||||
image: '/img/team-promo/roadmap-editor.png',
|
||||
},
|
||||
{
|
||||
title: 'Invite Members',
|
||||
description:
|
||||
'Invite your <span class="font-semibold">team members and assign roles</span>',
|
||||
image: '/images/team-promo/invite-members.png',
|
||||
image: '/img/team-promo/invite-members.png',
|
||||
},
|
||||
{
|
||||
title: 'Track Progress',
|
||||
description:
|
||||
'You and your team can <span class="font-semibold">track progress</span> on the roadmaps',
|
||||
image: '/images/team-promo/update-progress.png',
|
||||
image: '/img/team-promo/update-progress.png',
|
||||
},
|
||||
{
|
||||
title: 'Team Dashboard',
|
||||
description:
|
||||
'Keep an eye on the team progress through <span class="font-semibold">team dashboards</span>',
|
||||
image: '/images/team-promo/team-dashboard.png',
|
||||
image: '/img/team-promo/team-dashboard.png',
|
||||
},
|
||||
{
|
||||
title: 'Roadmaps and Documents',
|
||||
description:
|
||||
'Create as many <span class="font-semibold">roadmaps or trackable documents</span> as you want',
|
||||
image: '/images/team-promo/many-roadmaps.png',
|
||||
image: '/img/team-promo/many-roadmaps.png',
|
||||
},
|
||||
{
|
||||
title: 'Community Roadmaps',
|
||||
description:
|
||||
'Create custom roadmaps or customize <span class="font-semibold">community roadmaps</span> to fit your needs',
|
||||
image: '/images/team-promo/our-roadmaps.png',
|
||||
image: '/img/team-promo/our-roadmaps.png',
|
||||
},
|
||||
{
|
||||
title: 'Sharing Settings',
|
||||
description:
|
||||
'Share a roadmap or trackable document with <span class="font-semibold">everyone or specific people</span>',
|
||||
image: '/images/team-promo/sharing-settings.png',
|
||||
image: '/img/team-promo/sharing-settings.png',
|
||||
},
|
||||
{
|
||||
title: 'More Coming Soon!',
|
||||
|
||||
@@ -87,7 +87,7 @@ export function TeamHeroBanner() {
|
||||
<img
|
||||
alt={'team roadmaps'}
|
||||
className="hidden h-64 md:block lg:h-80"
|
||||
src="/images/team-promo/hero-img.png"
|
||||
src="/img/team-promo/hero-img.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -64,7 +64,7 @@ export function TeamPricing() {
|
||||
<div className="flex grow flex-col items-center justify-center rounded-md border border-gray-300 py-8">
|
||||
<img
|
||||
alt={'waving hand'}
|
||||
src={'/images/team-promo/contact.png'}
|
||||
src={'/img/team-promo/contact.png'}
|
||||
className="mb-3 h-40"
|
||||
/>
|
||||
<p className="mb-2 font-medium text-gray-500">
|
||||
|
||||
@@ -98,7 +98,7 @@ export function TeamMemberDetailsPage() {
|
||||
|
||||
const avatarUrl = memberProgress?.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${memberProgress?.avatar}`
|
||||
: '/images/default-avatar.png';
|
||||
: '/img/default-avatar.png';
|
||||
|
||||
const ProgressModal =
|
||||
selectedResource && !selectedResource.isCustomResource
|
||||
|
||||
@@ -57,7 +57,7 @@ export function TeamMemberItem(props: TeamMemberProps) {
|
||||
src={
|
||||
member.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${member.avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={member.name || ''}
|
||||
className="hidden h-10 w-10 rounded-full sm:block"
|
||||
|
||||
@@ -66,7 +66,7 @@ export function GroupRoadmapItem(props: GroupRoadmapItemProps) {
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${
|
||||
member.member.avatar
|
||||
}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={member.member.name || ''}
|
||||
className="h-5 w-5 shrink-0 rounded-full"
|
||||
|
||||
@@ -45,7 +45,7 @@ export function MemberProgressItem(props: MemberProgressItemProps) {
|
||||
src={
|
||||
member.avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${member.avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={member.name || ''}
|
||||
className="h-8 min-h-[32px] w-8 min-w-[32px] rounded-full"
|
||||
|
||||
@@ -115,7 +115,7 @@ export function UpdateTeamForm() {
|
||||
avatarUrl={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
teamId={teamId!}
|
||||
/>
|
||||
|
||||
@@ -166,7 +166,7 @@ export function TeamVersions(props: TeamVersionsProps) {
|
||||
? `${
|
||||
import.meta.env.PUBLIC_AVATAR_BASE_URL
|
||||
}/${selectedAvatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={`${selectedLabel} Avatar`}
|
||||
className="h-5 w-5 rounded-full object-cover"
|
||||
|
||||
@@ -50,7 +50,7 @@ export function TeamsList() {
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${
|
||||
user?.avatar
|
||||
}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={user?.name || ''}
|
||||
className="h-6 w-6 rounded-full"
|
||||
@@ -81,7 +81,7 @@ export function TeamsList() {
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${
|
||||
team.avatar
|
||||
}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={team.name || ''}
|
||||
className="h-6 w-6 rounded-full"
|
||||
|
||||
@@ -58,7 +58,7 @@ export function ThankYouPage() {
|
||||
<div className="flex flex-grow flex-col items-center justify-center px-4">
|
||||
<div className="flex max-w-2xl flex-col items-center text-center">
|
||||
<img
|
||||
src="/images/gifs/party-popper.gif"
|
||||
src="/img/gifs/party-popper.gif"
|
||||
alt="Thank you"
|
||||
className="relative left-6 mb-6 aspect-square w-24"
|
||||
/>
|
||||
|
||||
@@ -82,7 +82,7 @@ export function UpdateProfileForm() {
|
||||
avatarUrl={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
/>
|
||||
<form className="mt-4 space-y-4" onSubmit={handleSubmit}>
|
||||
|
||||
@@ -246,7 +246,7 @@ export function UpdatePublicProfileForm() {
|
||||
avatarUrl={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
/>
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export function ChatPersona(props: ChatPersonaProps) {
|
||||
<div className="relative mx-auto flex h-auto max-w-[400px] grow flex-col justify-center p-4 px-2 px-4 sm:h-full sm:p-4">
|
||||
<div className="mb-4 text-left sm:mb-8 sm:text-center">
|
||||
<img
|
||||
src="/images/gifs/wave.gif"
|
||||
src="/img/gifs/wave.gif"
|
||||
alt="Wave"
|
||||
className="mx-auto mb-3 hidden h-16 w-16 sm:mb-5 sm:block sm:h-24 sm:w-24"
|
||||
/>
|
||||
|
||||
@@ -26,7 +26,7 @@ export function UserPublicProfileHeader(props: UserPublicProfileHeaderProps) {
|
||||
src={
|
||||
avatar
|
||||
? `${import.meta.env.PUBLIC_AVATAR_BASE_URL}/${avatar}`
|
||||
: '/images/default-avatar.png'
|
||||
: '/img/default-avatar.png'
|
||||
}
|
||||
alt={name}
|
||||
className="h-32 w-32 rounded-full object-cover"
|
||||
|
||||
@@ -50,7 +50,7 @@ const {
|
||||
bodyClassName,
|
||||
briefTitle,
|
||||
description = siteConfig.description,
|
||||
ogImageUrl = 'https://roadmap.sh/images/og-img.png',
|
||||
ogImageUrl = 'https://roadmap.sh/img/og-img.png',
|
||||
keywords = siteConfig.keywords,
|
||||
noIndex = false,
|
||||
permalink = '',
|
||||
@@ -105,7 +105,7 @@ const gaPageIdentifier = Astro.url.pathname
|
||||
<meta property='og:image:height' content='630' />
|
||||
<meta
|
||||
property='og:image'
|
||||
content={ogImageUrl || 'https://roadmap.sh/images/og-img.png'}
|
||||
content={ogImageUrl || 'https://roadmap.sh/img/og-img.png'}
|
||||
/>
|
||||
<meta property='og:image:alt' content='roadmap.sh' />
|
||||
<meta property='og:site_name' content='roadmap.sh' />
|
||||
|
||||
@@ -33,7 +33,7 @@ export function generateArticleSchema(article: ArticleSchemaProps) {
|
||||
name: 'roadmap.sh',
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: 'https://roadmap.sh/images/brand-square.png',
|
||||
url: 'https://roadmap.sh/img/brand-square.png',
|
||||
},
|
||||
},
|
||||
datePublished: datePublished,
|
||||
|
||||
@@ -8,7 +8,7 @@ export function getOpenGraphImageUrl(params: RoadmapOpenGraphQuery) {
|
||||
}
|
||||
|
||||
export async function getDefaultOpenGraphImageBuffer() {
|
||||
const defaultImageUrl = `${import.meta.env.DEV ? 'http://localhost:3000' : 'https://roadmap.sh'}/images/og-img.png`;
|
||||
const defaultImageUrl = `${import.meta.env.DEV ? 'http://localhost:3000' : 'https://roadmap.sh'}/img/og-img.png`;
|
||||
return fetch(defaultImageUrl).then((response) => response.arrayBuffer());
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ const projectData = project.frontmatter as ProjectFrontmatter;
|
||||
|
||||
let jsonLdSchema: any[] = [];
|
||||
|
||||
const ogImageUrl = projectData?.seo?.ogImageUrl || '/images/og-img.png';
|
||||
const ogImageUrl = projectData?.seo?.ogImageUrl || '/img/og-img.png';
|
||||
const githubUrl = `https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data/projects/${projectId}.md`;
|
||||
|
||||
const parentRoadmapId = projectData?.roadmapIds?.[0] || '';
|
||||
|
||||
@@ -35,7 +35,7 @@ let jsonLdSchema: any[] = [];
|
||||
|
||||
const parentRoadmapId = projectData?.roadmapIds?.[0] || '';
|
||||
|
||||
const ogImageUrl = projectData?.seo?.ogImageUrl || '/images/og-img.png';
|
||||
const ogImageUrl = projectData?.seo?.ogImageUrl || '/img/og-img.png';
|
||||
const githubUrl = `https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data/projects/${projectId}.md`;
|
||||
---
|
||||
|
||||
|
||||