Après plusieurs mois de travail intense, la plateforme technique qui supporte MDN vient de changer. Originellement basée sur la solution DekiWiki de la société MindTouch, la documentation de Mozilla vient de passer sous une solution 100% maison : Kuma. Kuma est un projet codé à l’aide de Python/Django et est directement inspiré de la plateforme qui supporte déjà SUMO (le support utilisateur de Firefox) connu sous le nom de Kitsune.
Comme tous les projets Mozilla, Kuma est 100% open source. Le code est disponible sur GitHub et vous êtes largement invité à proposer patches et fixes si vous en avez envie
Le principal intérêt pour MDN de passer sur une plateforme ouverte et développée par Mozilla est simple : Pouvoir maîtriser les évolutions à apporter à la plateforme pour garantir la meilleure expérience utilisateur possible sur MDN. En la matière, les besoins sont importants et Mozilla a de grandes ambitions pour MDN.
Quoi de neuf ?
Si la plateforme, très jeune, souffre encore de quelques bugs en cours de résolution, les premières améliorations sont déjà visibles. Les deux plus évidentes sont liées à la localisation et aux templates personnalisés.
Concernant la localisation des contenus, disons-le clairement : on ne pouvait pas faire pire que ce qu’il y avait avant. Désormais, à chaque fois que vous voulez traduire une page, vous disposerez toujours de la version anglaise d’un coté et de votre propre version de l’autre, de même les liens entre les différentes versions localisées seront automatiques et vous avez même la possibilité de localiser l’URL de chaque page comme bon vous semble. La fonctionnalité la plus intéressante est liée à la navigation : lorsque vous naviguez sur une version locale de MDN (disons, le français par exemple) et qu’un contenu n’est pas disponible dans cette langue (souvent matérialisé par un lien rouge), vous accèderez automatiquement au contenu en anglais avec un bandeau vous proposant directement de traduire ce contenu.
Concernant les templates personnalisés, l’équipe de développement a créé un langage de script entièrement basé sur JavaScript (exécuté coté serveur) qui porte le nom de KumaScript. En clair, c’est du JavaScript avec quelques extensions pour en faire un langage de gabarit autonome (précédemment, il s’agissait d’un langage basé sur Lua, peu ou pas extensible). Les API disponibles restent encore sommaires, n’hésitez donc pas à ouvrir des bugs si vous avez des besoins particuliers. Ce système de template permet de créer des automatismes et des gabarits faciles à réutiliser d’une page à l’autre et il y a beaucoup à faire en la matière.
Et après ?
Dans les prochains mois, de nouvelles fonctionnalités vont faire leur apparition. La semaine dernière, toute l’équipe MDN (rédacteurs et développeurs) ainsi que quelques contributeurs se sont réunis à Toronto pour planifier et prioriser ces améliorations, 3 jours intenses sous la direction d’Ali Spivak, la nouvelle « Product Manager » de MDN. La listes de toutes les idées que nous avons amenées est beaucoup trop longue pour tout vous mettre ici… disons simplement que l’équipe de développement a du boulot pour plusieurs années si personne ne les aide
Parmi les principales priorités, les éléments suivant sont ressortis et vont faire l’objet d’un effort particulier dans les prochaines semaines/mois :
1. Sécurité
La plateforme étant encore jeune, certaines fonctionnalités ont besoin d’êtres sérieusement passées au crible des questions de sécurité. Ainsi, des filtres vont être appliqués ou améliorés pour rendre l’édition à la fois plus souple et plus sur (en particulier pour lutter contre les attaques de type CSRF), la politique de sécurité actuelle étant de tout interdire par défaut (script, iframe, etc. ne sont pas permis, même pour des usages légitimes). De même, l’envoi de fichiers n’est pour l’instant pas permis mais tout cela va rapidement changer.
2. Exemples de codes
Un travail de fond va être réalisé pour permettre aux utilisateurs d’embarquer des exemples de code actifs et modifiables (à la jsFiddle ou dabblet), le tout dans des conditions garantissant la sécurité des utilisateurs et des contenus. C’est sans doute le plus gros chantier des mois à venir (et celui que j’attends le plus impatiemment pour pouvoir déployer des exemples dans la doc SVG ;).
3. Localisation
Les outils pour la localisation vont être très largement améliorés (oui, c’est possible). Il s’agit d’un travail qui va s’étaler sur plusieurs mois (voire plusieurs années). Une des premières améliorations va être la possibilité de choisir la langue d’origine pour réaliser une traduction (aujourd’hui, c’est forcément l’anglais). Dans le même temps les bases d’un tableau de bord vont être posées pour permettre de plus facilement prioriser et planifier les pages à traduire.
4. API d’écriture
Pour le moment, Kuma n’offre qu’une API en lecture des contenus de MDN. Afin de rétablir le fonctionnement de certains outils et permettre le développement d’outils de consultation et d’édition tiers, une API permettant d’écrire du contenu dans MDN va être mise en œuvre. L’objectif est de permettre aux personnes voulant éditer du contenu avec leur éditeur de textes préféré de le faire ou bien de permettre à certains projets utilisant d’autres systèmes de wiki (GitHub par exemple) de partager leurs contenus facilement sur MDN (c’est typiquement le cas du projet JetPack pour Firefox).
5. Présence dans les moteurs de recherche
MDN souffre encore de certains manques qui grèvent son indexation par les moteurs de recherche. Les points les plus évidents vont être rapidement améliorés : qualité des méta-données (titre et description) et ajout d’un sitemap.
6. Recherche et tableau de bord
Un travail de fond va être engagé afin d’améliorer sérieusement la qualité des recherches sur MDN (techniquement parlant, cela va passer par le déploiement d’une base de données Elastic Search) et permettre de poser les bases techniques permettant de créer un véritable système de tableau de bord pour les éditeurs. Ce tableau de bord permettra dans un premier temps aux éditeurs de suivre et filtrer les contenus qui les intéressent pour, dans un second temps se transformer en un véritable système d’échange, de communication et de coordination (mais tout ça va prendre du temps, il va falloir être patient).
Mais encore…
Tout cela n’est que le début. Bien d’autre demandes ont été émises, parmi lesquels ont été priorisées les suivantes :
- Localisation complète du système de tags
- Possibilité de déplacer des ensembles de pages en une fois
- Améliorer les liens croisés entre documentation et démos
- Mettre en base de données, automatiser et partager les tables de compatibilité navigateurs
- Améliorer le bandeau de localisation des articles non-traduit pour directement choisir la langue d’affichage alternative
Et bien plus encore… Si cela vous intéresse, vous trouverez toutes les notes de la semaine de travail sur ce Pad : https://etherpad.mozilla.org/MDN-Toronto-2012
Enfin, n’hésitez pas à ouvrir des bugs si vous avez des besoins ou des fonctionnalités que vous souhaiteriez voir dans MDN. L’équipe a profité de la réunion de la semaine dernière pour revoir son système de triage et de priorisation des bugs afin que leur traitement soit plus simple et plus compréhensible par tout le monde. L’opportunité de travailler sur un redesign de MDN a également été évoqué, cela fera l’objet d’un projet à part entière dans les prochains mois.
Ce n’est certes que le début et nul ne sait comment tout ça va évoluer, mais les choses sont bien engagées et MDN est bien parti pour devenir la documentation de référence du Web ouvert en étant désormais lui-même ouvert et accessible à tous. Je profite de l’occasion pour remercier chaleureusement toute l’équipe de développement de Kuma : Luke Crouch (groovecoder), Les Orchard (lmorchard), David Walsh (darkwing) et James Bennett (ubernostrum). Ils font un travail remarquable qui mérite d’être souligné.
Bonne documentation (^_^)