Par ryuran le mardi, 28 avril 2009, 14:14 - Informatique
Cela fait pas mal de temps que je n'ai pas poster un nouvel article. Aujourd'hui j'ai trouver de quoi vous parler car ayant parcouru le web à la recherche de la solution miracle je n'ai trouvé qu'une réponse :
Il n'existe pas de solution correct pour permettre aux utilisateur de saisir du text riche.
J'ai chercher toutes les possibilité de bbcode à Markdownen passant Textile, Wikitext, zCode et même du coté des wyswyg et des nettoyeurs de xhtml.
BBcode
BBcode qu'est ce que c'est ?
Cette syntaxe était à l'origine très basique. Elle permettait simplement de mettre le texte en gras, souligner, italique ou insérer un lien ou une image. Tout ceci grâce à de balises semblable au html mais avec de
crochets.
Exemples
BBcode :
[b]texte en gras[/b]
html équivalent :
<b>texte en gras</b>
Avantages
- Le BBcode est fait pour être simple pour les utilisateurs (pas besoin de connaitre le html).
- Il est utilisé par la grande majorité des forum à travers le web.
Inconvénients
- Il y a plus d'une vingtaine de balises différentes, soit un nombre plus important que les balises xhtml de mise en forme simple usuelles.
- Le code est difficile à saisir à cause des crochets "[" et "]" plus difficiles d'accès que les "<" et ">" du html.
- BBcode est orienté "mise en forme" et non pas "sens sémantique". Même si les dernières versions changent ce problème, les utilisateur continueront à ne pas prendre en compte le sens sémantique des balises.
- Les parseurs usuels génèrent du xhtml invalide pour la plus part et ne corrige pas vraiment le chevauchement de balises (
[b]texte [i]en gras[/b] ou en italique[/i] qui est faux).
- Les parseurs sont lourds et utilisent trop d'expression régulières. Et plus encore quand on demande que le code généré soit correct (je parle d'expérience).
- Il existe de nombreuses variantes (entres différents forums).
Syntaxes Wiki
Les syntaxes Wiki qu'est ce que c'est ?
Les wikis utilisent des langages de balisage léger. Il y en existe plusieurs dont les plus connu et plus utilisés qui sont wikiText, Textil et Markdown.
La syntaxe n'utilise pas de balise comme le bbcode ou le html. Il s'inspire de la mise en page que l'on fait habituellement sur un éditeur de texte simple comme le bloc note (notepad).
Exemple avec markdown
syntaxe :
__texte mis en importance__
html équivalent :
<strong>texte mis en importance</strong>
Avantages
- Très simple d'utilisation. On s'y fait vite.
- Très complet.
- La syntaxe source est facile à lire et n'est pas pollué de balisage.
Inconvénients
- Il existe de nombreuses variantes.
- Les parseurs sont aussi peuplés d'innombrable expressions régulières.
- Trop complet pour le contenu d'un forum.
zCode (le BBcode XML)
zCode qu'est ce que c'est ?
Le zCode à été créer par le site du zéro pour l'édition de leurs articles ainsi que sur leur forum.
C'est simplement un xml inspiré du bbcode. Une sorte de HTML simplifié et surtout en français.
Exemple
zCode :
<gras>texte mis en importance</gras>
html équivalent :
<strong>texte mis en importance</strong>
Avantages
- Le zCode est fait pour être simple pour les utilisateurs (pas besoin de connaitre le html).
- Le sens sémantique est respecté.
- Le code est en français.
- L'utilisation des chevrons ("<" et ">") rend la saisie plus facile comparé au BBcode.
- Donne la possibilité d'utiliser un parseur xml (avec php5 par exemple) donc moins d'expressions régulières.
- On peut aussi l'utiliser de différentes façon comme tout ce qui est structuré avec du xml.
Inconvénients
- Il est utilisé uniquement par le site du zéro (et par certains de leurs disciples) .
- Le xml interdit l'erreur de syntaxe (corriger les erreurs de syntaxe via le parseur ou alerter l'utilisateur si il y a une erreur).
- Code en français oui mais pour un site multilingue il faudra plusieurs versions différentes.
- La syntaxe n'est pas bien différente du html (c'est un site de formation à la création de site web) donc facile d'utilisation pour les membres. Il faudrait voir si les autres s'y retrouvent.
WysWyg (What you see what you get)
Un éditeur WysWyg qu'est ce que c'est ?
C'est un éditeur entièrement visuel. C'est à dire que la mise en forme ce fait en live comme dans un logiciel de traitement de texte classique.
Avantages
- Les utilisateurs n'ont besoins d'aucune connaissance particulière.
- Aperçu direct du texte en cours de rédaction avec la mise en forme final.
Inconvénients
- Nécessite javascript (ou plugin/extention pour le navigateur).
- Le code généré est souvent invalide.
- Problème de sécurité (html).
la variante WysWyM (What you see what you Mean)
C'est comme un WYSWYG mais plus orienté vers la sémantique que vers la mise en forme. Pour l'instant il n'en existe qu'un seul, WymEditor. Il est bien avancé mais pas encore aboutis.
Conclusion
Aucune solution ne se démarque par rapport aux autres. Elles ont tous des avantages et des inconvénient. Bien que le zCode est une bonne idée elle est plus avantageuse pour les programmeurs que pour les utilisateur.
La meilleur solution à mon avis
Il faudrait un code xhtml simplifié (ou un nouveau code xml) qui n'aurai pas la limite de la langue qu'à le zCode. Mais entièrement saisis pas WYSWYG pour ne pas demander aux utilisateur d'apprendre un langage.
Avantages
- Les utilisateurs n'ont besoins d'aucune connaissance particulière.
- Aperçu direct du texte en cours de rédaction avec la mise en forme final.
- Le sens sémantique est respecté (en fonction du parseur).
- Sans javascript l'utilisation des chevrons ("<" et ">") rend la saisie plus facile comparé au BBcode.
- Donne la possibilité d'utiliser un parseur xml (avec php5 par exemple) donc moins d'expressions régulières.
- On peut aussi l'utiliser de différentes façon comme tout ce qui est structuré avec du xml.
Inconvénients
- Les personnes ne pouvant pas bénéficier de javascript seront désavantagées.
- Il faudrait que le système soit normaliser et entretenu par une communauté (penser au plugins pour forums existant).
Remarque : sur le site du zero il y a un aperçu dynamique ce qui est une bonne alternative au wyswyg.