Wikini

SuggestionsReglesDeFormatage

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-197-185-157.compute-1.amazonaws.com

Ici vos suggestions à propos des ReglesDeFormatage adoptées par WikiNi



En introduction on pourra voir : les ReglesDeFormatageDesWikis

Sommaire :

Suggestions faisant l'objet d'une page externe :



Les règles de marquage de Wikini sont déroutantes pour un utilisateur fréquent de wiki. Il est non standard .. Pour peu qu'un standard existe. Je pense qu'un bon formatage est celui proposé par le reStructuredText qui permet de faire un formatage visuel de texte sans balise, et possède de nombreuses moulinettes pour transformer le texte en formats divers. Voir http://docutils.sourceforge.net/rst.html


WikiNi, héritant de son ancêtre WakkaWiki, est doué de ReglesDeFormatage inhabituelles pour un moteur de Wiki.
Quel est l'intérêt d'adopter des règles inhabituelles ?
Y-a-t'il des consensus pour des règles habituelles ?
Peut-on écrire des propositions de changement des régles de WikiNi ?
Un changement des règles est-il possible simplement d'une version de WikiNi à l'autre ?


Une balise de code "logique" ?

La balise de code définie n'est pas très pratique, car elle crée une zone de texte rectangulaire assez importante, avec une glissière..enfin bon, à l'usage pas pratique.
Comme le wiki dont je m'occupe contient beaucoup de code, il s'est avéré que la balise faite de deux dieses est beaucoup plus efficace et propre, mais un problème se pose alors : le code est interprété par le wiki ce qui donne des choses assez bizarres.. :-/
Serait-il possible de remédier à cela ? Soit en faisant une balise de code plus à la manière des doubles dièses, soit en désactivant l'interprétation dans les doubles dièses..
-- Tortoose

Oui, je pense que le système d'affichage du code est perfectible... des solutions sont discutées sur la page AdaptationDeLaTailleDesFenetresDeCode. En fait il faudrait repenser en même temps le système des pourcentages et des dièses. Tes suggestions sont les bienvenues.
Mais il faudrait tout d'abord s'entendre sur les besoins : je vois bien dans l'idéal :
On peut envisager aussi de ne retenir que ## avec du code non interprété... qu'en pensent les autres ?
-- CharlesNepote


Cela me paraitrait vraiment parfait. Personnellement ma préférence (pour des raisons de lisibilité et de mise en page) va vers le code affiché avec les balises ## et non pas les cadres.
--Tortoose

Je verrais bien du ## non intérprété également. -- DavidDelon

Copier/coller de discussions Jabber sur le sujet :
[06:03:55] <Charles Nepote> tiens il y a un autre truc très pénible c'est sur l'utilisation des ## .. ##
[06:04:13] <Charles Nepote> le texte à l'intérieur ne devrait subir aucun formatage
[06:04:45] <Charles Nepote> on est parfois obligé de rajouter des "" "" à droite et à gauche...
[06:05:55] <progfou> ça c'est pas trop compliqué à régler a priori
[06:06:34] <progfou> les ## sont actuellement gérés de manière non contextuelle : une bascule qui change entre 0 et 1 chaque fois qu'on les rencontre ; 0 => <tt> et 1 => </tt>
[06:07:12] <progfou> il suffit de les gérer de façon contextuelle : les chopper avec une expression régulière et reprendre le milieu tel-quel
[06:07:16] <Charles Nepote> le pb c'est qu'il y aura modif des règles et donc des passages qui cont devenir foireux : mais il vaut mieux le faire pendant qu'on a pas encore 10 000 000 d'utilisateurs...
[06:08:21] <progfou> on peut faire un truc pour dépanner : gérer le cas particulier de ##""...""## en éliminant les ""
[06:08:35] <progfou> ça ne règlera pas tout mais au moins la grosse majorité je pense
[06:10:38] <Charles Nepote> je préfère faire propre : changer la règle sans faire d'exception quitte à publier un petit script SQL capable de corriger semi-automatquement les pbs induits par le changement
[06:13:30] <progfou> en fait le code actuel, fonctionnant avec des bascules, permet de limiter les appels récursifs au callback
[06:13:52] <progfou> mais en même temps, c'est un peu lui qui nous piège quand on oublie de fermer une balise ou qu'on ne le fait pas dans le bon ordre
[06:14:15] <progfou> si c'était pleinement récursif, les balises ne pourraient pas se croiser par exemple
[06:14:26] <Charles Nepote> oui
[06:15:09] <progfou> on pourrait avoir // ** ** // mais pas // ** // **, car le ** au milieu des // // ne matcherait pas un **...**
[06:15:45] <progfou> tandis qu'actuellement ça peut tout à fait arriver ! il n'y a pas de contrôle de syntaxe strict
[06:16:48] <Charles Nepote> faut-il refuser les erreurs ou les corriger ?
[06:17:02] <progfou> bonne question...
[06:17:21] <progfou> dans tous les cas il faut d'abord être capable de déterminer qu'il y a une erreur
[06:17:25] <progfou> c'est le plus dur en fait
[06:17:35] <progfou> ensuite refuser ou corriger c'est assez trivial je pense
[06:18:00] <progfou> quoi que corriger peut être assez subtil aussi...
[06:18:16] <progfou> mais ça revient au même problème : être capable de reconnaître l'erreur
[06:18:23] <progfou> si on comprend l'erreur on peut la corriger
[06:18:33] <progfou> sinon on ne peut que corriger de façon arbitraire
[06:19:21] <Charles Nepote> il faudrait jeter un oeil au code d'olivier meunier qui a résolu ces pbs semble-t-il.
[06:20:56] <Charles Nepote> http://www.neokraft.net/sottises/wiki2xhtml/
[06:24:22] <progfou> voici les modifs pour ##...##, jette un oeil et je commit :
RCS file: /cvs/wikini/wikini/formatters/wakka.php,v
retrieving revision 1.35
diff -u -b -B -r1.35 wakka.php
--- formatters/wakka.php        5 Dec 2004 22:49:16 -0000       1.35
+++ formatters/wakka.php        15 Dec 2004 23:20:45 -0000
@@ -71,12 +71,6 @@
                       static $underline = 0;
                       return (++$underline % 2 ? "<u>" : "</u>");
               }
-               // monospace
-               else if ($thing == "##")
-               {
-                       static $monospace = 0;
-                       return (++$monospace % 2 ? "<tt>" : "</tt>");
-               }
               // Deleted 
                else if ($thing == "@@")
                {
@@ -141,6 +135,11 @@
               {
                       return $matches[1];
               }
+               // monospace
+               else if (preg_match("/^\#\#(.*)\#\#$/s", $thing, $matches))
+               {
+                       return '<tt>' . $matches[1] . '</tt>';
+               }
               // code text
               else if (preg_match("/^\%\%(.*)\%\%$/s", $thing, $matches))
               {
@@ -346,9 +345,10 @@
$text = preg_replace_callback(
       "/(\%\%.*?\%\%|".
       "\"\".*?\"\"|".
+       "\#\#.*?\#\#|".
       "\[\[.*?\]\]|".
       "\b[[:lower:]]+:\/\/\S+|".
-       "\*\*|\#\#|@@|&#65533;&#65533;|__|<|>|\/\/|".
+       "\*\*|@@|&#65533;&#65533;|__|<|>|\/\/|".
       "======|=====|====|===|==|".
       "-{4,}|---|".
       "\n(\t+|([ ]{1})+)(-|[[:alnum:]]+\))?|".
[06:31:00] <Charles Nepote> ça à l'air d'aller ; et si on ajoute un <pre> en plus : return '<tt><pre>' . $matches[1] . '</pre></tt>'; ?
[06:31:57] <progfou> en ce qui me concerne, bof... le pre ne fait rien de spécial qui ne peut se faire via du CSS sur le style de tt, si ?
[06:33:21] <Charles Nepote> oui
[06:33:26] <Charles Nepote> Question :
[06:33:54] <Charles Nepote> que se assera-t-il si je met ##<b>salut</b>## ?
[06:34:09] <progfou> bonne question
[06:34:16] <progfou> même chose que avec ""...""
[06:34:24] <progfou> il faut donc que j'encadre de htmlentities
[06:34:25] <Charles Nepote> salut en gras ou le code ???
[06:34:33] <progfou> gras
[06:34:40] <Charles Nepote> oui je pense...
[06:35:35] <Charles Nepote> ça devrait donc permettre d'écire n'importe quel code sans pb non ?
[06:35:49] <progfou> je vais vérifier pour le htmlentities, car il me semblait que htmlspecialchars suffisait à nos besoins...
[06:36:34] <progfou> oui, avec le htmlspecialchars/htmlentities => aucune interprétation car tout est protégé (< => &lt;)
[06:36:50] <Charles Nepote> ##echo $this->GetUserName()."<b>salut</b>";##
[06:36:51] <progfou> (ça manque sous Jabber d'ailleurs )
[06:37:19] <Charles Nepote> GetUserName ne sera pas en MotWiki hein ?
[06:37:23] <Charles Nepote> oui
[06:37:41] <progfou> là il faut vérifier l'ordre dans la liste des appels de la callback
[06:38:15] <progfou> il faut que je mette ##...## en premier dans la liste pour être certain qu'il n'y ait pas de sous-traitement avant je pense
[06:38:33] <Charles Nepote> oui
[06:39:33] <progfou> ton processLog sera bien utile pour vérifier tout cela...
[06:39:41] <Charles Nepote> oui
[06:41:00] <Charles Nepote> Je pense qu'il faut proposer ça avant de le lancer car il y a déjà du monde qui a contourné le problème : regarde par exemple : http://www.adminrezo.net/wakka.php?wiki=ActionBacklinks/raw
[06:41:21] <progfou> bon, le seul truc qui pourrait passer devant serait une paire de % %...
[06:41:34] <Charles Nepote> Les utilisateurs de WikiNi semblent utiliser régulièrement ##""xxxxxxxxxxxxxx""##...
[06:41:50] <Charles Nepote> oui pour % %
[06:41:54] <progfou> je ne peux pas le mettre au dessus des % % sinon on risquerait de se retrouver avec l'interprétation des ## dans des % %
[06:42:26] <progfou> pour ##""...""## oui, absolument, je suis le premier à l'utiliser courrament !
[06:42:38] <progfou> c'est pour cette raison que je te propose un hack spécifique pour ce cas là
[06:42:58] <Charles Nepote> oui : les % % doivent être le seul truc à ne rien interperter du tout
[06:43:40] <progfou> par contre, vu que les "" ne seront plus interprétées dans les ##, on ne pourra plus échaper un % % dans un ## avec des ""
[06:44:21] <Charles Nepote> à merde oui... comment faire ?
[06:44:22] <progfou> d'un autre coté on pourra toujours faire un ##%####%##
[06:44:41] <progfou> c'est moche... mais le cas est assez rare ÀMHA
[06:45:23] <progfou> et c'est pas vraiment pire que ##""% %""...##
[06:45:25] <Charles Nepote> pourquoi ne pas introduire un \ pour déspécialiser comme dans les regexp : de nombreux wikis font ça aussi
[06:45:45] <progfou> ça forcerait à gérer les \ tout au long du ##...
[06:46:06] <Charles Nepote> oui
[06:46:33] <progfou> ça forcerait tout le monde à changer tous les ## de leurs sites... bof...
[06:47:32] <progfou> éventuellement on pourrait laisser les "" interprétés dans ## comme ça l'est actuellement...
[06:49:09] <Charles Nepote> Je ne vois pas tout ça assez clair : il faudrait faire un récap avec les cas... et je fatigue un peu... (dodo) si tu veux en attendant on peut copier/coller la discussion sur le wiki pour mémoire ?
[06:49:31] <progfou> ouaip

Notes :
-- ProgFou

Après d'autres discussions :
[00:05:12] Pour les ## je pense qu'on devrait avoir :
%% bla ## bla ## %% ==> bla ## bla ## (dans un bloc)
et
Bla ## bla %% bla %% ## ==> Bla bla %% bla %% (inline)
[00:05:45] oui
[00:06:26] Le principe c'est que quand un caratère %% ou ## démarre, rien n'est interprété jusqu'à sa fermeture.

Le problème qui se pose c'est que de nombreux wikis sous WikiNi ont employé l'astuce d'utiliser des paires de doubles guillemets pour échapper des choses qui ne le sont pas actuellement entre des doubles dièses. La solution que je vois c'est la fabrication d'une action permettant des rechercher/remplacer. Ca pourrait donner quelque chose du genre :

Chaine recherchée : zzzz

Chaine de remplacement : xxxx

PageMot dans son contexteRemplacer par...Sél.
PagePrincipale
[Éditer cette page]
##Essai de zzzz##

En quelques minutes tous les rares problèmes de doubles guillemets dans des doubles dièses pourraient être résolus. Et cette action, réservée aux admins, aurrait bien d'autres utilités (par exemple corriger tous les "synthaxes" de Lordfarquaad ;).
Qu'en pensez-vous ?
-- CharlesNepote


Faire des tableaux

Souvent, nous avons besoin de mettre de l'information sous forme de tableau, serait-il possible d'envisager cette possibilité ?
-- FuRax37




Insérer des images, centrer le texte

Serait-il possible techniquement d'ajouter une règle de formatage pour insérer une image (par exemple, en donnant son URL d'une façon particulière, elle apparaîtrait alors dans la page générée).
Et aussi pour centrer du texte, comment faire?

--David VANTYGHEM (enlever ANTISPAM)

Pour les images, voir InclureUneImage et ActionAttach

Comment faire des manchettes de couleurs

J'utilise trois actions {{bandeN texte="AidE"}} avec N 1, 2 ou 3. Franchement méler action et style me gène. S'il n'y a pas de moyen plus élégant, je ferais taire mes scrupules -- FidelioEspoir

Des fonds multicolores

Pour des facilités de lecture, j' (et l'utilisateur avec moi !) aimerais pouvoir changer la couleur de fond plusieurs fois sur une même page (bien différencier les dialogues, les notes, les parties...). Je bricole donc les actions fonddebut et fondfin qui insère les balises <div>. Ca m'oblige à créer une myriade de style de toutes les couleurs...J'ai vraiment l'impression de faire du bricolage ! Existe-t-il une solution plus élégante ? Dans les formatters qui me paraissent le lieu le plus naturel pour cela ??? -- FidelioEspoir

Signature des utilisateurs inscrits

Pour faciliter la lecture (qui a fait quoi) ne pourrait on pas inclure une commande de signature (comme sur Wikipedia par exemple)


Balise pour les citations

Il pourrait être intéressant d'avoir une balise pour les citations (<blockquote> en html). Le consensus voudrait que ce soit le '>' en début de ligne (comme pour les mails.
Par exemple :
> Winiki est très simple à installer
> et très facile à utiliser.
pourrait s'afficher comme ceci :
Winiki est très simple à installer et très facile à utiliser.
-- NicolasArnaud


Ceci est un encadré pour :
  • mettre du texte en relief
  • présenter le sommaire d'une page
  • résumer une page, ajouter des détails, des anecdotes, etc.

Bloc de texte du document (DIV)


Je propose d'ajouter la possibilité d'insérer une partie de la page dans un passage <div> (pour ceux qui ne connaissent pas Html : cela regroupe une partie quelconque de la page dans un bloc dont on peut modifier l'aspect). Les applications possibles sont les suivantes :
  • texte encadré comme dans le cadre ci-contre
  • créer des pages en deux colonnes comme ci-dessous
  • rassembler dans un même bloc des menus ou entrées de menus lorsqu'il sera possible d'éditer un peu la structure de la page (voir LaurentLunatiSkin)
  • transformer facilement (?) une page en présentation type Powerpoint avec l'outil S5 d'Eric Meyer, il faudrait dans l'idéal juste écrire une ActionViewAsSlideShow? qui ajouterait le code XHtml nécessaire autour de la page
  • ajouter des blocs servant uniquement à faire de l'esthétisme (images de fond, coins arrondis, etc.) comme dans le jardin zen CSS
Ceci permettrait donc notamment d'agrémenter le texte en coupant l'aspect linéaire classique des Wikis (il serait donc plus agréable à lire) et ouvrirait la porte à la création de présentations avec des outils open source et en mode Wiki, donc très facilement.

Exemple de texte en deux colonnes :
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

On pourrait pour cela opter pour une syntaxe du genre :
============
(contenu du passage)
============

Donc au moins 7 signe = pour le distinguer des titres. A moins de préférer un autre signe, mais je trouve que dans l'alignement des = on retrouve bien l'idée du découpage de la page.
On aurait la possibilité d'ajouter une ou plusieurs classe(s) derrière les premiers = :
============ in-frame right
(contenu du passage)
============

ou un identifiant avec une syntaxe du genre id=ident1 en guise de classe. Il faudrait pour cela annuler l'effet des retours chariot en début de bloc et derrière le bloc afin de pouvoir aérer le texte brut sans effet dans la page.
Wikini viendrait avec quelques classes prédéfinies :
  • left et right pour choisir le côté
  • in-frame pour un encadré (type float)
  • in-column pour des colonnes (hum, plus compliqué à expliquer !)
  • in-layout pour les menus (à l'extérieur de la zone de texte de la page)
  • slide pour un transparent de présentation
On aurait alors plus qu'à faire des combinaisons : in-frame left pour un encadré à gauche, in-column right pour la colonne de droite, etc.

-- JmPhilippe
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]