diff --git a/_includes/components/homepage-builder.njk b/_includes/components/homepage-builder.njk index cd2e30b..d0c7807 100644 --- a/_includes/components/homepage-builder.njk +++ b/_includes/components/homepage-builder.njk @@ -21,6 +21,10 @@ {% include "components/sections/cv-projects.njk" ignore missing %} {% elif section.type == "cv-skills" %} {% include "components/sections/cv-skills.njk" ignore missing %} + {% elif section.type == "cv-education" %} + {% include "components/sections/cv-education.njk" ignore missing %} + {% elif section.type == "cv-interests" %} + {% include "components/sections/cv-interests.njk" ignore missing %} {% elif section.type == "blogroll" %} {% include "components/sections/blogroll.njk" ignore missing %} {% elif section.type == "podroll" %} diff --git a/_includes/components/sections/cv-education.njk b/_includes/components/sections/cv-education.njk new file mode 100644 index 0000000..2dd8156 --- /dev/null +++ b/_includes/components/sections/cv-education.njk @@ -0,0 +1,42 @@ +{# + CV Education & Languages Section + Data fetched from /cv/data.json via homepage plugin +#} + +{% set hasEducation = cv and cv.education and cv.education.length %} +{% set hasLanguages = cv and cv.languages and cv.languages.length %} + +{% if hasEducation or hasLanguages %} +
+

+ {{ section.config.title or "Education & Languages" }} +

+ + {% if hasEducation %} +
+ {% for item in cv.education %} +
+

{{ item.degree }}

+

+ {{ item.institution }}{% if item.location %} · {{ item.location }}{% endif %}{% if item.year %} · {{ item.year }}{% endif %} +

+ {% if item.description %} +

{{ item.description }}

+ {% endif %} +
+ {% endfor %} +
+ {% endif %} + + {% if hasLanguages %} +
+ {% for lang in cv.languages %} +
+ {{ lang.name }} + {{ lang.level }} +
+ {% endfor %} +
+ {% endif %} +
+{% endif %} diff --git a/_includes/components/sections/cv-experience.njk b/_includes/components/sections/cv-experience.njk new file mode 100644 index 0000000..f7e439c --- /dev/null +++ b/_includes/components/sections/cv-experience.njk @@ -0,0 +1,47 @@ +{# + CV Experience Section - work experience timeline + Data fetched from /cv/data.json via homepage plugin +#} + +{% set sectionConfig = section.config or {} %} +{% set maxItems = sectionConfig.maxItems or 10 %} +{% set showHighlights = sectionConfig.showHighlights if sectionConfig.showHighlights is defined else true %} + +{% if cv and cv.experience and cv.experience.length %} +
+

+ {{ sectionConfig.title or "Experience" }} +

+ +
+ {% for item in cv.experience | head(maxItems) %} +
+
+

{{ item.title }}

+

+ {{ item.company }}{% if item.location %} · {{ item.location }}{% endif %} + {% if item.type %} · {{ item.type }}{% endif %} +

+ {% if item.startDate %} +

+ {{ item.startDate }}{% if item.endDate %} – {{ item.endDate }}{% else %} – Present{% endif %} +

+ {% endif %} + {% if item.description %} +

{{ item.description }}

+ {% endif %} + {% if showHighlights and item.highlights and item.highlights.length %} +
    + {% for h in item.highlights %} +
  • + + {{ h }} +
  • + {% endfor %} +
+ {% endif %} +
+ {% endfor %} +
+
+{% endif %} diff --git a/_includes/components/sections/cv-interests.njk b/_includes/components/sections/cv-interests.njk new file mode 100644 index 0000000..d6964dc --- /dev/null +++ b/_includes/components/sections/cv-interests.njk @@ -0,0 +1,20 @@ +{# + CV Interests Section - interest tags + Data fetched from /cv/data.json via homepage plugin +#} + +{% if cv and cv.interests and cv.interests.length %} +
+

+ {{ section.config.title or "Interests" }} +

+ +
+ {% for interest in cv.interests %} + + {{ interest }} + + {% endfor %} +
+
+{% endif %} diff --git a/_includes/components/sections/cv-projects.njk b/_includes/components/sections/cv-projects.njk new file mode 100644 index 0000000..05c852f --- /dev/null +++ b/_includes/components/sections/cv-projects.njk @@ -0,0 +1,55 @@ +{# + CV Projects Section - project cards + Data fetched from /cv/data.json via homepage plugin +#} + +{% set sectionConfig = section.config or {} %} +{% set maxItems = sectionConfig.maxItems or 10 %} +{% set showTechnologies = sectionConfig.showTechnologies if sectionConfig.showTechnologies is defined else true %} + +{% if cv and cv.projects and cv.projects.length %} +
+

+ {{ sectionConfig.title or "Projects" }} +

+ +
+ {% for item in cv.projects | head(maxItems) %} +
+
+

+ {% if item.url %} + {{ item.name }} + {% else %} + {{ item.name }} + {% endif %} +

+ {% if item.status %} + + {{ item.status }} + + {% endif %} +
+ + {% if item.description %} +

{{ item.description }}

+ {% endif %} + + {% if showTechnologies and item.technologies and item.technologies.length %} +
+ {% for tech in item.technologies %} + + {{ tech }} + + {% endfor %} +
+ {% endif %} +
+ {% endfor %} +
+
+{% endif %} diff --git a/_includes/components/sections/cv-skills.njk b/_includes/components/sections/cv-skills.njk new file mode 100644 index 0000000..2acea94 --- /dev/null +++ b/_includes/components/sections/cv-skills.njk @@ -0,0 +1,29 @@ +{# + CV Skills Section - skills grouped by category + Data fetched from /cv/data.json via homepage plugin +#} + +{% if cv and cv.skills and (cv.skills | dictsort | length) %} +
+

+ {{ section.config.title or "Skills" }} +

+ +
+ {% for category, items in cv.skills | dictsort %} +
+

+ {{ category }} +

+
+ {% for skill in items %} + + {{ skill }} + + {% endfor %} +
+
+ {% endfor %} +
+
+{% endif %}