792542a71f
- Déplace les styles inline vers css/form.css et css/cv.css
- Crée js/main.js comme point d'entrée ES Module (type="module")
- Extrait la logique identité dans js/sections/identite.js
- Ajoute les stubs js/sections/{competences,formation,experience,hobbies}.js
- Crée les dossiers sections/{identite,competences,formation,experience,hobbies}/
avec .gitkeep et README décrivant le contenu prévu
- Met à jour index.html : liens CSS séparés, script type=module
- Met à jour README.md : avertissement ES Modules, structure des fichiers
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
import { collectIdentite, renderIdentite } from './sections/identite.js';
|
|
import { collectCompetences, renderCompetences } from './sections/competences.js';
|
|
import { collectFormation, renderFormation } from './sections/formation.js';
|
|
import { collectExperience, renderExperience } from './sections/experience.js';
|
|
import { collectHobbies, renderHobbies } from './sections/hobbies.js';
|
|
|
|
function generateCV() {
|
|
const identite = collectIdentite();
|
|
|
|
if (!identite.nom || !identite.prenom || !identite.email || !identite.titre) return;
|
|
|
|
renderIdentite(identite);
|
|
renderCompetences(collectCompetences());
|
|
renderFormation(collectFormation());
|
|
renderExperience(collectExperience());
|
|
renderHobbies(collectHobbies());
|
|
|
|
localStorage.setItem('cvData', JSON.stringify(identite));
|
|
|
|
const success = document.getElementById('success');
|
|
if (success) {
|
|
success.textContent = `CV prêt à être généré pour ${identite.prenom} ${identite.nom} !`;
|
|
success.style.display = 'block';
|
|
}
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
document.getElementById('cv-form')?.addEventListener('submit', (e) => {
|
|
e.preventDefault();
|
|
generateCV();
|
|
});
|
|
});
|