Wikini

LienInterWiki

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-3-81-28-94.compute-1.amazonaws.com
Un lien interwiki permet de fabriquer simplement un lien vers un autre wiki, à l'aide d'un mot-clef, sans connaissance de son adresse physique.

Voici quelques exemples en illustration :

La syntaxe d'un lien interwiki est du type : [[Un_nom_de_site:une_valeur_de_requête]] soit :

Attention, sur WikiNi le nom de l'alias est sensible à la casse.

Pour cela il faut connaître l'acronyme du site wiki cible. Cet acronyme est défini dans le fichier "interwiki.conf" situé à la racine du site. Chaque acronyme est défini de la manière suivante :
Quelques exemples :
Bible http://bible.gospelcom.net/bible?
Google http://www.google.com/search?q=
GoogleGroups http://groups.google.com/groups?q=
PhpWiki http://phpwiki.sourceforge.net/phpwiki/index.php?
RFC http://www.rfc.org.uk/cgi-bin/lookup.cgi?rfc=
WikiPedia http://www.wikipedia.com/wiki/wiki.phtml?title=
WikiNi http://www.wikini.net/wakka.php?wiki=
L'ensemble des alias disponibles sur WikiNi.net se trouve à la page ListeDesSitesInterWiki.

La dernière version d'interwiki.conf dans le cvs.

Cette fonctionnalité est disponible sur de nombreux moteurs de wiki -- sans doute la majorité. On verra par exemple :
Il semble exister un consensus relatif sur la syntaxe du fichier interwiki. Les abbréviations utilisées sont également souvent les mêmes d'un moteur de wiki à l'autre. On verra :


Ailleurs

http://www.usemod.com/cgi-bin/mb.pl?InterWikiLinks



Autres formats ?

Pour l'affichage, je propose un truc plus fun que UnWiki:UnePage (interwiki) comme par exemple °UnWiki:UnePage° (il suffit de changer wakka.php).
-- jexOm.

C'est ce qui avait plus ou moins à l'origine et le (interwiki) a été rajouté sans vraiment de discussion (ou alors je ne l'ai pas vu) lors d'une mise à jour d'optimisation de code. Après un temps d'adaptation j'avoue que maintenant je trouve cet affichage agréable : il permet d'identifier immédiatement ce type de lien bien particulier. -- DavidDelon

Moi j'aime bien la méthode avantages / inconvénients ;-) Pour la syntaxe UnWiki:UnePage (interwiki) :
Avantages :
Inconvénients :
Question subsidiaires : pourquoi ne souligner que les liens interwiki ? Qu'ont-ils de si important ? Pourquoi ne pas souligner aussi les liens "(intrawiki)" et "(extrawiki)" (comme c'est d'ailleurs le cas sur certains moteur de wiki, à l'aide de symboles) ?
Je ne suis pas encore fixé sur tous ces problèmes mais au moins pourrions peut-être différencier la chaîne "(interwiki)" pour bien montrer qu'il s'agit d'une information éditoriale ?
Par exemples :







(Mais attention aux effets de bord : "(interwiki)" risque de devenir difficile à lire dans certaines circonstances.)
-- CharlesNepote

Les WikiWikiWeb ont effectivement tous leur façon de traiter ce sujet. Voir par exemple les icones chez SergeStinckwich.
Il y a effectivement trois types de liens :
- vers une page interne
- vers une page externe qui n'est pas un lien interwiki
- vers une page externe qui est un lien interwiki.
Je ne m'y connais pas trop en CSS, mais n'y aurait-il pas moyen de déléguer ça à la feuille de style ?
Pour revenir à "(interwiki)" : pour ma part, je trouve ça trop encombrant comme notation...
-- jexOm.

Oui il y a des solutions en CSS, en particulier :
La solution en CSS3 est particulièrement élégante puisqu'elle ne nécessite aucune modification du code HTML ! (cf. exemples ci-dessous.)
On peut trouver des icônes :
Par ailleurs j'avais l'intention de lancer un appel sur la liste CSS francophone pour trouver un vrai graphiste capable de nous aider à améliorer tous ces aspects (pas seulement les problèmes de liens interwiki).
-- CharlesNepote

Voici un exemple de code CSS3, à insérer dans wakka.css, permettant d'obtenir une icône après le lien, sans modification du code HTML :
a[href^="http:"] {
background: transparent url('http://i.a.cnn.net/cnn/.element/img/1.0/misc/icon.external.links.gif') 100% 100% no-repeat;
padding-right: 25px;
}

a[href^="http://votre-adresse.domaine"],
a[href^="http://localhost"] {
background: none;
padding: 0px;
}

Fonctionne parfaitement sur MoZilla mais pas sur InternetExplorer.
-- CharlesNepote


