--- layout: default --- {% comment %} Unified CV layout that handles both RenderCV (YAML) and JSONResume (JSON) formats - If page.cv_format is set, it determines which format to render: - 'rendercv': Load and render only RenderCV data (site.data.cv.cv) - 'jsonresume': Load and render only JSONResume data (site.data.resume) - If page.cv_format is not set, the legacy behavior applies: - RenderCV data is in site.data.cv.cv - JSONResume data is in site.data.resume - RenderCV is prioritized if both exist Both formats use the same unified rendering includes for consistent output {% endcomment %}

{{ page.title }} {% if page.cv_pdf %} {% endif %}

{% if page.description %}

{{ page.description }}

{% endif %}
{% comment %} Determine which CV format to render {% endcomment %} {% assign render_rendercv = false %} {% assign render_jsonresume = false %} {% if page.cv_format == 'rendercv' %} {% assign render_rendercv = true %} {% elsif page.cv_format == 'jsonresume' %} {% assign render_jsonresume = true %} {% else %} {% comment %} Legacy behavior: RenderCV takes priority if both exist {% endcomment %} {% if site.data.cv and site.data.cv.cv %} {% assign render_rendercv = true %} {% elsif site.data.resume %} {% assign render_jsonresume = true %} {% endif %} {% endif %} {% if render_rendercv and site.data.cv and site.data.cv.cv %} {% comment %} RenderCV format {% endcomment %} {% assign cv = site.data.cv.cv %} {% if cv.name or cv.label or cv.location or cv.email or cv.phone or cv.website %}

Contact Information

{% if cv.name %} {% endif %} {% if cv.label %} {% endif %} {% if cv.email %} {% endif %} {% if cv.phone %} {% endif %} {% if cv.address %} {% endif %} {% if cv.website %} {% endif %}
Name {{ cv.name }}
Professional Title {{ cv.label }}
Email {{ cv.email }}
Phone {{ cv.phone }}
Location {% if cv.address.street %}{{ cv.address.street }}, {% endif %} {% if cv.address.city %}{{ cv.address.city }}, {% endif %} {% if cv.address.region %}{{ cv.address.region }} {% endif %} {% if cv.address.postalCode %}{{ cv.address.postalCode }}{% endif %}
Website {{ cv.website }}
{% endif %} {% if cv.summary %}

Professional Summary

{{ cv.summary | markdownify | remove: '

' | remove: '

' }}

{% endif %} {% comment %} First, combine Experience and Volunteer entries {% endcomment %} {% assign empty_array = '' | split: ',' %} {% assign exp = cv.sections.Experience | default: empty_array %} {% assign vol = cv.sections.Volunteer | default: empty_array %} {% assign combined_experience = exp | concat: vol %} {% if combined_experience.size > 0 %}

Experience

{% assign entries = combined_experience %} {% include cv/experience.liquid %}
{% endif %} {% comment %} Now render all other sections except Experience and Volunteer {% endcomment %} {% for section_pair in cv.sections %} {% assign section_title = section_pair[0] %} {% assign section_entries = section_pair[1] %} {% comment %} Skip Experience and Volunteer as we've already processed them combined {% endcomment %} {% if section_title == 'Experience' or section_title == 'Volunteer' %} {% continue %} {% endif %}

{{ section_title }}

{% if section_title == 'Education' %} {% assign entries = section_entries %} {% include cv/education.liquid %} {% elsif section_title == 'Awards' or section_title == 'Honors and Awards' %} {% assign entries = section_entries %} {% include cv/awards.liquid %} {% elsif section_title == 'Publications' %} {% assign entries = section_entries %} {% include cv/publications.liquid %} {% elsif section_title == 'Skills' %} {% assign entries = section_entries %} {% include cv/skills.liquid %} {% elsif section_title == 'Languages' %} {% assign entries = section_entries %} {% include cv/languages.liquid %} {% elsif section_title == 'Interests' or section_title == 'Academic Interests' %} {% assign entries = section_entries %} {% include cv/interests.liquid %} {% elsif section_title == 'Certificates' %} {% assign entries = section_entries %} {% include cv/certificates.liquid %} {% elsif section_title == 'Projects' or section_title == 'Open Source Projects' %} {% assign entries = section_entries %} {% include cv/projects.liquid %} {% elsif section_title == 'References' %} {% assign entries = section_entries %} {% include cv/references.liquid %} {% else %} {% for entry in section_entries %} {% if entry.bullet %}
  • {{ entry.bullet | markdownify | remove: '

    ' | remove: '

    ' }}
{% elsif entry.label %}
{{ entry.label }}: {{ entry.details }}
{% endif %} {% endfor %} {% endif %}
{% endfor %} {% elsif render_jsonresume and site.data.resume %} {% comment %} JSONResume format {% endcomment %} {% if site.data.resume.basics %}

Contact Information

{% assign basics = site.data.resume.basics %} {% if basics.name %} {% endif %} {% if basics.label %} {% endif %} {% if basics.email %} {% endif %} {% if basics.phone %} {% endif %} {% if basics.location %} {% endif %} {% if basics.url %} {% endif %}
Name {{ basics.name }}
Professional Title {{ basics.label }}
Email {{ basics.email }}
Phone {{ basics.phone }}
Location {% if basics.location.address %}{{ basics.location.address }}, {% endif %} {% if basics.location.city %}{{ basics.location.city }}, {% endif %} {% if basics.location.region %}{{ basics.location.region }} {% endif %} {% if basics.location.postalCode %}{{ basics.location.postalCode }}{% endif %}
Website {{ basics.url }}
{% endif %} {% if site.data.resume.basics.summary %}

Professional Summary

{{ site.data.resume.basics.summary | markdownify | remove: '

' | remove: '

' }}

{% endif %} {% assign empty_array = '' | split: ',' %} {% assign work = site.data.resume.work | default: empty_array %} {% assign vol = site.data.resume.volunteer | default: empty_array %} {% assign combined_experience = work | concat: vol %} {% if combined_experience.size > 0 %}

Experience

{% assign entries = combined_experience %} {% include cv/experience.liquid %}
{% endif %} {% if site.data.resume.education.size > 0 %}

Education

{% assign entries = site.data.resume.education %} {% include cv/education.liquid %}
{% endif %} {% if site.data.resume.awards.size > 0 %}

Awards

{% assign entries = site.data.resume.awards %} {% include cv/awards.liquid %}
{% endif %} {% if site.data.resume.publications.size > 0 %}

Publications

{% assign entries = site.data.resume.publications %} {% include cv/publications.liquid %}
{% endif %} {% if site.data.resume.skills.size > 0 %}

Skills

{% assign entries = site.data.resume.skills %} {% include cv/skills.liquid %}
{% endif %} {% if site.data.resume.languages.size > 0 %}

Languages

{% assign entries = site.data.resume.languages %} {% include cv/languages.liquid %}
{% endif %} {% if site.data.resume.interests.size > 0 %}

Interests

{% assign entries = site.data.resume.interests %} {% include cv/interests.liquid %}
{% endif %} {% if site.data.resume.certificates.size > 0 %}

Certificates

{% assign entries = site.data.resume.certificates %} {% include cv/certificates.liquid %}
{% endif %} {% if site.data.resume.projects.size > 0 %}

Projects

{% assign entries = site.data.resume.projects %} {% include cv/projects.liquid %}
{% endif %} {% if site.data.resume.references.size > 0 %}

References

{% assign entries = site.data.resume.references %} {% include cv/references.liquid %}
{% endif %} {% else %}

No CV data found. Please configure either RenderCV (cv.yml) or JSONResume (resume.json) data.

{% endif %}