Skip to content

Commit 386332f

Browse files
committed
languages section and change typo html-start and template
1 parent 33ab993 commit 386332f

File tree

11 files changed

+143
-32
lines changed

11 files changed

+143
-32
lines changed

export-samples/html/cv-monochrome-force.html

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -365,30 +365,30 @@
365365
padding-left: var(--space-24);
366366
}
367367

368-
/* icono lenguajes */
369-
.lenguage__container {
368+
/* section languages */
369+
.language__container {
370370
display: grid;
371371
padding-inline: var(--space-8);
372372
grid-template-columns: minmax(100px, auto) minmax(114px, 1fr);
373373
align-items: center;
374374
justify-items: start;
375375
}
376-
.lenguage__container + .lenguage__container {
376+
.language__container + .language__container {
377377
padding-top: var(--space-12);
378378
}
379-
.lenguage__title {
379+
.language__title {
380380
color: var(--primary-500);
381381
font-weight: var(--fw-medium);
382382
}
383-
.lenguage__image {
383+
.language__image {
384384
min-width: 7rem;
385385
display: flex;
386386
flex-direction: column;
387387
align-items: flex-end;
388388
gap: var(--space-2);
389389
margin: 0px;
390390
}
391-
.lenguage__icon {
391+
.language__icon {
392392
width: 114px;
393393
height: 24px;
394394
clip-path: polygon(0px 100%, 100% 0px, 100% 100%);
@@ -483,7 +483,7 @@
483483
);
484484
}
485485

486-
/* experiencies */
486+
/* section experiencies */
487487
.experiencies__container {
488488
display: flex;
489489
flex-direction: column;
@@ -565,7 +565,7 @@
565565
}
566566
}
567567

568-
/* educations */
568+
/* section educations */
569569
.educations {
570570
padding-bottom: var(--space-8);
571571
}
@@ -846,31 +846,31 @@ <h2 class="title">Competencias</h2>
846846
</section>
847847
<section class="section languages">
848848
<h2 class="title">Idiomas</h2>
849-
<div class="lenguage__container">
850-
<p class="lenguage__title">Español</p>
851-
<figure type="language" class="lenguage__image">
852-
<div class="lenguage__icon level-4"></div>
849+
<div class="language__container">
850+
<p class="language__title">Español</p>
851+
<figure type="language" class="language__image">
852+
<div class="language__icon level-4"></div>
853853
<figcaption class="language__caption">Nativo/Bilingüe</figcaption>
854854
</figure>
855855
</div>
856-
<div class="lenguage__container">
857-
<p class="lenguage__title">Inglés</p>
858-
<figure type="language" class="lenguage__image">
859-
<div class="lenguage__icon level-3"></div>
856+
<div class="language__container">
857+
<p class="language__title">Inglés</p>
858+
<figure type="language" class="language__image">
859+
<div class="language__icon level-3"></div>
860860
<figcaption class="language__caption">Fluido</figcaption>
861861
</figure>
862862
</div>
863-
<div class="lenguage__container">
864-
<p class="lenguage__title">Alemán</p>
865-
<figure type="language" class="lenguage__image">
866-
<div class="lenguage__icon level-2"></div>
863+
<div class="language__container">
864+
<p class="language__title">Alemán</p>
865+
<figure type="language" class="language__image">
866+
<div class="language__icon level-2"></div>
867867
<figcaption class="language__caption">Intermedio</figcaption>
868868
</figure>
869869
</div>
870-
<div class="lenguage__container">
871-
<p class="lenguage__title">Gallego</p>
872-
<figure type="language" class="lenguage__image">
873-
<div class="lenguage__icon level-1"></div>
870+
<div class="language__container">
871+
<p class="language__title">Gallego</p>
872+
<figure type="language" class="language__image">
873+
<div class="language__icon level-1"></div>
874874
<figcaption class="language__caption">Básico</figcaption>
875875
</figure>
876876
</div>

packages/manfred2html/src/engine/cv-monochrome-force/html-parts/html-document-start/html-document-start.ejs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -365,30 +365,30 @@
365365
padding-left: var(--space-24);
366366
}
367367
368-
/* icono lenguajes */
369-
.lenguage__container {
368+
/* section languages */
369+
.language__container {
370370
display: grid;
371371
padding-inline: var(--space-8);
372372
grid-template-columns: minmax(100px, auto) minmax(114px, 1fr);
373373
align-items: center;
374374
justify-items: start;
375375
}
376-
.lenguage__container + .lenguage__container {
376+
.language__container + .language__container {
377377
padding-top: var(--space-12);
378378
}
379-
.lenguage__title {
379+
.language__title {
380380
color: var(--primary-500);
381381
font-weight: var(--fw-medium);
382382
}
383-
.lenguage__image {
383+
.language__image {
384384
min-width: 7rem;
385385
display: flex;
386386
flex-direction: column;
387387
align-items: flex-end;
388388
gap: var(--space-2);
389389
margin: 0px;
390390
}
391-
.lenguage__icon {
391+
.language__icon {
392392
width: 114px;
393393
height: 24px;
394394
clip-path: polygon(0px 100%, 100% 0px, 100% 100%);
@@ -483,7 +483,7 @@
483483
);
484484
}
485485
486-
/* experiencies */
486+
/* section experiencies */
487487
.experiencies__container {
488488
display: flex;
489489
flex-direction: column;
@@ -565,7 +565,7 @@
565565
}
566566
}
567567
568-
/* educations */
568+
/* section educations */
569569
.educations {
570570
padding-bottom: var(--space-8);
571571
}

packages/manfred2html/src/engine/cv-monochrome-force/html-parts/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ export * from './main-element-start';
88
export * from './main-element-end';
99
export * from './about-me-section';
1010
export * from './relevants-links-section';
11+
export * from './language-section';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './language-section.part';
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Language } from '@/model';
2+
import { LanguageLabels } from './language-label.model';
3+
import { spanishLanguageLabels } from './language-spanish-labels.const';
4+
import { englishLanguageLabels } from './language-english-labels.const';
5+
6+
export const getLabels = (language: Language): LanguageLabels => {
7+
switch (language) {
8+
case 'es':
9+
return spanishLanguageLabels;
10+
case 'en':
11+
return englishLanguageLabels;
12+
default:
13+
throw new Error(`Language not supported: ${language}`);
14+
}
15+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { LanguageLabels } from './language-label.model';
2+
3+
export const englishLanguageLabels: LanguageLabels = {
4+
LANGUAGE_HEADING: 'Languages',
5+
LEVEL_ONE: 'Basic',
6+
LEVEL_TWO: 'Intermediate',
7+
LEVEL_THREE: 'Fluent',
8+
LEVEL_FOUR: 'Native/bilingual',
9+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export interface LanguageLabels {
2+
LANGUAGE_HEADING: string;
3+
LEVEL_ONE: string;
4+
LEVEL_TWO: string;
5+
LEVEL_THREE: string;
6+
LEVEL_FOUR: string;
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { LanguageLabels } from './language-label.model';
2+
3+
export const spanishLanguageLabels: LanguageLabels = {
4+
LANGUAGE_HEADING: 'Idiomas',
5+
LEVEL_ONE: 'Básico',
6+
LEVEL_TWO: 'Intermedio',
7+
LEVEL_THREE: 'Fluido',
8+
LEVEL_FOUR: 'Nativo/Bilingüe',
9+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<%_ if (languageCollection && languageCollection.length !== 0) { -%>
2+
<section class="section languages">
3+
<h2 class="title"><%- labels.LANGUAGE_HEADING %></h2>
4+
5+
<%_ for (const language of languageCollection) { -%>
6+
<%_ if (language.level ==='Habilidad básica' || language.level ==='Habilidad limitada en el trabajo') { -%>
7+
<div class="language__container">
8+
<p class="language__title"><%- language.name %></p>
9+
<figure type="language" class="language__image">
10+
<div class="language__icon level-1"></div>
11+
<figcaption class="language__caption"><%- labels.LEVEL_ONE %></figcaption>
12+
</figure>
13+
</div>
14+
<%_ } -%>
15+
<%_ if (language.level ==='Habilidad profesional en el trabajo') { -%>
16+
<div class="language__container">
17+
<p class="language__title"><%- language.name %></p>
18+
<figure type="language" class="language__image">
19+
<div class="language__icon level-2"></div>
20+
<figcaption class="language__caption"><%- labels.LEVEL_TWO %></figcaption>
21+
</figure>
22+
</div>
23+
<%_ } -%>
24+
<%_ if (language.level ==='Habilidad profesional completo') { -%>
25+
<div class="language__container">
26+
<p class="language__title"><%- language.name %></p>
27+
<figure type="language" class="language__image">
28+
<div class="language__icon level-3"></div>
29+
<figcaption class="language__caption"><%- labels.LEVEL_THREE %></figcaption>
30+
</figure>
31+
</div>
32+
<%_ } -%>
33+
<%_ if (language.level ==='Habilidad nativo o bilingüe') { -%>
34+
<div class="language__container">
35+
<p class="language__title"><%- language.name %></p>
36+
<figure type="language" class="language__image">
37+
<div class="language__icon level-4"></div>
38+
<figcaption class="language__caption"><%- labels.LEVEL_FOUR %></figcaption>
39+
</figure>
40+
</div>
41+
<%_ } -%>
42+
<%_ } -%>
43+
</section>
44+
<%_ } -%>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import ejs from 'ejs';
2+
import { LanguageVm, mapFromCvToLanguageVm } from '@lemoncode/manfred-common/language-section';
3+
import { ISO_SPANISH_LANGUAGE } from '@/engine/engine.const';
4+
import { ManfredAwesomicCV, Settings, Language } from '@/model';
5+
import { getLabels } from './labels';
6+
import languageSection from './language-section.ejs?raw';
7+
8+
export const generateLanguageSection = (cv: ManfredAwesomicCV, settings: Settings): string => {
9+
const languageSectionVm = mapFromCvToLanguageVm(cv);
10+
return generateLanguageSectionInner(languageSectionVm, settings.language);
11+
};
12+
13+
const generateLanguageSectionInner = (
14+
languageSectionVm: LanguageVm[],
15+
language: Language = ISO_SPANISH_LANGUAGE
16+
): string => {
17+
const rootObject = {
18+
languageCollection: languageSectionVm,
19+
labels: getLabels(language),
20+
};
21+
return ejs.render(languageSection, rootObject);
22+
};

0 commit comments

Comments
 (0)