Est-ce que la syntaxe du fichier interwiki.conf est figée dans le marbre ? Je me disais qu'on pourrait peut-être ajouter un troisième paramètre sur chaque ligne qui serait la classe CSS à choisir pour rendre le <a href="..."> ... Ainsi, pour "personnaliser" un WikiWikiWeb externe référençable par LienInterWiki, il faudrait
  1. modifier la classe du lien dans interwiki.conf
  2. ajouter cette classe dans wakka.css
-- jexOm.

La syntaxe du fichier interwiki.conf est globalement la même sur tous les moteurs de wiki. Pour ma part je ne tiens pas spécialement à nous marginaliser sur cet aspect là. Ce que tu propose est possible avec CSS3. (cf. mes exemples ci-dessus). -- CharlesNepote

L'emplacement du fichier interwiki.conf pourrait t'il être un paramêtre? Ou serait t'il possible de définir dans wakkaconfig.php que c'est une page wiki qui contient ces liens? Les avantages que je perçois:
ha! je Vois qu'une proposition plus générale à été faite dans ce sens sur ParametrerLeHeadDesDocumentsHTMLWikiNi
--SimonDaron

Proposition d'implémentation pour une configuration plus aisée

En ce qui me concerne, j'ai eu besoin de faire des liens "à la InterWiki" mais qui ne concernaient pas des Wiki. J'ai donc légèrement amélioré (on dirait encore détourné) le système afin de répondre à mes besoins, tout en gardant une totale compatibilité avec le système existant. J'ai commencé par y ajouter la possibilité d'indiquer la position de l'insertion du tag dans l'URL, via le symbole $. Puis j'ai changé la procédure de chargement de la configuration InterWiki afin de la récupérer depuis une page plutôt que depuis le fichier interwiki.conf. J'ai également optimisé le code en ne faisant ce chargement que lorsqu'on accède à une page contenant un lien InterWiki, plutôt que de le faire systématiquement pour chaque page lue.

Notes :

<?php
        
// INTERWIKI STUFF
        
function ReadInterWikiConfig() {
                
$this->interWiki = Array();
                if (!
$page $this->LoadPage('InterWikiConfig')) return;
                
$lines explode("\n"$page['body']);
                if (
substr($lines[count($lines)-1], 12) == "\%\%")
                {
                        
delete($lines[count($lines)-1]);
                }
                if (
substr($lines[0], 12) == "\%\%")
                {
                        
delete($lines[0]);
                }
                foreach (
$lines as $line)
                {
                        if (
$line trim($line))
                        {
                                list(
$wikiName$wikiUrl) = explode(' '$line);
                                
$this->interWiki[$wikiName] = $wikiUrl;
                        }
                }
        }
        function 
GetInterWikiUrl($name$tag) {
                
$tag urlencode($tag);
                if (!isset(
$this->interWiki))
                {
                        
$this->ReadInterWikiConfig();
                }
                if (isset(
$this->interWiki[$name]))
                {
                        if (
strchr($this->interWiki[$name], '$'))
                        {
                                return 
str_replace('$'$tag$this->interWiki[$name]);
                        }
                        return 
$this->interWiki[$name].$tag;
                } else {
                        return 
'http://'.$tag//avoid xss by putting http:// in front of JavaScript:()
                
}
        }
?>

-- ProgFou


Et les caractères non-alphanumériques ?

Je testais un peu la fonctionnalité pour voir, mais en fait les espaces ne fonctionnent pas, comme la plupart des caractères non-alphanumériques j'imagine... (je n'ai pas regardé les sources pour voir comment ça marche...) Par exemple si je veux proposer une recherche sur google de plusieurs mots, c'est impossible, il faut recopier le lien complet... par exemple:
Je propose de le permettre en utilisant les guillemets, comme ceci: Google:"plusieurs mots" (ce qui ne fonctionne actuellement pas: Google:"plusieurs mots"), ou alors à la limite de permettre les carractères non alphabétiques utilisés fréquemment dans les urls, comme les %, les + ou les & (que les navigateurs remplaceront par un espace et ensuite un + ou un %20 dans l'url finale, mais je ne suis pas certain que ce soit correct en XHTML 1.0...)
-- LordFarquaad


S'ajouter sur la liste...

Comment pourrais on centraliser la mise à jour de ce fichier afin que chacun puisse ajouter son site à la liste?


Autres suggestions



Requête...


le ficher Interwiki.conf de WikiNi.net ne devrait-il pas contenir tout les sites utilisants WikiNi de manière à ce qu'il soit plus facile pour les utilisateur de lier leur pages ici notamment dans le cas de rapport de bug ou de test de développement d'actions? -- Nicephore17

Commentaires [Cacher commentaires/formulaire]