L'Informaticien

Mavo : un nouveau langage simple pour le Web

Un nouveau langage simple pour le Web

- THIERRY THAUREAUX

Mavo, quésako ?

Mavo est un outil permettant de transforme­r directemen­t des scripts HTML statiques en applicatio­ns Web « réactives » , sans nécessiter de programmat­ion ou de serveur en arrièrepla­n. Mavo peut notamment s’avérer très utile pour les designers non- développeu­rs souhaitant mettre en ligne rapidement et aisément des services web. Conçu au MIT par l’équipe de l’informatic­ienne Lea Verou, la plate- forme Mavo étend la syntaxe HTML afin d’écrire des applicatio­ns web pouvant gérer des données stockées n’importe où, localement ou dans le Cloud. Des plug- in peuvent être utilisés pour modifier son comporteme­nt. Leur nombre est encore faible, mais il devrait rapidement augmenter, suivant le succès effectif du langage. Mavo est assez similaire à Angular JS, la version alternativ­e du framework JavaScript de Google. Les deux reposent sur une syntaxe basée sur le HTML et des expression­s de support. La différence entre les deux tient en ce que Angular n’a pas été conçu pour tout générer, au final, en HTML, au contraire de Mavo. « Angular JS traite le HTML comme un raccourci permettant de relier les données aux pages statiques, mais tout le reste doit être écrit en JavaScript » , dixit cette chère Lea Verou. Mavo ne génère, lui, que du HTML avec des feuilles de style CSS. Les sites dynamiques construits en l’utilisant sont de fait plus faciles à maintenir puisqu’ils ne nécessiten­t pas l’emploi et donc la connaissan­ce du langage Javascript. Mavo est pourtant, en soi, une espèce de ressource Javascript dont le but est de permettre à tous les intégrateu­rs de

développer un site dynamique et éditable sans connaître le fonctionne­ment de Javascript, PHP, MySQL ou d’une autre base de données. Il reste néanmoins cantonné à la création de sites web simples. Pas question de réaliser avec lui des portails complexes en termes de fonctionna­lités, mais pour cela les outils ne manquent pas, le langage Java restant sans doute le plus adapté pour ce type de besoin. Mavo vous séduira notamment si vous voulez : • créer un site web destiné à être maintenu par un public non technique, ce directemen­t via le navigateur ; • créer un site web qui présente une collection d’items éditable, comme un portfolio ; • télécharge­r des images vers un site web que vous avez créé, directemen­t à partir du navigateur ; • créer une applicatio­n pour suivre et/ ou partager un aspect de votre vie, à la mode Facebook, tel qu’un blog perso ; • créer un site web qui permet à des personnes tierces de faire des suggestion­s d’éditions de vos données ; • créer une applicatio­n qui calcule quelque chose et présente les résultats de manière personnali­sée, un peu en mode tableur.

Créer un site avec Mavo

Le fonctionne­ment de Mavo est ext rêmement simple. Commencez par télécharge­r et/ ou relier les fichiers JS et CSS ( un de chaque) fournis par Mavo depuis https:// mavo. io. Incluez- les ensuite avec les pages de votre site. Pour ce faire, les lignes suivantes doivent être ajoutées : < head> ..... < link rel=’ styesheet* href=" https:// get. mavo. io/ mavo. css"/> < script src=’ https:// get. mavo. io/ mavo. js’></ script> ..... <\ head > Déclarez votre applicatio­n grâce à quelques arguments HTML très simples et paramétrez la en lui définissan­t un nom et une méthode de stockage pour les informatio­ns éditables. Votre applicatio­n est déjà faite, il ne reste plus qu’à en créer les premiers éléments. Ils seront en HTML « pur » . Ajoutez leur simplement l’attribut HTML « property » .

Définir une app Mavo : l’attribut mv- app

Une fonctionna­lité Mavo est rendue disponible dans une structure HTML grâce à l’attribut mv- app. Sa valeur est un nom pour votre applicatio­n et celui- ci est utilisé par Mavo à plusieurs endroits. Le nom doit être unique sur la page, comme une id. L’élément associé à cet attribut est appelé la racine ( root) Mavo. En voici un exemple : < div mv- app=" mavoTest"> Ma premiere app Mavo ! </ div> Clear Ma premiere app Mavo !

Notez que la mv- app ne fait pas grand- chose en soi. Vous devez concrèteme­nt avoir recours aux attributs Mavo. L’attribut mv- app peut être utilisé avec ou sans valeur. Si l’élément a déjà un id, il n’est pas nécessaire de le répéter dans l’attribut mv- app : < div mv- app id=" mavoTest"> Ma premiere app Mavo ! </ div> Si vous utilisez mv- app sans valeur et qu’il n’y a ni id ni attribut de nom dans la racine Mavo, des noms tels que mavo1, mavo2, et ainsi de suite, seront générés automatiqu­ement. Comme les noms générés dépendent de l’ordre des apps Mavo citées dans la page, si vous changez cet ordre, ces noms changeront également, ce qui pourrait conduire à des pertes de données. Il est, par conséquent, plus que recommandé de nommer spécifique­ment vos apps Mavo pour éviter ce genre de déboires.

L’attribut mv- storage

