Ajouter la gestion des ancres dans un article

All contributions published for previous SPIP versions

Voici une petite fonction qui permet de rajouter un raccourci typographique pour les ancres dans vos articles.

Concrètement, cela permet à un auteur de créer une ancre dans un article avec un raccourci typographique : (2 possibilités au choix, les 2 fonctionnent pareil)

[nomdelancre<-]
[#nomdelancre<-]

pour pouvoir ensuite créer un lien vers cette ancre dans la page (et permettre au lecteur d’aller directement à cet endroit de la page, comme pour les notes) avec un lien spip vers #nomdelancre :

[aller directement voir l'ancre->#nomdelancre]

Pour utiliser le filtre dans vos squelettes et ansi traduire les ancres [ancre<-] ou [#ancre<-] en ancres HTML, insérez comme à l’habitude le filtre derrière la balise SPIP, par exemple :

[(#TEXTE|gerer_ancres)]

Voici le code à rajouter dans mes_fonctions.php3 pour pouvoir utiliser le filtre gerer_ancres. Il est très court et y’a plus d’explications et commentaires que de code php !! (une ligne suffit pour ce code !)

/*
 *   +-------------------------------------+
 *    Nom du Filtre : Conversion des ancres
 *   +-------------------------------------+
 *    Date : vendredi 18 juin 2004
 *    Auteur :  AliGator (aligator@macfr.com)
 *   +-------------------------------------+
 *    Fonctions de ce filtre :
 *      Ce script permet de gérer les ancres insérées dans un
 *      article sous la forme [nomancre<-] ou [#nomancre<-]
 *      pour les remplacer par une ancre HTML (<a name="#nomancre"></a>)
 *      Ceci vous permet d'autoriser les auteurs des articles sur votre site
 *                à utiliser ce nouveau "raccourci typographique"
 *   +-------------------------------------+ 
*/

function gerer_ancres($texte)
{
        $res = preg_replace("|\[\#?([A-Za-z0-9_]*)<-\]|U" ,
                "<a name=\"\$1\"></a>" , $texte);
        return $res;
}

PS : A propos d’ancres, je rappelle au passage l’existance de la contribution de Noplay pour créer un sommaire avec des liens vers les divers intertitres de vos articles, et créer les ancres associées autour desdits intertitres.

La version 1.8 de SPIP intègrera cette fonction de série. Ce filtre n’est donc pas nécéssaire si vous utilisez la distribution CVS de SPIP.

updated on 5 July 2010

Discussion

Une discussion

  • Bonjour,

    J’ai introduit une ancre dans un article : [precis<-]

    et j’en ai fait le lien dans un autre : [J'ai...->article1#precis] mais en cliquant dessus, je n’arrive qu’à l’article et non au point précis qui commence par “J’ai...”

    Alors, pourquoi ça ne fonctionne pas ? Avez-vous une idée ?

    Leila

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom