SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

63 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Rédaction > Archives Rédaction > Nouveaux raccourcis typographiques et antispam générique
[50 commentaires]

Nouveaux raccourcis typographiques et antispam générique

jeudi 1er juillet 2004, par François Schreuer

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Utilisation des points d’entrée de inc_texte.php3 pour ajouter de nouveaux raccourcis à spip sans toucher au code : trois niveaux d’intertitres, tirets semi-cadratins dans le texte (et plus seulement en début de ligne), flèches, possibilité de passer une chaîne en petites majuscules (small-caps) et exposants. Est en outre mis en place un système de cryptage généralisé des adresses de courrier électronique sur tout le site.

Avec l’introduction des fonctions avant_propre() et apres_propre() dans ecrire/inc_texte.php3 (depuis la version 1.7.1), on peut maintenant ajouter de nouveaux raccourcis sans plus avoir besoin de modifier le source de spip [1].

Soient les raccourcis suivants :

{1{ Ouverture d’un intertitre de 1er niveau (synonyme de {{{) [2]
}1} Fermeture d’un intertitre de 1er niveau (synonyme de }}})
{2{ Ouverture d’un intertitre de 2ème niveau
}2} Fermeture d’un intertitre de 2ème niveau
{3{ Ouverture d’un intertitre de 3ème niveau
}3} Fermeture d’un intertitre de 3ème niveau
[*texte*] Texte en petites majuscules (small-caps) [3]
[^texte^] Texte en exposant
--> Flèche à droite (→)
<-- Flèche à gauche (←)
<--> Flèche bilatérale (↔)

Nous mettons en oeuvre leur utilisation en trois étapes :

1°- Configurer les variables de personnalisation [4] en insérant les lignes suivantes dans le fichier mes_fonctions.php3, à créer si nécessaire :

On ajoute également les variables suivantes dans le fichier ecrire/mes_options.php3, à créer si nécessaire :

Vous pouvez bien sûr adapter ces variables, par exemple remplacer <span style="font-variant: small-caps"> par <span style="nom"> (en définissant la classe nom dans votre feuille de style comme devant afficher les petites majucules).

2°- Ne pas oublier de configurer la feuille de style du site pour tenir compte de ces modifications (en fonction des variables de personnalisation que vous aurez choisies).

3°- Ajouter les fonctions suivantes dans le fichier ecrire/mes_options.php3 [5] :

4°- Filtre anti-spam générique. Dernière chose à faire : activer, si vous le souhaitez, le filtre anti-spam. Avec la fonction de cryptage proposé ici (que vous pouvez changer très simplement), dans tout lien vers une adresse mail présente dans votre site, l’arobase sera transformé en chaîne aléatoire et le mail sera chiffré. Pour activer cette fonction, il vous suffit d’ajouter la ligne suivante dans votre fichier ecrire/mes_options.php3 :

Et voilà, en principe, tout doit fonctionner. Tout ce que vous devez placer dans votre fichier ecrire/mes_options.php3 se trouve dans ce fichier :

texte - 3.7 ko

Si des gens accrochent à cette contrib et qu’ils ont envie de poursuivre, ce serait bien de modifier la barre d’outils pour qu’elle intègre ces nouveaux raccourcis.

P.-S.

De la même manière, vous pouvez créer de très nombreux raccourcis typographiques selon vos besoins. Quelques idées sur le wiki de Spip Lab.

9/7/2004. La version CVS et Spip-lab intègrent désormais le tiret semi-cadratin.

10/7/2004. Ajout d’un nouveau raccourci : le texte en exposant.