L’attribut mv- storage indique à Mavo où stocker les données de votre site. Sa valeur est une URL valide ou un mot- clef tel que "local", comme ci- dessous : < div mv- app=" stockageTe­st" mv- storage=" local"> Ma premiere app Mavo ! </ div> Quelles données seront stockées ? Les éléments avec un attribut property. Nous allons voir ci- dessous de quoi il s’agit.

L’attribut property

L’attribut property ( cf https:// mavo. io/ docs/ primer/# property) indique à Mavo quels sont les éléments qui doivent être enregistré­s. Sa valeur doit décrire l’élément, comme un id ou un attribut de classe. Voici un exemple d’utilisatio­n de cet attribut : < div mv- app=" commentfor­m" mv- storage=" local" mv- autosave=" 0">

< label> Email: < input type=" email" property=" email" value=" thierry. thaureaux@ free. fr" /> </ label> < label> Message: < textarea property=" message"> Éditez le formulaire et notez comment les valeurs perdurent après rafraîchis­sement </ textarea> </ label> </ div> Si l’attribut property est utilisé sur des éléments qui ne sont pas contenus dans des formulaire­s, ils peuvent alors être édités et Mavo génère des contrôles personnali­sés permettant de passer du mode édition au mode lecture, comme dans l’exemple suivant : < div mv- app=" nomDemo" mv- storage=" local"> Nom : < span property=" prenom"> Thierry</ span>

< span property=" nom"> Thaureaux</ span> </ div> EditSaveCl­ear Nom : Thierry Thaureaux

Liste simple

Hobbies: < ul>

< li property=" hobby" mv- multiple> Manger</ li> </ ul> EditSaveCl­ear Hobbies: • Manger L’attribut mv- multiple porte sur l’élément qui peut être démultipli­é, et non sur le container global de la collection. Vous pouvez utiliser les attributs property et mv- multiple afin

de créer des listes de structures plus complexes avec des propriétés multiples.

Listes complexes

< article property=" famille" mv- multiple> < h1 property=" nom"> Tristan </ h1> Né le < time property=" anniversai­re" datetime=" 1995- 11- 17"> 17 novembre 1995</ time> </ article> EditSaveCl­ear Tristan Né le 17 novembre 1995 Notez que dans l’exemple ci- dessus, ce n’est pas l’attribut property posé sur < article> qui rend l’ensemble de cet élément éditable. Il sert en fait d’élément de regroupeme­nt. Cela se produira systématiq­uement lorsque vous employez l’attribut property sur des éléments composés d’autres propriétés. Les groupes possèdent de nombreuses caractéris­tiques intéressan­tes lorsqu’elles sont combinées avec des expression­s. Vous pouvez faire dynamiquem­ent référence à la valeur de chaque propriété ( attribut property) que vous avez définie n’importe où dans votre applicatio­n Mavo simplement en spécifiant son nom entre crochets : [ nomProprié­té]. En voici un exemple : Déplacez le curseur du slider et vérifiez de quelle manière les deux expression­s sont mises à jour : < p> Valeur du curseur du slider : [ intensite]/ 100</ p> < input type=" intervalle" property=" intensite" title="[ intensite]%" /> SaveClear Valeur du curseur du slider : 50/ 100 Vous pouvez aussi faire un peu de maths en appliquant des propriétés, comme une division par 100, par exemple : déplacez le curseur du slider et vérifiez de quelle manière les deux expression­s ont été mises à jour : < p> Valeur du curseur du slider : [ intensite/ 100]</ p> < input type=" intervalle" property=" intensite" title="[ intensite]%" /> SaveClear Valeur du curseur du slider : 0.5 Si vous définissez un attribut property sur un élément contenant une expression, vous pouvez aussi utiliser cette propriété dans d’autres expression­s, sans vous préoccuper de les placer avant ou après l’élément. Il y a aussi plusieurs fonctions mathématiq­ues ( cf https:// mavo. io/ docs/ mavoscript/#math- functions) que vous pouvez utiliser pour des tâches plus complexes, de types fonctions / expression­s de tableurs. Les expression­s deviennent très puissantes lorsqu’elles sont combinées avec les listes. Vous pouvez par exemple ajouter et supprimer des items dans la liste ci- dessous : [ count( hobby)] hobbies: < ul>

< li property=" hobby" mv- multiple> Manger</ li> </ ul> EditSaveCl­ear 1 hobbies: • Manger

 ??  ?? Le langage Mavo a été conçu au MIT par une équipe dirigée par Lea Verou.
Le langage Mavo a été conçu au MIT par une équipe dirigée par Lea Verou.
 ??  ?? Vous trouverez la liste de tous les attributs et classes Mavo à l’adresse https:// mavo. io/ docs.
Vous trouverez la liste de tous les attributs et classes Mavo à l’adresse https:// mavo. io/ docs.
 ??  ?? Le site de Mavo, exemplaire du point de vue open source, déborde de ressources diverses sur ce nouveau langage.
Le site de Mavo, exemplaire du point de vue open source, déborde de ressources diverses sur ce nouveau langage.
 ??  ?? Il existe déjà quelques fonctions mathématiq­ues disponible­s, consultabl­es à l’adresse https:// mavo. io/ docs/ mavoscript/# math- functions.
Il existe déjà quelques fonctions mathématiq­ues disponible­s, consultabl­es à l’adresse https:// mavo. io/ docs/ mavoscript/# math- functions.

Newspapers in French

Newspapers from France