Liens contenant des doubles-tirets ?

Bonjour,

Je rencontre un problème lors de la création de liens contenant des doubles tirets : http://sciences.blogs.liberation.fr/home/2009/03/le-collectif--1.html

Lorsque je crée mon lien : [Le Collectif Défense de l’Université mobilise le 2 avril->http://sciences.blogs.liberation.fr/home/2009/03/le-collectif--1.html] le double tiret est convertit en tiret quadratin, et l'URL est donc invalide.
L'URL devient http://sciences.blogs.liberation.fr/home/2009/03/le-collectif—1.html ou http://sciences.blogs.liberation.fr/home/2009/03/le-collectif—1.html

Existe-t-il un moyen de modifier ce comportement ?

Merci de vos réponses,

François

--
François Coulier, courriel: francois dot coulier at inserm dot fr
Service Informatique
Centre de Recherche en Cancérologie de Marseille, http://crcm.marseille.inserm.fr
Inserm UMR 891, 27 bd Leï Roure, 13009 Marseille France
Tel 33 (0) 4 91 75 84 23, Fax 33 (0) 4 91 26 03 64

François Coulier a écrit :

Lorsque je crée mon lien : [Le Collectif Défense de l’Université mobilise le 2 avril->http://sciences.blogs.liberation.fr/home/2009/03/le-collectif--1.html\] le double tiret est convertit en tiret quadratin, et l'URL est donc invalide.

ce n'est pas un comportement d'origine (en 2.0.6) ça.
couteau-suisse ?

denisb a écrit le 31.03.2009 11:31 :

François Coulier a écrit :

Lorsque je crée mon lien : [Le Collectif Défense de l’Université mobilise le 2 avril->http://sciences.blogs.liberation.fr/home/2009/03/le-collectif--1.html\] le double tiret est convertit en tiret quadratin, et l'URL est donc invalide.

ce n'est pas un comportement d'origine (en 2.0.6) ça.
couteau-suisse ?

Je suis en 1.9.2 (et pas maître de la version installée).
À priori, le couteau suisse n'est pas installé (je ne le vois pas dans les plugins).
Sur un site en local (1.9.2d), garanti sans couteau suisse, j'ai le même comportement, y compris en dehors des liens.
Je crois que ça fait parti des raccourcis typographique (-- transformé en —).

François

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

--
François Coulier, courriel: francois dot coulier at inserm dot fr
Service Informatique
Centre de Recherche en Cancérologie de Marseille, http://crcm.marseille.inserm.fr
Inserm UMR 891, 27 bd Leï Roure, 13009 Marseille France
Tel 33 (0) 4 91 75 84 23, Fax 33 (0) 4 91 26 03 64

Salut

L'outil "Améliorations des textes/Belles URLs" du Couteau Suisse règle le problème, sous SPIP 1.92 ou SPIP 2.0.

Auparavant, ce plugin protégeait les liens de la typo de SPIP au niveau des "?" et des "!". Maintenant, les doubles tirets (raccourci du tiret cadratin) sont également protégés.

Je crois que SPIP 2.0 a réglé le pb du "?" grâce au remplacement automatique des URLs brutes, mais pas celui du "--".

Les "Belles URLs" du Couteau Suisse permet également de désactiver ce remplacement automatique (version 1.8.07.00 du plugin).

Pat

François Coulier a écrit :

denisb a écrit le 31.03.2009 11:31 :

François Coulier a écrit :

Lorsque je crée mon lien : [Le Collectif Défense de l’Université mobilise le 2 avril->http://sciences.blogs.liberation.fr/home/2009/03/le-collectif--1.html\] le double tiret est convertit en tiret quadratin, et l'URL est donc invalide.

ce n'est pas un comportement d'origine (en 2.0.6) ça.
couteau-suisse ?

Je suis en 1.9.2 (et pas maître de la version installée).
À priori, le couteau suisse n'est pas installé (je ne le vois pas dans les plugins).
Sur un site en local (1.9.2d), garanti sans couteau suisse, j'ai le même comportement, y compris en dehors des liens.
Je crois que ça fait parti des raccourcis typographique (-- transformé en —).

François

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

François Coulier a écrit :

Je suis en 1.9.2 (et pas maître de la version installée).

ha oui. 1.9.2
c'est donc bien le comportement typo 'normal'

tu peux, dans mes_options.php (dans config/) insérer la
fonction ci-dessous qui sera appelée par le pipeline post_typo :

<?php
function no_mdash_url($flux) {
   if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),', $flux, $liens, PREG_SET_ORDER)) {
     foreach ($liens as $lien) {
       $no_mdash = str_replace('&mdash;', '--', $lien[2]);
       $flux = str_replace($lien[0], $lien[1].$no_mdash.$lien[3], $flux);
     }
   }
   return $flux;
}

$GLOBALS['spip_pipeline']['post_typo'] .= '|no_mdash_url';
?>

en gros, on cherche dans le flux qui va être affiché la séquence correspondant à un lien de type href="
à chaque lien trouvé, on substitue deux tirets à la valeur &mdash;

il te faudra pour faire fonctionner tout ça vider le cache et supprimer le fichier tmp/charger_pipelines.php

(testé sur 1.9.2g)

Pat a écrit :

Je crois que SPIP 2.0 a réglé le pb du "?" grâce au remplacement automatique des URLs brutes, mais pas celui du "--".

si si
les -- (dans les urls) sont protégés nativement en 2.0.6

denisb a écrit le 01.04.2009 01:50 :

François Coulier a écrit :

Je suis en 1.9.2 (et pas maître de la version installée).

ha oui. 1.9.2
c'est donc bien le comportement typo 'normal'

tu peux, dans mes_options.php (dans config/) insérer la
fonction ci-dessous qui sera appelée par le pipeline post_typo :

J'ai essayé sur mon site en local (au moins, là, j'ai la main !), mais ça ne marche pas.
Je vais voir si je peux demander aux gestionnaires du site s'il peuvent faire une mise à jour en 2.0.6.

Merci pour ton aide,

François

<?php
function no_mdash_url($flux) {
  if (preg_match_all(',(<a[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),', $flux, $liens, PREG_SET_ORDER)) {
    foreach ($liens as $lien) {
      $no_mdash = str_replace('&mdash;', '--', $lien[2]);
      $flux = str_replace($lien[0], $lien[1].$no_mdash.$lien[3], $flux);
    }
  }
  return $flux;
}

$GLOBALS['spip_pipeline']['post_typo'] .= '|no_mdash_url';
?>

en gros, on cherche dans le flux qui va être affiché la séquence correspondant à un lien de type href="
à chaque lien trouvé, on substitue deux tirets à la valeur &mdash;

il te faudra pour faire fonctionner tout ça vider le cache et supprimer le fichier tmp/charger_pipelines.php

(testé sur 1.9.2g)

--
François Coulier, courriel: francois dot coulier at inserm dot fr
Service Informatique
Centre de Recherche en Cancérologie de Marseille, http://crcm.marseille.inserm.fr
Inserm UMR 891, 27 bd Leï Roure, 13009 Marseille France
Tel 33 (0) 4 91 75 84 23, Fax 33 (0) 4 91 26 03 64

Pas tout à fait.

Si le lien inséré dans le texte est :
  http://sciences.fr/le--1.html
Le libellé du lien fabriqué par SPIP est
  http://sciences.fr/le—1\.html
En revanche, le lien est bien conservé.

Maintenant si l'on empêche ce remplacement automatique, ce lien est transformé en :
  http://sciences.fr/le—1\.html
Je confirme que le point d'interrogation ne pose plus de problème sous SPIP 2.0.6, mais ce n'est pas le cas du point d'exclamation.

Pat

denisb a écrit :

Pat a écrit :

Je crois que SPIP 2.0 a réglé le pb du "?" grâce au remplacement automatique des URLs brutes, mais pas celui du "--".

si si
les -- (dans les urls) sont protégés nativement en 2.0.6

François Coulier a écrit le 01.04.2009 08:47 :

denisb a écrit le 01.04.2009 01:50 :

François Coulier a écrit :

Je suis en 1.9.2 (et pas maître de la version installée).

ha oui. 1.9.2
c'est donc bien le comportement typo 'normal'

tu peux, dans mes_options.php (dans config/) insérer la
fonction ci-dessous qui sera appelée par le pipeline post_typo :

J'ai essayé sur mon site en local (au moins, là, j'ai la main !), mais ça ne marche pas.

J'ai essayé également le couteau suisse (Belles URL), qui devrait régler ce problème, mais non, et je ne comprend pas pourquoi...

--
François Coulier, courriel: francois dot coulier at inserm dot fr
Service Informatique
Centre de Recherche en Cancérologie de Marseille, http://crcm.marseille.inserm.fr
Inserm UMR 891, 27 bd Leï Roure, 13009 Marseille France
Tel 33 (0) 4 91 75 84 23, Fax 33 (0) 4 91 26 03 64