+ <%_ if (profile.phoneNumbers && profile.phoneNumbers.length > 0) { -%>
+ <%_ for (const phone of profile?.phoneNumbers) { -%>
+ <%_ if (phone.number.length > 0) { -%>
+
+ <%_ } -%>
+ <%_ } -%>
+ <%_ } %>
+
+ <%_ if (profile.emails && profile.emails.length > 0) { -%>
+ <%_ for (const email of profile?.emails) { -%>
+ <%_ if (email.length > 0) { -%>
+
+ <%_ } -%>
+ <%_ } -%>
+ <%_ } %>
+
+ <%_ if (profile.city || profile.country) { -%>
+
+ <%_ } %>
+
+ <%_ if (profile.relevantLinks && profile.relevantLinks.length > 0) { -%>
+ <%_ for (const link of profile?.relevantLinks) { -%>
+ <%_ if (link.type === 'linkedin') { -%>
+
+ <%_ } %>
+ <%_ if (link.type === 'github') { -%>
+
+ <%_ } %>
+ <%_ if (link.type === 'twitter') { -%>
+
+ <%_ } %>
+ <%_ if (link.type === 'otros') { -%>
+
+ <%_ } %>
+ <%_ } %>
+ <%_ } %>
+
+ <%_ } -%>
\ No newline at end of file
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/contact-section.part.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/contact-section.part.ts
new file mode 100644
index 00000000..8bc000f5
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/contact-section.part.ts
@@ -0,0 +1,24 @@
+import ejs from 'ejs';
+import { ProfileSectionVm, mapFromMacCvToProfileSectionVm } from '@lemoncode/manfred-common/profile-section';
+import { ISO_SPANISH_LANGUAGE } from '@/engine/engine.const';
+import { ManfredAwesomicCV, Settings, Language } from '@/model';
+import { getLabels } from './labels';
+import contactSection from './contact-section.ejs?raw';
+
+export const generateContactSection = (cv: ManfredAwesomicCV, settings: Settings): string => {
+ const profileSectionVm = mapFromMacCvToProfileSectionVm(cv);
+
+ return generateContactSectionInner(profileSectionVm, settings.language);
+};
+
+const generateContactSectionInner = (
+ profileSectionVm: ProfileSectionVm,
+ language: Language = ISO_SPANISH_LANGUAGE
+): string => {
+ const rootObject = {
+ profile: profileSectionVm,
+ labels: getLabels(language),
+ };
+
+ return ejs.render(contactSection, rootObject);
+};
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/index.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/index.ts
new file mode 100644
index 00000000..ef8df9bf
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/index.ts
@@ -0,0 +1 @@
+export * from './contact-section.part';
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/index.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/index.ts
new file mode 100644
index 00000000..41c9f130
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/index.ts
@@ -0,0 +1,15 @@
+import { Language } from '@/model';
+import { RelevantsLinksLabels } from './relevants-links-label.model';
+import { spanishRelevantsLinksLabels } from './relevants-links-spanish-labels.const';
+import { englishRelevantsLinksLabels } from './relevants-links-english-labels.const';
+
+export const getLabels = (language: Language): RelevantsLinksLabels => {
+ switch (language) {
+ case 'es':
+ return spanishRelevantsLinksLabels;
+ case 'en':
+ return englishRelevantsLinksLabels;
+ default:
+ throw new Error(`Language not supported: ${language}`);
+ }
+};
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-english-labels.const.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-english-labels.const.ts
new file mode 100644
index 00000000..fcdbee26
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-english-labels.const.ts
@@ -0,0 +1,5 @@
+import { RelevantsLinksLabels } from './relevants-links-label.model';
+
+export const englishRelevantsLinksLabels: RelevantsLinksLabels = {
+ RELEVANTS_LINKS_HEADING: 'Contact',
+};
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-label.model.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-label.model.ts
new file mode 100644
index 00000000..7569f913
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-label.model.ts
@@ -0,0 +1,3 @@
+export interface RelevantsLinksLabels {
+ RELEVANTS_LINKS_HEADING: string;
+}
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-spanish-labels.const.ts b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-spanish-labels.const.ts
new file mode 100644
index 00000000..d8293478
--- /dev/null
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/contact-section/labels/relevants-links-spanish-labels.const.ts
@@ -0,0 +1,5 @@
+import { RelevantsLinksLabels } from './relevants-links-label.model';
+
+export const spanishRelevantsLinksLabels: RelevantsLinksLabels = {
+ RELEVANTS_LINKS_HEADING: 'Contacto',
+};
diff --git a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/html-document-start/html-document-start.ejs b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/html-document-start/html-document-start.ejs
index 228a4289..3e1e4218 100644
--- a/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/html-document-start/html-document-start.ejs
+++ b/packages/manfred2html/src/engine/cv-jedi-minimalism/html-parts/html-document-start/html-document-start.ejs
@@ -9,6 +9,15 @@
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
rel="stylesheet"
/>
+