mirror of
https://github.com/mmahdium/portfolio.git
synced 2026-08-17 05:24:30 +03:30
- Update section spacing from mb-8 to mb-12 for improved visual hierarchy - Refine heading padding and margins for consistent section styling - Adjust work experience highlights spacing and add leading-relaxed for readability - Implement markdown bold text parsing in job highlights using new composable - Add color-coded icons in resume header (red for location, green for phone, amber for email, blue for website) - Reorganize contact information into two lines for better layout organization - Standardize icon sizing with explicit w-4 h-4 dimensions across header - Create useMarkdownText composable for markdown formatting utilities - Update resume data and PDF export endpoint to support enhanced styling - Improve print styling consistency across all resume components
38 lines
1.2 KiB
Vue
38 lines
1.2 KiB
Vue
<script setup lang="ts">
|
|
import type { Education } from '~/types/resume'
|
|
|
|
interface Props {
|
|
education: Education[]
|
|
}
|
|
|
|
defineProps<Props>()
|
|
const { formatDate } = useResumeData()
|
|
|
|
function formatDateRange(start: string, end?: string): string {
|
|
const startFormatted = formatDate(start)
|
|
const endFormatted = end ? formatDate(end) : 'Present'
|
|
return `${startFormatted} - ${endFormatted}`
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<section class="mb-12 print:mb-12">
|
|
<h2
|
|
class="text-base font-bold text-blue-700 uppercase border-b-2 border-blue-600 pb-2 mb-6 print:mb-6 tracking-wide">
|
|
Education
|
|
</h2>
|
|
|
|
<div v-for="edu in education" :key="edu.institution + edu.startDate" class="mb-4 last:mb-0 print:mb-4">
|
|
<div class="flex justify-between items-start">
|
|
<div>
|
|
<h3 class="text-sm font-bold text-gray-900">{{ edu.studyType }} in {{ edu.area }}</h3>
|
|
<p class="text-sm font-medium text-gray-600">{{ edu.institution }}</p>
|
|
</div>
|
|
<span class="text-sm text-gray-500 whitespace-nowrap font-medium">
|
|
{{ formatDateRange(edu.startDate, edu.endDate) }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</template>
|