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.
32 lines
946 B
32 lines
946 B
--- |
|
import GuideContent from '../../components/Guide/GuideContent.astro'; |
|
import GuideHeader from '../../components/GuideHeader.astro'; |
|
import BaseLayout from '../../layouts/BaseLayout.astro'; |
|
import { getGuideById } from '../../lib/guide'; |
|
import { getOpenGraphImageUrl } from '../../lib/open-graph'; |
|
import { replaceVariables } from '../../lib/markdown'; |
|
|
|
const guideId = 'backend-languages'; |
|
const guide = await getGuideById(guideId).catch(() => null); |
|
if (!guide) { |
|
return Astro.redirect('/404'); |
|
} |
|
|
|
const { frontmatter: guideData } = guide!; |
|
|
|
const ogImageUrl = getOpenGraphImageUrl({ |
|
group: 'guide', |
|
resourceId: guideId, |
|
}); |
|
--- |
|
|
|
<BaseLayout |
|
title={replaceVariables(guideData.seo.title)} |
|
description={replaceVariables(guideData.seo.description)} |
|
permalink={`/backend/languages`} |
|
canonicalUrl={guideData.canonicalUrl} |
|
ogImageUrl={ogImageUrl} |
|
> |
|
<GuideHeader guide={guide!} /> |
|
<GuideContent guide={guide!} /> |
|
</BaseLayout>
|
|
|