Skip to content

Commit

Permalink
Merge pull request #295 from MTeresaMB/feature/#261-CV-X-Wing-Squadro…
Browse files Browse the repository at this point in the history
…n-Create-languages-section

Closed #261
  • Loading branch information
juanpms2 authored Dec 15, 2023
2 parents 071a19a + 4789ec8 commit a42c055
Show file tree
Hide file tree
Showing 9 changed files with 121 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export * from './header-section';
export * from './main-element-start';
export * from './main-element-end';
export * from './about-me-section';
export * from './language-section';
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './language-section.part';
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Language } from '@/model';
import { LanguageLabels } from './language-label.model';
import { spanishLanguageLabels } from './language-spanish-labels.const';
import { englishLanguageLabels } from './language-english-labels.const';

export const getLabels = (language: Language): LanguageLabels => {
switch (language) {
case 'es':
return spanishLanguageLabels;
case 'en':
return englishLanguageLabels;
default:
throw new Error(`Language not supported: ${language}`);
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { LanguageLabels } from './language-label.model';

export const englishLanguageLabels: LanguageLabels = {
LANGUAGE_HEADING: 'Languages',
LEVEL_ONE: 'Native/Bilingual',
LEVEL_TWO: 'Fluent',
LEVEL_THREE: 'Intermediate',
LEVEL_FOUR: 'Basic',
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export interface LanguageLabels {
LANGUAGE_HEADING: string;
LEVEL_ONE: string;
LEVEL_TWO: string;
LEVEL_THREE: string;
LEVEL_FOUR: string;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { LanguageLabels } from './language-label.model';

export const spanishLanguageLabels: LanguageLabels = {
LANGUAGE_HEADING: 'Idiomas',
LEVEL_ONE: 'Nativo/Bilingue',
LEVEL_TWO: 'Fluido',
LEVEL_THREE: 'Intermedio',
LEVEL_FOUR: 'Basico',
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<%_ if(languageCollection && languageCollection.length !== 0) { -%>
<section class="main__section">
<div class="main__section__header">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="6" viewBox="0 0 32 6" fill="none">
<path d="M5.51343e-07 3L32 3" stroke="#3BA0B7" stroke-width="6" />
</svg>
<h2><%= labels.LANGUAGE_HEADING %></h2>
</div>
<ul class="ul__languages">
<%_ for(const language of languageCollection) { -%>
<li class="li__languages"><%= language.name %>
<div class="main__lang__level">
<%_ if(language.level === 'Elementary proficiency' || language.level === 'Limited working proficiency') { -%>
<svg xmlns="http://www.w3.org/2000/svg" width="137" height="29" viewBox="0 0 137 29" fill="none">
<path d="M0 28.9997L28.8421 22.8945V28.9997L0 28.9997Z" fill="#78D549" />
<path d="M36.0528 21.3681L64.8949 15.2568V28.9998H36.0528V21.3681Z" fill="#EBE8DF" />
<path d="M72.1055 13.7338L100.948 7.62939V28.9998H72.1055V13.7338Z" fill="#EBE8DF" />
<path d="M108.158 6.10749L137 0V29H108.158V6.10749Z" fill="#EBE8DF" />
</svg>
<p><%= labels.LEVEL_FOUR %></p>
<%_ } -%>
<%_ if(language.level === 'Professional working proficiency') { -%>
<svg xmlns="http://www.w3.org/2000/svg" width="137" height="29" viewBox="0 0 137 29" fill="none">
<path d="M0 28.9997L28.8421 22.8945V28.9997L0 28.9997Z" fill="#78D549" />
<path d="M36.0528 21.3681L64.8949 15.2568V28.9998H36.0528V21.3681Z" fill="#78D549" />
<path d="M72.1055 13.7338L100.948 7.62939V28.9998H72.1055V13.7338Z" fill="#78D549" />
<path d="M108.158 6.10749L137 0V29H108.158V6.10749Z" fill="#EBE8DF" />
</svg>
<p><%= labels.LEVEL_THREE %></p>
<%_ } -%>
<%_ if(language.level === 'Full professional proficiency') { -%>
<svg xmlns="http://www.w3.org/2000/svg" width="137" height="29" viewBox="0 0 137 29" fill="none">
<path d="M0 28.9997L28.8421 22.8945V28.9997L0 28.9997Z" fill="#78D549" />
<path d="M36.0528 21.3681L64.8949 15.2568V28.9998H36.0528V21.3681Z" fill="#78D549" />
<path d="M72.1055 13.7338L100.948 7.62939V28.9998H72.1055V13.7338Z" fill="#EBE8DF" />
<path d="M108.158 6.10749L137 0V29H108.158V6.10749Z" fill="#EBE8DF" />
</svg>
<p><%= labels.LEVEL_TWO %></p>
<%_ } -%>
<%_ if(language.level === 'Native or bilingual proficiency') { -%>
<svg xmlns="http://www.w3.org/2000/svg" width="137" height="29" viewBox="0 0 137 29" fill="none">
<path d="M0 28.9997L28.8421 22.8945V28.9997L0 28.9997Z" fill="#78D549" />
<path d="M36.0528 21.3681L64.8949 15.2568V28.9998H36.0528V21.3681Z" fill="#78D549" />
<path d="M72.1055 13.7338L100.948 7.62939V28.9998H72.1055V13.7338Z" fill="#78D549" />
<path d="M108.158 6.10749L137 0V29H108.158V6.10749Z" fill="#78D549" />
</svg>
<p><%= labels.LEVEL_ONE %></p>
<%_ } -%>
</div>
</li>
<%_ } -%>
</ul>
</section>
<%_ } -%>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { ManfredAwesomicCV, Settings, Language } from '@/model';
import { LanguageVm, mapFromCvToLanguageVm } from '@lemoncode/manfred-common/language-section';
import { ISO_SPANISH_LANGUAGE } from '@/engine/engine.const';
import { getLabels } from './labels';
import ejs from 'ejs';
import languageTemplate from './language-section.ejs?raw';

export const generateLanguageSection = (cv: ManfredAwesomicCV, settings: Settings): string => {
const languageSectionVm = mapFromCvToLanguageVm(cv);
return generateLanguageSectionInner(languageSectionVm, settings.language);
};

const generateLanguageSectionInner = (
languageSectionVm: LanguageVm[],
language: Language = ISO_SPANISH_LANGUAGE
): string => {
const rootObject = {
languageCollection: languageSectionVm,
labels: getLabels(language),
};
return ejs.render(languageTemplate, rootObject);
};
3 changes: 3 additions & 0 deletions packages/manfred2html/src/engine/cv-x-wing-squadron/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
generateMainElementStart,
generateAboutMeSection,
generateMainElementEnd,
generateLanguageSection,
} from './html-parts';

export const exportManfredJsonToCVXWingHTML = (manfredJsonContent: ManfredAwesomicCV, settings: Settings): string => {
Expand All @@ -19,13 +20,15 @@ export const exportManfredJsonToCVXWingHTML = (manfredJsonContent: ManfredAwesom
const mainElementStart = generateMainElementStart();
const aboutMeSection = generateAboutMeSection(manfredJsonContent, settings);
const mainElementEnd = generateMainElementEnd();
const languageSection = generateLanguageSection(manfredJsonContent, settings);
return `
${htmlDocumentStart}
${headerElementStart}
${headerSection}
${headerElementEnd}
${mainElementStart}
${aboutMeSection}
${languageSection}
${mainElementEnd}
${htmlDocumentEnd}
`;
Expand Down

0 comments on commit a42c055

Please sign in to comment.