--- layout: layouts/base.njk withSidebar: false title: CV permalink: /cv/ pagefindIgnore: true --- {# CV page — uses configurable layout when cvPageConfig exists, falls back to hardcoded layout #} {% set hasCvData = (cv.experience and cv.experience.length) or (cv.projects and cv.projects.length) or (cv.skills and ((cv.skills or {}) | dictsort | length)) %} {% if hasCvData %} {# Configurable layout — use cvPageConfig if available #} {% if cvPageConfig and cvPageConfig.sections %} {% include "components/cv-builder.njk" %} {# Fallback — hardcoded layout for backward compatibility #} {% else %} {# CV identity — check cvPageConfig.identity first, fall back to site.author #} {% set cvId = cvPageConfig.identity if (cvPageConfig and cvPageConfig.identity) else {} %} {% set authorName = cvId.name or site.author.name %} {% set authorAvatar = cvId.avatar or site.author.avatar %} {% set authorTitle = cvId.title or site.author.title %} {% set authorBio = cvId.bio or site.author.bio %} {% set socialLinks = cvId.social if (cvId.social and cvId.social.length) else site.social %} {% set cvLocality = cvId.locality or site.author.locality %} {% set cvCountry = cvId.country or site.author.country %} {% set cvOrg = cvId.org or site.author.org %} {% set cvUrl = cvId.url or '' %} {% set cvEmail = cvId.email or site.author.email %} {% set cvKeyUrl = cvId.keyUrl or site.author.keyUrl %} {# Hero / intro #}
{{ authorName }}

{{ authorName }}

{% if authorTitle %}

{{ authorTitle }}

{% endif %} {% if authorBio %}

{{ authorBio }}

{% endif %} {% from "components/social-icon.njk" import socialIcon %} {% if socialLinks %}
{% for link in socialLinks %} {{ socialIcon(link.icon, "w-5 h-5") }} {{ link.name }} {% endfor %}
{% endif %} {# Contact details #} {% if cvLocality or cvCountry or cvOrg or cvUrl or cvEmail or cvKeyUrl %}
{% if cvLocality or cvCountry %} {% if cvLocality %}{{ cvLocality }}{% endif %}{% if cvLocality and cvCountry %}, {% endif %}{% if cvCountry %}{{ cvCountry }}{% endif %} {% endif %} {% if cvOrg %} {{ cvOrg }} {% endif %} {% if cvUrl %} {{ cvUrl | replace("https://", "") | replace("http://", "") }} {% endif %} {% if cvEmail %} {{ cvEmail }} {% endif %} {% if cvKeyUrl %} PGP Key {% endif %}
{% endif %}
{# Experience — work-only variant #} {% set section = { type: "cv-experience-work", config: {} } %} {% include "components/sections/cv-experience-work.njk" ignore missing %} {# Skills — work-only variant #} {% set section = { type: "cv-skills-work", config: {} } %} {% include "components/sections/cv-skills-work.njk" ignore missing %} {# Work Projects (only work-related projects on the CV page) #} {% set section = { type: "cv-projects-work", config: {} } %} {% include "components/sections/cv-projects-work.njk" ignore missing %} {# Education — work-only variant #} {% set section = { type: "cv-education-work", config: {} } %} {% include "components/sections/cv-education-work.njk" ignore missing %} {# Languages — standalone section #} {% set section = { type: "cv-languages", config: {} } %} {% include "components/sections/cv-languages.njk" ignore missing %} {# Interests — work-only variant #} {% set section = { type: "cv-interests-work", config: {} } %} {% include "components/sections/cv-interests-work.njk" ignore missing %} {# Last Updated #} {% if cv.lastUpdated %}

Last updated: {{ cv.lastUpdated | date("PPP") }}

{% endif %} {% endif %} {% else %}

CV

No CV data available yet. Add your experience, projects, and skills via the admin dashboard.

{% endif %}