Gestion des ancres dans un article

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

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

À partir de la version 1.8, SPIP intègre cette fonction de série. Ce filtre n’est donc pas nécessaire... mais vous pouvez utiliser les raccourcis décrits ici

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.

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

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom