computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
67 lines
2.0 KiB
--- |
|
import { DashboardPage } from '../components/Dashboard/DashboardPage'; |
|
import BaseLayout from '../layouts/BaseLayout.astro'; |
|
import { getAllBestPractices } from '../lib/best-practice'; |
|
import { getRoadmapsByTag } from '../lib/roadmap'; |
|
|
|
const roleRoadmaps = await getRoadmapsByTag('role-roadmap'); |
|
const skillRoadmaps = await getRoadmapsByTag('skill-roadmap'); |
|
const bestPractices = await getAllBestPractices(); |
|
|
|
const enrichedRoleRoadmaps = roleRoadmaps |
|
.filter((roadmapItem) => !roadmapItem.frontmatter.isHidden) |
|
.map((roadmap) => { |
|
const { frontmatter } = roadmap; |
|
|
|
return { |
|
id: roadmap.id, |
|
url: `/${roadmap.id}`, |
|
title: frontmatter.briefTitle, |
|
description: frontmatter.briefDescription, |
|
relatedRoadmapIds: frontmatter.relatedRoadmaps, |
|
renderer: frontmatter.renderer, |
|
metadata: { |
|
tags: frontmatter.tags, |
|
}, |
|
}; |
|
}); |
|
const enrichedSkillRoadmaps = skillRoadmaps |
|
.filter((roadmapItem) => !roadmapItem.frontmatter.isHidden) |
|
.map((roadmap) => { |
|
const { frontmatter } = roadmap; |
|
|
|
return { |
|
id: roadmap.id, |
|
url: `/${roadmap.id}`, |
|
title: |
|
frontmatter.briefTitle === 'Go' ? 'Go Roadmap' : frontmatter.briefTitle, |
|
description: frontmatter.briefDescription, |
|
relatedRoadmapIds: frontmatter.relatedRoadmaps, |
|
renderer: frontmatter.renderer, |
|
metadata: { |
|
tags: frontmatter.tags, |
|
}, |
|
}; |
|
}); |
|
|
|
const enrichedBestPractices = bestPractices.map((bestPractice) => { |
|
const { frontmatter } = bestPractice; |
|
|
|
return { |
|
id: bestPractice.id, |
|
url: `/best-practices/${bestPractice.id}`, |
|
title: frontmatter.briefTitle, |
|
description: frontmatter.briefDescription, |
|
}; |
|
}); |
|
--- |
|
|
|
<BaseLayout title='Dashboard' noIndex={true}> |
|
<DashboardPage |
|
builtInRoleRoadmaps={enrichedRoleRoadmaps} |
|
builtInSkillRoadmaps={enrichedSkillRoadmaps} |
|
builtInBestPractices={enrichedBestPractices} |
|
client:load |
|
/> |
|
<div slot='open-source-banner'></div> |
|
</BaseLayout>
|
|
|