3/4/2005 Mise à jour de cette contrib pour la rendre compatible avec la version 1.8. (suppression du traitement des semi-cadratins, désormais entièrement gérés par SPIP en natif et

Notes

[1] La contrib précédente sur le sujet est donc dépassée.

[2] Notez que les actuels raccourcis d’intertitre ne sont évidemment pas affectés par la présente contrib : {{{ produira exactement le même résulat que {1{

[3] Très utile pour les permettre de distinguer les prénoms de noms de famille des personnes par la seule typographie. Un exemple de ce que ça donne sur http://tchouktchouk.eu.org/presse/1.html.

[4] Au sujet des variables de personnalisation, voir http://www.spip.net/fr_article1825.html.

[5] Notez qu’il est possible d’ajouter très simplement (en activant les lignes mises en commentaire dans les deux deux fonctions suivantes) un quatrième raccourci {0{/}0} si vous souhaitez pouvoir disposer d’un raccourci supérieur au raccourci d’intertitre usuel.

Retour en haut de la page

50 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5

  • Répondre à ce message

    1er juillet 2005 16:47 , par Sa-Cha

    Salut,

    Ben, moi, j’essaie et ça ne marche pas (sppip 1.8.1) Peux-tu me dire comment tu as fait ?

    Merci.

  • Répondre à ce message

    29 mars 2005 16:51 , par Philippe G.

    Désolé pour les fôôôtes, il fallait lire : très bien au demeurant... (J’utilise la 1.8pr1 sur le site concerné).

  • Répondre à ce message

    29 mars 2005 16:48 , par Philippe G.

    Je me trompe peut-être, ùais après un moment, j’ai voulu reprendre cette contrib (très au demeurant !) telle qu’elle et ça ne marchait pas. Il fallu que je rajoute dans ecrire/mes_options.php3 la fonction suivante :

    function ereg_remplace($cherche_tableau, $remplace_tableau, $texte) {
            global $flag_pcre;
            if ($flag_pcre) return preg_replace($cherche_tableau, $remplace_tableau, $texte);
            $n = count($cherche_tableau);
            for ($i = 0; $i < $n; $i++) {
                    $texte = ereg_replace(substr($cherche_tableau[$i], 1, -1), $remplace_tableau[$i], $texte);
            }
            return $texte;
    }

    Et là ça marche... J’ai faux docteur ??

  • Répondre à ce message

    22 mars 2005 13:01 , par Regis

    Voici le code à remplacer pour retrouver ces raccourcis :

    function avant_propre($texte) {

            $chercher_raccourcis = array(
                    /*  1 */        "/\{0\{/",
                    /*  2 */        "/\}0\}/",
                    /*  3 */        "/\{1\{/",
                    /*  4 */        "/\}1\}/",
                    /*  5 */        "/\{2\{/",
                    /*  6 */        "/\}2\}/",
                    /*  7 */        "/\{3\{/",
                    /*  8 */        "/\}3\}/",
                    /*  9 */        "/\[\*/",
                    /* 10 */        "/\*\]/",
                    /* 11 */        "/\[\^/",
                    /* 12 */        "/\^\]/",
    // Rajout Jack 2003/08/01 et modifié par Regis 2005/03/22
                    /* 15 */         "/\[\//",
                    /* 16 */        "/\/\]/",
                    /* 17 */         "/\[\|/",
                    /* 18 */        "/\|\]/",
                    /* 19 */         "/\[\(/",
                    /* 20 */        "/\)\]/",
                    /* 21 */         "/\[1\(/",
                    /* 22 */        "/\)1\]/"
    // Fin Rajout Jack 2003/08/01
                    );

            $remplacer_raccourcis = array(
                    /*  1 */        "<@@SPIP_debut_intertitre_0@@>",
                    /*  2 */        "<@@SPIP_fin_intertitre_0@@>",
                    /*  3 */        "<@@SPIP_debut_intertitre@@>",
                    /*  4 */        "<@@SPIP_fin_intertitre@@>",
                    /*  5 */        "<@@SPIP_debut_intertitre_2@@>",
                    /*  6 */        "<@@SPIP_fin_intertitre_2@@>",
                    /*  7 */        "<@@SPIP_debut_intertitre_3@@>",
                    /*  8 */        "<@@SPIP_fin_intertitre_3@@>",
                    /*  9 */        "__SPIP_debut_smallcaps__",
                    /* 10 */        "__SPIP_fin_smallcaps__",
                    /* 11 */        "__SPIP_debut_exposant__",
                    /* 12 */        "__SPIP_fin_exposant__",
    // Rajout Jack 2003/08/01 et modifié par Regis 2005/03/22
                    /* 15 */         "<div style=\"text-align:right;\">",
                    /* 16 */        "</div>",
                    /* 17 */         "<div style=\"text-align:center;\">",
                    /* 18 */        "</div>",
                    /* 19 */         "<div class=\"texteencadre-spip\">",
                    /* 20 */        "</div>",
                    /* 21 */         "<span class=\"caractencadre-spip\">",
                    /* 22 */        "</span>"
    // Fin Rajout Jack 2003/08/01
                    );

            return ereg_remplace($chercher_raccourcis, $remplacer_raccourcis, $texte);

    }

    Raccourcis désormais disponibles

    [/texte/] : aligner le texte à droite
    [|texte|] : centrer le texte
    [(texte)] : encadrer le texte (occupe toute la largeur de la page, à mettre autour d'un paragraphe)
    [1(texte)1] : encadrer/surligner le texte (une partie à l'intérieur d'un paragraphe) : ce raccourci est différent de celui d'origine pour être compatible avec cette contrib.
    [^texte^] : mettre en exposant le texte sélectionné

    Le style pour les encadrements

    .texteencadre-spip {
           background: #FFE;
           border-bottom-color: #999999;
           border-bottom-style: solid;
           border-bottom-width: 2px;
           border-left-color: #EEEEEE;
           border-left-style: solid;
           border-left-width: 1px;
           border-right-color: #999999;
           border-right-style: solid;
           border-right-width: 2px;
           border-top-color: #EEEEEE;
           border-top-style: solid;
           border-top-width: 1px;
           padding: .25em;      
    }
    .caractencadre-spip {
           border: 1px solid #666;
           padding: 0px .5em 0px .5em;
    }
  • Répondre à ce message

    22 mars 2005 09:50 , par Regis

    Bonjour,

    J’avais utilisé jusqu’à présent la contrib de Jacques Pyrat (1/8/2003) concernant les raccourcis v2 de SPIP. Je sais qu’elles modifiaient le code de SPIP (shame on me), et maintenant, ce n’est plus nécessaire. Mais, elles intégraient d’autres raccourcis intéressants :
    - aligner le texte à gauche, droite ou au centre.
    - encadrer du texte

    Il me semble que ces raccourcis pourraient enrichir cette contrib qui est très intéressante.

    Merci

    Voir en ligne : Voir cette contrib peu académique

  • Répondre à ce message

    23 février 2005 21:48 , par François Schreuer

    Aucune idée. J’ai pas testé (par contre, je compte intégrer une fonction similaire générant une table des matières dans la prochaine version de cette contrib, que je publierai dès que la 1.8 définitive sera publiée).

    Tu utilises quelle version de spip ?

  • Répondre à ce message

    22 février 2005 21:18 , par zenop

    Bonjour,

    Je viens d’installer cette fonction très intéressante, tout marche (petites capitales, exposant, tiret quadratin)... sauf les niveaux d’intertitres. J’ai installé, parallèlement, la fonction qui permet de découper les articles en pages.

    Celle-ci implique d’écrire la balise #TEXTE avec un astérisque : #TEXTE*|decouper_en_page|propre.

    Existe-t-il une incompatibilité entre les deux fonctions ?

    Merci.

  • Répondre à ce message

    19 janvier 2005 17:32 , par François Schreuer

    Oui, oui. Mais j’attends la sortie officielle de la 1.8 ou, au minimum, la publication de spécifications définitives pour les plugins (qui ne sont encore, à ma connaissance, qu’une fonctionnalité expérimentale susceptible d’être fortement modifiée) avant d’adapter le script.

  • Répondre à ce message

    19 janvier 2005 16:24 , par noé de naama

    Est-il prevu une mise à jour de cet article pour la 1.8 et son système de plugin ?

  • Répondre à ce message

    9 décembre 2004 22:18 , par François Schreuer

    Bonsoir,

    plutôt que chacun n’y aille avec sa mixture perso de racourcis typo, ne serait-il pas sympa de voir l’intégration de cette contrib directement dans la prochaine version de spip ?

    Tu peux toujours le demander sur les listes. S’il y a plein d’utilisateurs qui demandent certaines fonctionnalitéss (et s’ils argumentent bien), il se peut qu’elles soient implémentées par les core-dev (même si c’est absolument pas garanti).

    Cela dit, je ne suis pas sûr que ça soit la tendance dans le développement de SPIP d’intégrer de nouvelles fonctionnalités dans la distribution officielle. An contraire, il est plutôt question pour le moment de viser un noyau le plus simple possible et d’organiser un maximum de trucs en plugins autour. Perso, je suis pas sûr que SPIP y ait plus à gagner qu’à perdre, mais ce n’est qu’un avis.

    Cela dit, le cas des raccourcis typographiques est un peu particulier puisqu’il est surtout question d’une norme commune qu’il s’agit de préserver (plus même que l’implémentation de cette norme sur toutes les installations de spip). Si l’on se dirige vers des spip qui peuvent communiquer entre eux (et on y va clairement), y’a salement intérêt à ce qu’ils parlent tous le même langage. Donc, m’est avis qu’il serait au moins souhaitable de publier une norme de raccourcis pour toute une série de besoins standards (les intertitres de différents en font assurément partie, mais aussi, dans un moindre mesure, les exposants et les petites majuscules), histoire que les gens qui veulent les utiliser les implémentent de la même façon.

    Cela dit, une idée que j’ai déjà vu passer à certains endroits et qui vaut peut-être la peine qu’on s’y penche serait d’abandonner la syntaxe des raccourcis spip pour créer une syntaxe commune avec d’autres outils du même type (wiki, cms,...), ce qui faciliterait grandement la vie aux utilisateurs de plusieurs de ces outils.

    La prochaine version SPIP en est où des points d’entrée, quelque chose a été décidé ?

    On se dirige clairement vers un mécanisme standardisé de plugins (et donc vers la disparition des points d’entrée qui sont ne sont qu’un petit hack sympa et qui n’auront plus de raison d’être). Mais quand ? Ca, je sais pas.

    François

Pages 1 | 2 | 3 | 4 | 5

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0