mirror of
https://github.com/Lapikud/lapikud.github.io.git
synced 2026-08-08 18:29:14 +00:00
feat(student): render preserved links and mentor guidance
Render the structured external project links with safe new-tab attributes and restore the mentor onboarding callout in the Vue student page. Internal mentor navigation continues through the custom localized router.
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
import { computed, onMounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
import { loadYaml } from '../lib/yaml.js';
|
import { loadYaml } from '../lib/yaml.js';
|
||||||
import { usePageText } from "../lib/index.js";
|
import { usePageText } from "../lib/index.js";
|
||||||
|
import { navigate } from "../lib/router/router.js";
|
||||||
|
|
||||||
const members = ref({ junior: [], senior: [] });
|
const members = ref({ junior: [], senior: [] });
|
||||||
const text = usePageText("Student");
|
const text = usePageText("Student");
|
||||||
@@ -93,6 +94,18 @@
|
|||||||
<template v-for="paragraph in team.about || []">
|
<template v-for="paragraph in team.about || []">
|
||||||
<p class="mb-5 text-[0.95rem] leading-8 text-black/80 last:mb-0">{{ paragraph }}</p>
|
<p class="mb-5 text-[0.95rem] leading-8 text-black/80 last:mb-0">{{ paragraph }}</p>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-if="team.links?.length" class="mt-6 flex flex-wrap gap-4">
|
||||||
|
<a
|
||||||
|
v-for="link in team.links"
|
||||||
|
:key="link.href"
|
||||||
|
:href="link.href"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
class="text-sm font-semibold text-orange-500 underline-offset-4 hover:underline"
|
||||||
|
>
|
||||||
|
{{ link.label }} ↗
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div class="mt-6 flex flex-wrap gap-2">
|
<div class="mt-6 flex flex-wrap gap-2">
|
||||||
<template v-for="tag in team.tags || []">
|
<template v-for="tag in team.tags || []">
|
||||||
<span class="px-3 py-1.5 text-xs font-medium text-orange-500">{{ tag }}</span>
|
<span class="px-3 py-1.5 text-xs font-medium text-orange-500">{{ tag }}</span>
|
||||||
@@ -124,6 +137,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</Section>
|
</Section>
|
||||||
|
|
||||||
|
<Section class="bg-gray-900 text-white" padding="large">
|
||||||
|
<div class="grid items-center gap-8 lg:grid-cols-[1fr_auto]">
|
||||||
|
<div>
|
||||||
|
<h2 class="mb-4 text-[clamp(2rem,4vw,3rem)] leading-tight font-medium">{{ text.mentor?.title || '' }}</h2>
|
||||||
|
<p class="max-w-3xl text-base leading-8 text-white/70">{{ text.mentor?.description || '' }}</p>
|
||||||
|
</div>
|
||||||
|
<Button
|
||||||
|
:onClick="() => navigate('/mentorid')"
|
||||||
|
class="border-orange-500 bg-orange-500 px-8 py-3 text-sm font-semibold text-black hover:opacity-90"
|
||||||
|
>
|
||||||
|
{{ text.mentor?.cta || '' }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</Section>
|
||||||
|
|
||||||
<Section id="liitu" class="overflow-hidden bg-orange-500" padding="large">
|
<Section id="liitu" class="overflow-hidden bg-orange-500" padding="large">
|
||||||
<div class="relative grid max-w-5xl items-center gap-10 lg:grid-cols-[1fr_auto]">
|
<div class="relative grid max-w-5xl items-center gap-10 lg:grid-cols-[1fr_auto]">
|
||||||
<div class="pointer-events-none select-none absolute -right-6 -top-10 text-[clamp(7rem,16vw,12rem)] leading-none italic text-black/10">
|
<div class="pointer-events-none select-none absolute -right-6 -top-10 text-[clamp(7rem,16vw,12rem)] leading-none italic text-black/10">
|
||||||
|
|||||||
Reference in New Issue
Block a user