']
# Header
safe_filename = html.escape(filename)
html_parts.append(f"""
""")
# Stats Bar
html_parts.append(f"""
""")
# Summary
if summary:
safe_summary = html.escape(summary)
html_parts.append(f"""
')
# Technical Skills Card
if tech_skills:
html_parts.append('
')
html_parts.append('
💻 Technical Skills
')
html_parts.append('
')
for skill in tech_skills:
safe_skill = html.escape(skill)
html_parts.append(f'{safe_skill}')
html_parts.append('
')
# Soft Skills Card
if soft_skills:
html_parts.append('
')
html_parts.append('
🤝 Soft Skills
')
html_parts.append('
')
for skill in soft_skills:
safe_skill = html.escape(skill)
html_parts.append(f'{safe_skill}')
html_parts.append('
')
# Domain Expertise Card
if domain_expertise:
html_parts.append('
')
html_parts.append('
🎯 Domain Expertise
')
html_parts.append('
')
for domain in domain_expertise:
safe_domain = html.escape(domain)
html_parts.append(f'{safe_domain}')
html_parts.append('
')
# Experience Card
if recent_roles or experience_years != "unknown":
html_parts.append('
')
html_parts.append('
💼 Professional Experience
')
if experience_years != "unknown":
html_parts.append(f'
')
html_parts.append(f'
Years
')
html_parts.append(f'
{html.escape(str(experience_years))}
')
html_parts.append('
')
if recent_roles:
html_parts.append('
')
for role in recent_roles[:5]: # Limit to 5 roles
safe_role = html.escape(role)
html_parts.append(f'- {safe_role}
')
html_parts.append('
')
html_parts.append('
')
# Education Card
if education:
html_parts.append('
')
html_parts.append('
🎓 Education
')
html_parts.append('
')
for edu in education:
safe_edu = html.escape(edu)
html_parts.append(f'- {safe_edu}
')
html_parts.append('
')
# Certifications Card
if certifications:
html_parts.append('
')
html_parts.append('
📜 Certifications
')
html_parts.append('
')
for cert in certifications:
safe_cert = html.escape(cert)
html_parts.append(f'- {safe_cert}
')
html_parts.append('
')
html_parts.append('