Skip to content

Commit fdb472f

Browse files
committed
created a new strusture with his own mapper and other functions to work with his own colorTheme
1 parent 7d5ff87 commit fdb472f

7 files changed

Lines changed: 74 additions & 5 deletions

File tree

apps/react-app/src/pods/template-export/components/export-config/export-config.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interface Props {
1717
}
1818

1919
const DOWNLOAD_MESSAGE_TIMEOUT = 2500;
20-
const DESING_OPTIONS: TemplateCV[] = ['Sith Elegance', 'Galactic CleanTech'];
20+
const DESING_OPTIONS: TemplateCV[] = ['Sith Elegance', 'Galactic CleanTech', 'Jedi minimalism'];
2121
const LANGUAGE_OPTIONS: Language[] = ['es', 'en'];
2222

2323
export const ExportConfig: React.FC<Props> = props => {
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import ejs from 'ejs';
2-
import { HexColorJedi } from '@/model';
2+
import { HexColor, HexColorJedi } from '@/model';
33
import htmlDocumentStartTemplate from './html-document-start.ejs?raw';
44

5-
export const generateHtmlDocumentStart = (color: HexColorJedi): string =>
5+
export const generateHtmlDocumentStart = (color: HexColor): string => ejs.render(htmlDocumentStartTemplate, { color });
6+
7+
export const generateJediHtmlDocumentStart = (color: HexColorJedi): string =>
68
ejs.render(htmlDocumentStartTemplate, { color });
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export * from './html-document-start';
2+
export * from './html-document-end';
3+
export * from './header-element-start';
4+
export * from './header-element-end';
5+
export * from './header-section';
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { ManfredAwesomicCV, JediSettings } from '@/model';
2+
import {
3+
generateJediHtmlDocumentStart,
4+
generateHtmlDocumentEnd,
5+
generateHeaderElementStart,
6+
generateHeaderElementEnd,
7+
generateHeaderSection,
8+
} from './html-parts';
9+
10+
export const exportManfredJSonToCVJediMinimalismHTML = (
11+
manfredJsonContent: ManfredAwesomicCV,
12+
JediSettings: JediSettings
13+
): string => {
14+
const htmlDocumentStart = generateJediHtmlDocumentStart(JediSettings.colorTheme);
15+
const htmlDocumentEnd = generateHtmlDocumentEnd();
16+
const headerElementStart = generateHeaderElementStart();
17+
const headerElementEnd = generateHeaderElementEnd();
18+
const headerSection = generateHeaderSection(manfredJsonContent);
19+
20+
return `
21+
${htmlDocumentStart}
22+
${headerElementStart}
23+
${headerSection}
24+
${headerElementEnd}
25+
${htmlDocumentEnd}
26+
`;
27+
};

packages/manfred2html/src/engine/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import { ManfredAwesomicCV, ExportHTMLSettings } from '@/model';
2-
import { mapExportHTMLSettingsToSettings } from '@/mappers';
2+
import { mapExportHTMLSettingsToSettings, mapExportHTMLJediSettingsToSettings } from '@/mappers';
33
import { exportManfredJSonToCVSithEleganceHTML } from './cv-sith-elegance';
44
import { exportManfredJSonToCVGalacticCleanTechHTML } from './cv-galactic-cleantech';
5+
import { exportManfredJSonToCVJediMinimalismHTML } from './cv-jedi-minimalism';
56

67
export const exportHTMLTemplate = (
78
manfredJsonContent: ManfredAwesomicCV,
89
exportHTMLSettings: ExportHTMLSettings
910
): string => {
1011
const settings = mapExportHTMLSettingsToSettings(exportHTMLSettings);
12+
const Jedisettings = mapExportHTMLJediSettingsToSettings(exportHTMLSettings);
1113

1214
switch (settings.template) {
1315
case 'Sith Elegance':
1416
return exportManfredJSonToCVSithEleganceHTML(manfredJsonContent, settings);
1517
case 'Galactic CleanTech':
1618
return exportManfredJSonToCVGalacticCleanTechHTML(manfredJsonContent, settings);
19+
case 'Jedi minimalism':
20+
return exportManfredJSonToCVJediMinimalismHTML(manfredJsonContent, Jedisettings);
1721
default:
1822
throw new Error('Template not found');
1923
}

packages/manfred2html/src/mappers/exportHTMLSettings.mappers.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ColorTheme, ExportHTMLSettings, Settings, HexColor } from '@/model';
1+
import { ColorTheme, ExportHTMLSettings, Settings, HexColor, HexColorJedi, JediSettings } from '@/model';
22

33
export const mapColorThemeToHex = (colorTheme: ColorTheme): HexColor => {
44
switch (colorTheme) {
@@ -19,8 +19,33 @@ export const mapColorThemeToHex = (colorTheme: ColorTheme): HexColor => {
1919
}
2020
};
2121

22+
export const mapJediColorThemeToHex = (colorTheme: ColorTheme): HexColorJedi => {
23+
switch (colorTheme) {
24+
case 'default':
25+
return HexColorJedi.default;
26+
case 'red':
27+
return HexColorJedi.red;
28+
case 'green':
29+
return HexColorJedi.green;
30+
case 'orange':
31+
return HexColorJedi.orange;
32+
case 'yellow':
33+
return HexColorJedi.yellow;
34+
case 'dark':
35+
return HexColorJedi.dark;
36+
default:
37+
return HexColorJedi.default;
38+
}
39+
};
40+
2241
export const mapExportHTMLSettingsToSettings = (exportHTMLSettings: ExportHTMLSettings): Settings => ({
2342
colorTheme: mapColorThemeToHex(exportHTMLSettings.colorTheme),
2443
template: exportHTMLSettings.template || 'default',
2544
language: exportHTMLSettings.language || 'es',
2645
});
46+
47+
export const mapExportHTMLJediSettingsToSettings = (exportHTMLSettings: ExportHTMLSettings): JediSettings => ({
48+
colorTheme: mapJediColorThemeToHex(exportHTMLSettings.colorTheme),
49+
template: exportHTMLSettings.template || 'default',
50+
language: exportHTMLSettings.language || 'es',
51+
});

packages/manfred2html/src/model/export-html-settings.model.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ export interface Settings {
4040
language: Language;
4141
}
4242

43+
export interface JediSettings {
44+
colorTheme: HexColorJedi;
45+
template: TemplateCV;
46+
language: Language;
47+
}
48+
4349
export const createDefaultExportHTMLSettings = (): ExportHTMLSettings => ({
4450
colorTheme: 'default',
4551
template: 'Sith Elegance',

0 commit comments

Comments
 (0)