projets/client_dokuwiki.txt · Dernière modification: 07/05/2005 00:19

EN: rebol.com - rebol.org - rebol.net -
FR: Rebol Documentation Project - forum RebelBB - rebol-france.org - forum codeur -

 

Préparation d’un client dokuwiki en rebol.

Rapidement, possibilités techniques :

  • parser l’html, utiliser les formulaires, peut-être un lourd, mais très rapides à mettre en place.
  • utilisation de fonctions d’aide à l’édition.
  • prévisualisation simplifiée dans la partie gauche de l’écran.

A faire :

  • gestion en mode texte.
  • ajout de boutons d’aide à la rédaction.
  • parsing de la syntaxe.
  • prévisualisation (ça risque d’être absolument lent …)
  • cache local, pour naviguer même hors ligne.
  • enregistrement en brouillon possible.

Sources d'inspirations possibles et projets proches :

  • MDP-GUI
  • Lecture-forum
  • IDE Rebol
  • Uniserve
  • WikiDoc ???
  • MoonEditor

:-D Les sources! http://dev.splitbrain.org/reference/dokuwiki/nav.html?_functions/index.html

Etapes

Cahier des charges actuel :

On ouvre l’application

on a une liste des documents en cours de travail

on en choisit un

le blocage s’active

le contenu du fichier est chargé.

en mode wikiformat avec les balises wiki. On a une prévisualisation du document en rebolVID à coté de la zone de saisie (système proche de MDP-GUI ou MD2-IDE)

Une fois l’édition terminée on appuie sur le bouton send qui va se charger de la modif au serveur. (en passant par le script php et les paramètres de formulaire)

Description de l’interface :

  • au dessus, la série de boutons pour insérer les balises du format dokuwiki.
  • zone de saisie a gauche.
  • zone de prévisualisation à droite.

y a envoyer, droits d’acces, prévisualiser, fermer etc.. Il faut prévoir à toutes les étapes une IHM solidaire qui informe simplement mais efficacement l’utilisateur sur ce qu’est en train de faire le programme.

Etapes de conception :

récupération du code source de la page (aux codages html près)

;ONE-LINER Terrible !
code: read http://www.rebolfrance.info/rebolfrance.info?do=export_raw

préparation de l'interface :

;===== récupération du code source de la page (aux codages html près) =====
code: read http://www.rebolfrance.info/rebolfrance.info?do=export_raw 
 
;===== préparation de l'interface: =====
view layout [across
   btn: style btn 30x20
   btn "B"
   btn "I"
   btn "U"
   btn "<>"
   btn "H1"
   btn "H2"
   btn "H3"
   btn "H4"
   btn "H5"
   btn "<-"
   btn "->"
   btn "12"
   btn ".."
   btn "__"
   btn "Im"
   btn "Sg"
   return
   area 400x600 (code)
   box black 400X600 "Prévisualisation"
   ]

Activer le blocage d'édition.

 Comprendre comment ce blocage se fait en php.
 Création ou modification d'un fichier, ou des droits... le code php est à explorer.

4. Formater le contenu de cette page dans une widget de prévisualisation (basée sur box VID composée).

5. Envoyer le résultat sur le site par formulaire.

6. Déblocage de la page.

rêvons un peu :

Ouverture du client dokuwiki.

Sélection du fichier à modifier.

Une alerte informe que “le fichier est en cours de travail par pseudo143, voulez vous le rejoindre ???”

Après confirmation le document peut être édité en mode shared (protocole restant à détailler : ouverture d’un mini chat, confirmation obligatoire des deux ? etc…). De l’autre coté le co auteur qui a eu la primauté de l’édition est prévenu qu’un utilisateur le rejoint. L’auteur initial devient le rédateur en chef et a comme pouvoir par exemple d’envoyer à tout moment le texte au serveur web, il peut aussi exclure un co-redacteur qui est pas gentil/actif/productif (bref méchant/contre-productif)1) jusqu’à ce qu’il décide de se déconnecter auquel cas les droits sont transféres automatiquement au rédacteur n°2 tous les clients de corédaction reçoivent l’ordre de changer de serveur (tout ceci se fera bien sûr dans la transparence la plus totale on pourra afficher un message du genre “Le rédacteur en chef a changé c’est maintenant Johnatemps”) (une fenêtre de chat peut même être réalisée pour faciliter le partage de l’information voir même servir d’extension à l’utilisation d’un autre moyen de communication temps réel comme skype)

