Mots Wiki en 2 Mots par GouBs
Quelques explications sommaires
Pour que le mot Wiki apparaise en deux mots (et pris en compte comme tel par les moteurs de recherche) il suffit d'utiliser la syntaxe suivante Mot_Wiki et de faire la modification de code (mineure) suivante :
- Dans le fichier formatter/wakka.php la ligne
"\b([A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*)\b|". devient
"\b([A-Z][a-z_]+[A-Z0-9][A-Za-z0-9_]*)\b|". (c'est l'avant derniere ligne de la fonction "preg_replace_callback" à la fin du fichier.)
- Dans le fichier wakka.php le code de la fonction Link devient le suivant :
<?php
// Ligne modifiée ==> else if (preg_match("/[^[:alnum:]]/", $tag))
else if (preg_match("/[@:.-]/", $tag))
{
// check for email addresses
if (preg_match("/^.+\@.+$/", $tag))
{
$tag = "mailto:".$tag;
}
// check for protocol-less URLs
else if (!preg_match("/:\/\//", $tag))
{
$tag = "http://".$tag; //Very important for xss (avoid javascript:() hacking)
}
// is this an inline image (text!=tag and url ends png,gif,jpeg)
if ($text!=$tag and preg_match("/.(gif|jpeg|png|jpg)$/i",$tag))
{
return "<img src=\"$tag\" alt=\"$text\" />";
}
else
{
return "<a href=\"$tag\">$text</a>";
}
}
else
{
// it's a Wiki link!
if ($_SESSION["linktracking"] && $track) $this->TrackLinkTo($tag);
//Ligne modifiée ==> return ($this->LoadPage($tag) ? "<a href=\"".$this->href($method, $tag)."\">".$text."</a>" : "<span class=\"missingpage\">".$text."</span><a href=\"".$this->href("edit", $tag)."\">?</a>");
return ($this->LoadPage($tag) ? "<a href=\"".$this->href($method, $tag)."\">".str_replace('_',' ',$text)."</a>" : "<span class=\"missingpage\">".str_replace('_',' ',$text)."</span><a href=\"".$this->href("edit", $tag)."\">?</a>");
}
?>
Voir démo sur :
mon site
--
GouBs
Avantages :
- ne remet pas en cause les MotWiki existants
- modification légère sans surcoût
Inconvénients :
- oblige à un petit effort d'apprentissage supplémentaire
- pour les sites utilisant depuis longtemps WikiNi, risque de voir cohabiter MotWiki classique et la nouvelle possibilité (du fait de la difficulté de renommer les pages)
- impossibilité de copier/coller du contenu depuis un WikiNi 0.4.x vers un 0.1.3 ne gérant pas les soulignés bas
Conséquences (positives ou négatives ?) :
- on s'éloigne des MotWikis? classiques
Ailleurs
Discussions
La piste est intéressante mais elle me paraît incomplète...
- Test_Test : OK
- Test_Test_Test : OK
- Test_d_Apostrophe : OK
- Charles_De_Gaulle : OK
- Meraude_de_Marin : OK
- _Test : KO
- _TestTest : KO
- _Test_Test : KO
- Test_ : KO
- TestTest_ : OK => pb ?
- Test_Test_ : OK => pb ?
Les deux derniers sont considérés comme mots wikis : le devraient-ils ?
Personnellement, je trouve cette modification particulièrement intéressante et a priori peu impactante sur
WikiNi. Je pense qu'il faut se laisser le temps de la réflexion, lister concrètement le pour et le contre, mais je verrais bien son intégration à
WikiNi.
--
CharlesNepote
jmgriess - afin que cette contribution soit complète, il est nécessaire de modifier le fichier /formatters/wakka.php (vers la ligne 290) de la manière suivante :
<?
// wiki links!
else if (preg_match("/^[A-Z][a-z_]+[A-Z0-9][A-Za-z0-9_]*$/s", $thing))
// else if (preg_match("/^[A-Z][a-z_]+[A-Z,0-9][A-Z,a-z_,0-9]*$/s", $thing))
{
return $wiki->Link($thing);
}
?>
ainsi les
MotsWiki2Mots recevront un lien de création [ ? ]
PagesSuiviesParGoubs