julienleicher

• ☕ 3 minutes de lecture

Middleman à la rescousse

Le mois de Mai commence et c’est une bonne occasion de publier un petit article qui je l’espère, vous sera utile. Aujourd’hui, nous allons donc voir l’installation de Middleman sur Windows. Pourquoi Windows ? Parce que sur les autres OS, vous n’aurez aucun soucis pour l’installer.

Les générateurs de sites statiques

Comme vous le savez probablement, les générateurs de contenu statique reviennent en force en ce moment et un petit tour sur ce site vous permettra de vous rendre compte de la myriade de projets disponibles dans ce but.

Rapidement, ces générateurs vous permettent, à partir de fichiers statiques de générer un contenu HTML pouvant être hébergé n’importe où très simplement. J’en utilise d’ailleurs un pour propulser ce site.

J’ai récemment eu besoin d’un de ces générateurs pour faire un mock HTML avec comme pré-requis :

  • Layouts, partials & cie
  • SASS + Compass intégrés
  • Un minimum de configuration

D’abord parti sur un outil en node.js, j’ai testé Harp, assemble et metalsmith. Bien que pour la plupart simple à mettre en place, il y’avait toujours un détail qui me chagrinait. J’ai donc décidé de partir sur un autre langage et là, ce fût la révélation.

Middleman, à l’attaque !

Logo de middleman

Un générateur en Ruby, simple à utiliser avec tout ce qu’il faut dedans et facile à installer qui plus est (à condition d’avoir déjà Ruby d’installé bien évidemment) !

gem install middleman

Sauf que en fait non, du moins sur Windows avec Ruby >= 2.0.0. Même si l’installation se passe sans soucis, essayons de créer un projet :

middleman init mon_projet

Lors de l’installation du bundle, vous vous retrouverez avec une erreur dans ce style :

An error occurred while installing eventmachine (1.0.3), and Bundler cannot continue.

Et oui, l’erreur vient de eventmachine. Il va nous falloir installer la gem nous même. Direction <répertoire ruby>/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/ext.

Ouvrez le fichier project.h et remplacer les lignes 97-98 de :

typedef int pid_t;
#endif

par

#ifndef _PID_T_
#define _PID_T_
typedef int pid_t;
#endif /* _PID_T_ */
#endif /* OS_WIN32 */

Vous aurez aussi sûrement besoin d’installer Git et de le rajouter à votre path pour la prochaine étape.

Ensuite, dans le répertoire <répertoire ruby>/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.3/, on lance la commande suivante :

gem build eventmachine.gemspec

Qui va nous créer le fichier eventmachine-1.0.3.gem, on le déplace ensuite dans le répertoire de notre choix sinon on ne pourra pas l’installer, et on peut ensuite faire un (dans le répertoire dans lequel se trouve le fichier)

gem install eventmachine-1.0.3.gem --local

Et au passage, on peut dire merci à Brett Klamer pour l’astuce ;)

Voilà, eventmachine, c’est OK ! De retour dans le répertoire mon_projet, lançons à présent un

bundle install

Tadaaa !

Your bundle is complete!

Donc, middleman est installé, notre bundle est complet, tout est bon !

middleman server

Et bien non, vous avez le droit à

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/listen-1.3.1/lib/listen/adapter.rb:207:in `require': cannot load such file -- wdm (LoadError)

Et oui, sous Windows, il nous faut la gem wdm. Ouvrez le fichier Gemfile de notre projet et modifier la ligne suivante :

# De
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
# A
gem "wdm", "~> 0.1.0"

Et oui, à priori, ça ne passe pas correctement. Pour finir un petit :

bundle update

Et nous avons enfin fini, middleman server se lance correctement et vous pouvez accéder à votre site sur http://localhost:4567 !

Il ne vous reste plus qu’à lire la documentation de middleman !