Skip to content

WeLoveSpeed/welovespeed.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

We ❤️ Speed

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/.

Installation classique

Pré-requis

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

Installation

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

Travailler en local

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.

Installation Docker

Pré-requis

Vous devez avoir Docker >= 24 & Docker Compose >= 2.23 installé sur votre machine.

Installation

$ docker-compose run bundle install
$ docker-compose run npm install

Travailler en local

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

Contribution

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.

Comment sont organisés les contenus ?

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 :

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.

Données et navigation

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.

Et la traduction ?

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.

Tests

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

Commandes utiles

  • 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

Licence

Ce code est publié sous licence MIT.