Added phone
All checks were successful
Docker Deploy / build-and-push (push) Successful in 4m5s

This commit is contained in:
2025-10-16 11:15:16 -06:00
parent 50a4ff1332
commit 0fb9fd2009
2 changed files with 8 additions and 1 deletions

View File

@@ -29,6 +29,8 @@ function getMdiIcon(iconName: string): string {
const iconMap: { [key: string]: string } = {
"mdi:email":
'<svg style="width: 12px; height: 12px; display: inline-block; vertical-align: middle; fill: currentColor;" viewBox="0 0 24 24"><path d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C2.89,4 20,4.89 20,4Z"/></svg>',
"mdi:phone":
'<svg style="width: 12px; height: 12px; display: inline-block; vertical-align: middle; fill: currentColor;" viewBox="0 0 24 24"><path d="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"/></svg>',
"mdi:download":
'<svg style="width: 12px; height: 12px; display: inline-block; vertical-align: middle; fill: currentColor;" viewBox="0 0 24 24"><path d="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"/></svg>',
"mdi:link":
@@ -41,6 +43,7 @@ interface ResumeData {
basics: {
name: string;
email: string;
phone?: string;
website?: string;
profiles: {
network: string;
@@ -201,12 +204,14 @@ const createHead = (name: string) => `
const createHeader = (
basics: any,
emailIcon: string,
phoneIcon: string,
profileIcons: { [key: string]: string },
) => `
<header class="text-center mb-3 pb-2 border-b-2 border-gray-300">
<h1 class="text-3xl font-bold text-gray-900 mb-1">${basics.name}</h1>
<div class="flex justify-center items-center flex-wrap gap-4 text-xs text-gray-600">
${basics.email ? `<div class="flex items-center gap-1">${emailIcon} ${basics.email}</div>` : ""}
${basics.phone ? `<div class="flex items-center gap-1">${phoneIcon} ${basics.phone}</div>` : ""}
${
basics.profiles
?.map((profile: any) => {
@@ -319,6 +324,7 @@ const generateResumeHTML = async (data: ResumeData): Promise<string> => {
// Pre-fetch icons
const profileIcons = await fetchProfileIcons(data.basics.profiles);
const emailIcon = getMdiIcon("mdi:email");
const phoneIcon = getMdiIcon("mdi:phone");
// Generate section content
const sections = {
@@ -345,7 +351,7 @@ const generateResumeHTML = async (data: ResumeData): Promise<string> => {
${createHead(data.basics.name)}
<body class="bg-white text-gray-900 text-xs leading-tight p-3">
<div class="resume-container mx-auto">
${createHeader(data.basics, emailIcon, profileIcons)}
${createHeader(data.basics, emailIcon, phoneIcon, profileIcons)}
${createSummarySection(data.summary, resumeConfig)}
<div class="grid grid-cols-2 gap-4">
<div class="space-y-4">

View File

@@ -7,6 +7,7 @@ export const GET: APIRoute = async () => {
[basics]
name = "Your Full Name"
email = "your.email@example.com"
phone = "+1 (555) 123-4567" # Optional
website = "https://yourwebsite.com"
# Add your social media profiles