Site internet de la conférence 'We ❤️ Speed', dont la première édition aura lieu le 9 octobre à Bordeaux
URL finale : https://www.welovespeed.com/.
Le site est généré à l'aide de Jekyll et nécessite Ruby 3.3.0 (voir .ruby-version
).
Nous vous recommandons de gérer l'installation de Ruby via rbenv.
Sous Mac OS X, vous pouvez utiliser Homebrew pour cela
$ brew install rbenv ruby-build
Sous GNU/Linux, certaines librairies sont nécessaires (à adapter à votre gestionnaire de paquets) :
sudo apt-get install -y libreadline-dev build-essential
Puis pour rbenv et ruby-build, préférer une installation par git :
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Si vous n'avez pas déjà cloné le dépot :
$ git clone https://github.com/WeLoveSpeed/welovespeed.com.git && cd welovespeed.com
Si bundler n'est pas installé
$ gem install bundler
Pour installer toutes les dépendances du projet :
$ bundle install;
Pour installer la bonne version de Ruby avec rbenv :
$ rbenv install
Pour travailler sur le site et surveiller les modifications :
$ bundle exec rake build:serve
Pour builder sur l'environnement d'intégration
$ bundle exec rake build:integ
Pour builder pour la Production
$ bundle exec rake build:prod
Si vous modifiez un des fichiers _config_*.yml
, il faut couper et relancer.
Le site est maintenant accessible en local à l'adresse http://127.0.0.1:4000/ (dev).
Pour plus d'information sur l'utilisation de Jekyll, reportez-vous à la documentation officielle.
Vous devez avoir Docker >= 24 & Docker Compose >= 2.23 installé sur votre machine.
$ docker-compose run bundle install
$ docker-compose run npm install
Pour travailler sur le site et surveiller les modifications :
$ docker-compose up -d bundle
Le site est maintenant accessible en local à l'adresse http://127.0.0.1:4000/ (dev).
Pour builder pour l'environnement d'intégration
$ docker-compose run bundle exec rake build:integ
Pour builder pour la Production
$ docker-compose run bundle exec rake build:prod
Pour toute demande, merci de créer une issue sur GitHub.
Si vous souhaitez nous aider, vous pouvez copier le dépôt, faire vos modifications dans une nouvelle branche et faire une demande de fusion.
Toute modification doit faire l'objet d'une pull request et doit passer les tests avant de pouvoir être fusionnée.
Les pages sont dans le dossier pages, mais certains contenus ne sont pas là, pour des raisons d'organisation du code.
Par exemple, les en-têtes de page sont dans :
- _includes/header-home.html pour la page d'accueil ;
- _includes/header-page.html pour les autres pages.
D'autres morceaux de contenus se trouvent dans _includes, car ils servent à plusieurs endroits dans le site, comme le bloc d'affichage des intervenants situés dans _includes/speakers.html.
Les définitions des talks sont dans _talks.
Certaines données-clées sont réunies dans _data : les informations sur les sponsors, le staff, les speakers…
C'est aussi là qu'on trouve le fichier qui définit quels éléments apparaissent dans la navigation ou le pied de page.
Le contenu principal des pages est traduit directement en séparant les fichiers. Mais pour éviter de dupliquer du code, certains portions de codes utilisent des mécanismes intégrés de traduction de chaines de caractères.
Si vous voyez :
{% t Lorem ipsum sit dolor amet %}
ou :
{{ "Lorem ipsum sit dolor amet" | t: page.locale }}
C'est que la chaine "Lorem ipsum sit dolor amet"
est traduite dans _data/translations.yml. À chaque chaine française (fr_FR) est associée un équivalent anglais (en_US). On pourrait imaginer d'autres langues mais ce n'est pas prévu pour l'instant.
Et pour le visiteur ?
Lors de sa première visite, il est automatiquement transférée vers la langue de préférence de son navigateur : français s'il s'agit du français ; anglais sinon.
Avant de soumettre votre pull-request, vérifiez que les tests passent après le build de la production :
$ bundle exec rake postbuild:test:kiss
- Pour transformer des logos SVG en PNG
Mettez votre SVG dans le dossier /assets/images/thanks
.
Puis lancez les commandes :
$ npm install
$ npm run generate:logo_newsletter
- Pour générer les cover images des talks
# La première fois uniquement
$ npm install
$ npx install playwright
# A chaque fois que vous voulez en générer des nouvelles
$ bundle exec rake build:prod
$ npm generate:talks_social
Ce code est publié sous licence MIT.