Alors là mes amis on atteint un sommet dans le genre. Pas facile à mettre en place du tout et beaucoup de travaux de recherche seront nécéssaires mais à mon avis cela pourrait être un très bon moyen de dynamiser les travaux en rebol.

Une idée qui me vient en réfléchissant sur le mode shared editing et qui pourrait être la premiere pierre de cet edifice:

On peut toujours faire du compositing pour la zone de saisie de texte partagée.

On prend une box VID standard équipée d’une sous box Vid Standard dont le fond est blanc comme celui de la première box. Cette sous box a une taille variable dont les offset sont calibrés sur une scrollbar dans la box 1

Quand l’utilisateur clique dedans ca crée une box que l’on place en 0×0 ou à la suite du texte, avec une couleur de fond et un curseur qui clignote tu tapes ton texte et au fur et à mesure ta boite de saisie grandit. Si une zone de texte existe déjà on se contente de placer le focus dessus. Le logiciel envoie aux co rédacteur la position des boîtes et reçoit la position des boîtes en temps réel pour speeder la chose un mini protocol dans la veine de REBOL et qu’on sait si bien faire ferait merveille.

On pourrait aussi employer comme pont de communication uniserv pour profiter d’une réelle vitesse de traitement.

Comme dans MoonEditor chaque utilisateur choisit un nickname et une couleur de fond.

Quand on appuie sur le bouton “Send” le document est verrouillé par l’interface pour que les coauteurs ne puissent plus le modifier il est envoyé au serveur web.

Ca simulerait parfaitement l’effet recherché.

discussion :

johnatemps et shadwolf ont rédigé ce document avec l’aide de MoonEditor (http:>moonedit.org) un dimanche soir le 6/02/2005. Soir Mythique où l’on a découvert et testé l’utilité de ce logiciel. (Serveur installé chez shad) Le moins qu’on puisse dire c’est qu’on a été totalement séduit par les possibilités qu’il offre. Nous avons pris un très très grand plaisir en vivant cette expérience inédite. Cela offre une grande productivité, par une addition des idées et compétences de chacun.

Pour donner un ordre d’idée, cette séance a duré 1h15, le texte a été saisi environ à 50-50, et l’équivalent du texte actuel a été supprimé. Une autre possibilité serrait de l’utiliser dans le cas de coding partagé en REBOL !!! C’est géant: on a vraiment l’impression de travailler à deux sur un projet. Et le >tout se construit au fur et à mesure… Contrairement au chat, il reste quelque chose à la fin de l’échange, car une partie du bruit a été suprimée. Des corrections/reformulation ont été faites par l’autre >participant. On est pas dépaysé par rapport au wiki, sauf que les couleurs et le temps réel apportent un vrai plus.

A noter : désolé, les accents n’ont pas été tapés à cause d’un souci de compatibilité de moonedit… (il est adapter aux format de caractères polonais et certain accents de la typographie française passent mal d’ailleurs ce serait un >premier feedback possible avec l’auteur en plus de lui demander d’externaliser dans un fichier l’internationalisation pour une traduction française de l’interface ??)

Note du “correcteur” : Prière de m’excuser, j’ai ajouté les accents.

Pas de soucis :-)Charles Mougel 15/02/2005 22:04 Par contre, qui es-tu gentil correcteur ? Tu mérites d’être remercié pour ton magnifique travail de fourmi! — Charles Mougel 17/02/2005 10:00

J’ai un peu retouché tout cela, pour faire une présentation de type article, qui retrace un peu l’historique de développement. Cela peut peut-être servir. — Charles Mougel 15/02/2005 22:04//

1) On notera que cela ne fonctionne que pour une édition en cours, et qu’une fois le rédac chef parti, les souris dansent, tout le monde peut à nouveau éditer jusqu’au prochain ménage. La gestion des droits peut donc différer cela les usages attendus : gestion de groupes et d’utilisateurs plus fine
 
  projets/client_dokuwiki.txt · Dernière modification: 07/05/2005 00:19
 
Fil RSS: Recent changes RSS feed
Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
Hébergement par Spinodo