Diffuser un plugin sur WordPress.org (1/3)

Je viens de créer un plugin WordPress pour fusionner toutes les CSS afin de n’en faire qu’une seule, et optimiser celle ci en taille… Ce n’est pas mon premier, mais celui ci étant très important (?) j’ai décidé de le publier sur WordPress.org pour le diffuser. Et tester en live comment procéder à la chose (cela peut toujours servir).

Le but de cet article est de raconter comment se passe cette publication, pour ceux qui vont se lancer bientôt (et pour ma propre mémoire parfois défaillante, si, si).

Donc: récit, explications, tutoriel…

Naissance de l’extension

Il est des idées simples qui sont pourtant à la base de grande chose. La discussion récente est de celle ci. En gros, pourquoi utiliser plusieurs feuilles de style alors qu’une seule CSS c’est quand même mieux à tout les niveaux – sauf pour la mise au point, car elle risque d’être longue et confuse.

J’ai donc planché sur une idée simple: permettre de travailler avec plusieurs fichiers CSS organisés et documentés, mais générer un seul fichier qui sera envoyé aux Internaute, après une étape de fusion et de compression (suppression des commentaires, espaces superflus, etc.) Le gain se fait sentir en temps de chargement, puisqu’une seule requête HTTP est nécessaire pour toutes les CSS, et celle ci pèsent moins lourd.

Travaillant beaucoup avec WordPress en ce moment, un plugin s’imposait.

Chose faite.

Au début, était (la lecture) du verbe

On ne se lance pas là dedans sans un minimum de lecture. Pour cela, un point de départ incontournable, le site WordPress lui même, et en particulier:

La documentation disponible est en anglais. On le verra, ce n’est pas grave, car la suite doit l’être aussi. Donc c’est indispensable.

Puis vint l’écriture… et les tests

Écrire le code de l’extension est bien sûr un point important.

Pas très difficile en ce cas, car ce plugin est simple techniquement. Ne jouons pas les modestes, j’ai un peu galéré au départ car parti dans une voie compliquée. Faire simple est pourtant tellement… plus simple…

En gros et pour votre information, ce plugin (nommé rc_CSS) va rendre possible l’utilisation de 2 fonctions principales:

<?php
rc_CSS_enqueue_style( "/reset.css" );
rc_CSS_enqueue_style( "/print.css" , "print");
rc_CSS_enqueue_style( "/mobile.css" , "screen and (max-width: 400px)");
rc_CSS_enqueue_style( "/style.css" );
rc_CSS_echo_style( false );
?>

La première, rc_CSS_enqueue_style permet de spécifier les différentes CSS à utiliser avec leur éventuelle paramètre media query. La seconde rc_CSS_enqueue_style rassemble le tout après compression et écriture dans un fichier cache (uniquement si le paramètre est à true, sinon il utilise le cache sans se poser de question).

Tester l’extension est bien sûr indispensable, et ce sur plusieurs WordPress (en local d’abord, puis sur plusieurs hébergements différents). Ça tombe bien, j’ai plusieurs WP installés qui traînent.

Rédaction de documentation

C’est un point avec lequel WordPress ne rigole pas. Vous devez documenter l’utilisation de votre extension. Pas forcément le code lui même (c’est toujours mieux), mais surtout son utilisation. N’oublions pas que WordPress est destiné aux gens qui ne sont pas tous des techniciens, il est donc important qu’un non technicien puisse s’en servir (disons, histoire d’être insolent, un Web-designer de base).

Cela passe principalement par la création d’un fichier readme.txt, qui répond a une structure précise.

Bien sûr, celui ci doit être valide. Au sens WordPress du terme. Lequel, plein de bonté, met à notre disposition un validateur, bien pratique pour en vérifier la structure.

Il faut obtenir Your readme.txt rocks. Seriously. Flying colors. sur fond vert fluo… Laid, mais nécessaire.

Ainsi fut fait.

Le validateur m’a validé, après plusieurs essais. Entre autre, certaines sections sont curieusement indispensables:

  • Upgrade Notice: même si c’est la première version (qui ne dispose pas de mise à jour par définition)
  • Changelog: historique des changements (idem, il n’y en a pas pour la v1…)
  • Donate link: ben oui, mais si je ne veux rien pour mon travail? Si, si, me dit WordPress… Alors soit, un lien vers une association, l’AFSEP dans mon cas.

Bien sûr, à moins de se lancer dans du multilingue, le readme.txt sera en anglais (je ne suis pas sûr d’avoir un anglais très littéraire, mais entre mon approche technique et l’aide de Google Translate, ça devrait aller).

D’ailleurs, si l’anglais ne vous gêne pas (et pour ce qui nous préoccupe, c’est indispensable, on l’a déjà évoqué), cette lecture s’impose : How To Improve Your WordPress Plugin’s Readme.txt. Le titre résume bien ce long article.

S’inscrire sur WordPress

Sauf si c’est déjà fait, bien sûr, il faut s’enregistrer sur le site.

On reçoit alors un mail de confirmation avec un mot de passe.

Créer une page pour le plugin

Il faut bien le mettre quelque part, pour que les équipes de WordPress puissent aller le chercher. Cette page sera, tant qu’à faire, une reprise de la documentation du plugin, un peu étoffée (ou pas).

Dans mon cas, histoire de faire simple, j’ai repris le résultat du validateur de readme WordPress (afficher source, puis copié/collé), n’ayant pas réellement envie de construire un site complet autour de ce plugin somme toute assez basique.

Si le succès est au rendez-vous (?), on avisera.

Pour l’instant, l’adresse n’est pas disponible, car j’attends la validation WP.

Soumettre à WordPress

Il faut bien qu’ils sachent que vous le soumettez.

Pour cela, il faut faire la demande gentiment. Encore que c’est via un formulaire, la politesse n’y est pas de mise à priori. J’ai donc repris le nom du plugin, la description longue, et indiqué l’url de la page spécifique crée ci avant.

Attendre

Il vont l’examiner (manuellement), le tester peut être, lire le readme, etc.

Voire me contacter pour avoir des informations complémentaires. Je me tiens à leur disposition bien sûr!

Le délai ? Ils l’annoncent sur leur site: Within some vaguely defined amount of time. En gros, pas de délai.

J’en suis là…

Nous sommes le 26 juin 2012.

A suivre… dans l’épisode : Diffuser un plugin sur WordPress.org (2/3)

Laisser une réponse