|
1 | | -# README |
2 | | - |
3 | | -# Organisation du dépôt DevFest Perros-Guirec |
4 | | - |
5 | | -Ce dépôt contient le site web de la conférence DevFest Perros-Guirec, construit avec Jekyll. Voici les principaux dossiers et fichiers pour faciliter la prise en main : |
6 | | - |
7 | | -## Structure principale |
8 | | - |
9 | | -- **index.md** : Page d’accueil, contient la configuration des intervenants, agenda, boutique, etc. |
10 | | -- **_config.yml** : Fichier de configuration principal pour Jekyll ou Hugo, définissant l’URL du site, le thème, les paramètres de la conférence (nom, date, lieu, prix), les sections actives, les sponsors, partenaires et le programme. Modifie ce fichier pour personnaliser le contenu et la structure du site. |
11 | | -- **Gemfile / Gemfile.lock** : Liste et verrouille les dépendances Ruby nécessaires au fonctionnement de Jekyll. Assure la cohérence de l’environnement de développement et facilite l’installation des plugins. |
12 | | -- **_includes/** : Fragments HTML réutilisables (header, footer, agenda, boutons, etc.). |
13 | | -- **_layouts/** : Templates de pages (sponsors, home, etc.). |
14 | | -- **_data/** : Fichiers YAML pour les données partagées (ex : partenaires). |
15 | | -- **_sass/** : Fichiers de styles Sass pour la personnalisation CSS. |
16 | | -- **assets/** : Images, feuilles de style, scripts JS, et ressources statiques pour chaque édition. |
17 | | -- **archives.md** : Page d’archives des éditions précédentes. |
18 | | -- **sponsors.md** : Page dédiée au sponsoring. |
19 | | -- **about_ca.md** : Page “À propos” de l’association Code d’Armor. |
20 | | - |
21 | | -## Données |
22 | | -Les données sont réparties entre config.yml et /_data/commons.yml |
23 | | - |
24 | | -### Sections de données dans `config.yml` |
25 | | - |
26 | | -- **params** |
27 | | - - Conference info (Name, Description, Date, Price, Venue, Address, City, State, Images, GoogleMapsKey) |
28 | | - - Sections (about, location, speakers, schedule, sponsors, partners, contact) |
29 | | - - Titles (about, location, speakers, schedule, sponsors, partners, contact) |
30 | | - - CallToAction |
31 | | - - ForkButton |
32 | | - - Sponsors |
33 | | - - Partners |
34 | | - - Schedule |
35 | | - |
36 | | -### Sections de données dans `_data/commons.yml` |
37 | | -- **logo_url** |
38 | | -- **menu** |
39 | | -- **Newsletter** |
40 | | -- **Sponsors** |
41 | | - - logos_basic |
42 | | - - logos_advanced |
| 1 | +# DevFest Perros-Guirec |
43 | 2 |
|
| 3 | +Site web de la conférence **DevFest Perros-Guirec**, organisée par l'association Code d'Armor. Ce site est construit avec [Jekyll](https://jekyllrb.com/), un générateur de sites statiques en Ruby. |
44 | 4 |
|
45 | | -## Démarrage rapide |
46 | | - |
47 | | -1. Installe les dépendances Ruby et Jekyll (voir [README.md](README.md)). |
48 | | -2. Lance le serveur local avec `bundle exec jekyll serve --trace`. |
49 | | -3. Modifie le contenu dans les fichiers markdown ou HTML selon la section du site à mettre à jour. |
| 5 | +## Prérequis |
50 | 6 |
|
51 | | -## Bonnes pratiques |
| 7 | +- Ruby 2.5 ou supérieur |
| 8 | +- Bundler (gestionnaire de dépendances Ruby) |
52 | 9 |
|
53 | | -- Utilise les fragments dans `_includes/` pour éviter la duplication de code HTML. |
54 | | -- Les données dynamiques (agenda, intervenants, partenaires) sont centralisées dans `index.md` ou `_data/`. |
55 | | -- Les ressources statiques (images, CSS, JS) sont rangées dans `assets/` par année ou usage. |
| 10 | +## Installation |
56 | 11 |
|
57 | | -## Installer l'environnement |
| 12 | +### 1. Installer Ruby et les dépendances système |
58 | 13 |
|
59 | 14 | ```shell |
60 | 15 | apt-get install ruby-full build-essential zlib1g-dev |
| 16 | +``` |
| 17 | + |
| 18 | +### 2. Configurer l'environnement Ruby |
61 | 19 |
|
| 20 | +```shell |
62 | 21 | echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc |
63 | 22 | echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc |
64 | 23 | echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc |
65 | 24 | source ~/.bashrc |
| 25 | +``` |
| 26 | + |
| 27 | +### 3. Installer Jekyll et les dépendances du projet |
66 | 28 |
|
| 29 | +```shell |
67 | 30 | gem install jekyll bundler |
68 | 31 | bundle install |
69 | 32 | ``` |
70 | 33 |
|
71 | | -## Démarrer une instance locale |
| 34 | +## Démarrage rapide |
| 35 | + |
| 36 | +Lancer le serveur de développement local : |
72 | 37 |
|
73 | 38 | ```shell |
74 | 39 | bundle exec jekyll serve --trace |
75 | 40 | ``` |
76 | 41 |
|
| 42 | +Le site est accessible à l'adresse http://localhost:4000 |
| 43 | + |
| 44 | +## Structure du projet |
| 45 | + |
| 46 | +``` |
| 47 | +. |
| 48 | +├── index.md # Page d'accueil (configuration principale) |
| 49 | +├── _config.yml # Configuration Jekyll |
| 50 | +├── Gemfile # Dépendances Ruby |
| 51 | +├── _includes/ # Fragments HTML réutilisables |
| 52 | +│ ├── header.html |
| 53 | +│ ├── footer.html |
| 54 | +│ ├── agenda.html |
| 55 | +│ └── speakers.html |
| 56 | +├── _layouts/ # Templates de pages |
| 57 | +│ ├── home_conference.html |
| 58 | +│ └── sponsors.html |
| 59 | +├── _data/ |
| 60 | +│ └── commons.yml # Données partagées (menu, sponsors) |
| 61 | +├── _sass/ # Styles SCSS |
| 62 | +├── assets/ # Ressources statiques |
| 63 | +│ ├── 2025/ # Édition 2025 |
| 64 | +│ │ └── photos_speakers/ |
| 65 | +│ └── img/ |
| 66 | +│ └── logos_sponsors/ |
| 67 | +├── archives.md # Page d'archives |
| 68 | +├── sponsors.md # Page sponsoring |
| 69 | +└── about_ca.md # Page association Code d'Armor |
| 70 | +``` |
| 71 | + |
| 72 | +## Architecture des données |
| 73 | + |
| 74 | +Le contenu du site est réparti entre deux sources principales : |
| 75 | + |
| 76 | +### 1. `index.md` (Front Matter YAML) |
| 77 | + |
| 78 | +Contient les données spécifiques à l'édition courante : |
| 79 | +- **Speakers** : Liste des intervenants avec bios et photos |
| 80 | +- **Agenda** : Programme, créneaux horaires et descriptions |
| 81 | +- **Carrousel_Slides** : Diapositives de la bannière d'accueil |
| 82 | +- **Details** : Informations de l'événement (date, lieu, etc.) |
| 83 | +- **Sponsoring** : Section partenaires |
| 84 | +- **Register** : Boutons d'inscription/billetterie |
| 85 | +- **Shop** : Section boutique (goodies) |
| 86 | +- **Gallery** : Galerie photos |
| 87 | + |
| 88 | +Les sections sont conditionnellement affichées dans le layout. Pour masquer une section, il suffit de la commenter ou de la supprimer du front matter. |
| 89 | + |
| 90 | +### 2. `_data/commons.yml` |
| 91 | + |
| 92 | +Contient les données partagées entre les pages : |
| 93 | +- **menu** : Liens de navigation |
| 94 | +- **Newsletter** : Configuration de l'inscription newsletter |
| 95 | +- **Sponsors** : Logos des sponsors (utilisés dans le footer et autres pages) |
| 96 | + |
| 97 | +## Personnaliser le contenu |
| 98 | + |
| 99 | +### Ajouter un intervenant |
| 100 | + |
| 101 | +Dans `index.md`, ajouter sous `Speakers.list` : |
| 102 | + |
| 103 | +```yaml |
| 104 | +Speakers: |
| 105 | + list: |
| 106 | + - name: "Prénom Nom" |
| 107 | + id: "nom_unique" |
| 108 | + organization: "Entreprise" |
| 109 | + photo_url: "assets/2025/photos_speakers/nom.jpg" |
| 110 | + bio: > |
| 111 | + Description de l'intervenant... |
| 112 | + social_links: |
| 113 | + - type: linkedin |
| 114 | + url: https://linkedin.com/in/... |
| 115 | + - type: twitter |
| 116 | + url: https://twitter.com/... |
| 117 | +``` |
| 118 | +
|
| 119 | +### Ajouter un créneau à l'agenda |
| 120 | +
|
| 121 | +Dans `index.md`, ajouter sous `Agenda.schedule` : |
| 122 | + |
| 123 | +```yaml |
| 124 | +Agenda: |
| 125 | + schedule: |
| 126 | + - slot_begin_time: "09:00" |
| 127 | + slot_type: talk # talk, quickie, ou break |
| 128 | + title: "Titre de la présentation" |
| 129 | + speakers: |
| 130 | + - id: nom_unique # Référence le Speakers.list |
| 131 | + description: > |
| 132 | + Description du talk... |
| 133 | + room: "Salle principale" |
| 134 | +``` |
| 135 | + |
| 136 | +### Activer/désactiver une section |
| 137 | + |
| 138 | +Pour masquer une section (par exemple quand le CFP est fermé), commentez-la dans `index.md` : |
| 139 | + |
| 140 | +```yaml |
| 141 | +# CallForProposal: |
| 142 | +# title: "Call for Proposal" |
| 143 | +# ... |
| 144 | +``` |
| 145 | + |
| 146 | +Ou supprimez-la complètement. Le layout vérifie la présence de la section avant de l'afficher. |
| 147 | + |
| 148 | +## Déploiement |
| 149 | + |
| 150 | +Le site est déployé automatiquement sur GitHub Pages via GitHub Actions (voir `.github/workflows/jekyll.yml`). |
| 151 | + |
| 152 | +À chaque push sur la branche `master`, le workflow : |
| 153 | +1. Construit le site avec Jekyll |
| 154 | +2. Déploie le résultat sur GitHub Pages |
| 155 | + |
| 156 | +### Build manuel |
| 157 | + |
| 158 | +Pour générer le site localement (dans `_site/`) : |
| 159 | + |
| 160 | +```shell |
| 161 | +# Build de développement |
| 162 | +bundle exec jekyll build |
| 163 | +
|
| 164 | +# Build de production |
| 165 | +JEKYLL_ENV=production bundle exec jekyll build |
| 166 | +``` |
| 167 | + |
| 168 | +## Bonnes pratiques |
| 169 | + |
| 170 | +- Les photos des speakers doivent être placées dans `assets/2025/photos_speakers/` |
| 171 | +- Les logos des sponsors vont dans `assets/img/logos_sponsors/` |
| 172 | +- Les éditions précédentes sont archivées dans `assets/YYYY/` |
| 173 | +- Utilisez les fragments dans `_includes/` pour éviter la duplication de code HTML |
| 174 | +- Les données dynamiques (agenda, intervenants) sont centralisées dans `index.md` |
0 commit comments