Mailsubscribers

Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email.

Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de diffusion (simplifiées) permettant de cibler des listes d’inscrits au cas par cas dans les envois en nombre par courier électronique.

Pour les développeurs, ce plugin implémente la partie subscribe de l’API Newsletter et peut donc être utilisé avec les plugins Newsletters et Mailshot pour l’envoi de Newsletters.

Installation

Le plugin s’installe classiquement, et ne nécessite pas d’autre plugin pour fonctionner. Cependant, si vous souhaitez importer et exporter des listes d’abonnés au format CSV, vous devrez installer le plugin complémentaire SPIP Bonux.

Configuration

Vous pouvez configurer ce plugin pour l’adapter à vos besoins.

Opt-in

Vous pouvez choisir le fonctionnement en simple Opt-in ou double Opt-in :

  • en simple opt-in : il suffit pour s’inscrire que la personne renseigne son email dans un formulaire d’inscription explicitement dédié à l’envoi d’informations par mail, ou qu’il coche une case “je veux m’inscrire à la Newsletter” dans un autre formulaire (inscription comme redacteur dans le site par exemple) ;
  • en double opt-in : l’inscription est mise en attente suite à cette première étape, et un email est envoyé sur l’adresse courriel renseignée, demandant de cliquer sur un lien pour confirmer l’inscription. Il y a donc une étape de vérification.

Le mode double opt-in permet d’avoir une base d’inscrits de meilleure qualité. Il évite les inscriptions forcées, pour le compte d’autrui, ainsi que d’inscrire une adresse email erronée (faute de frappe). Ce mode est nécessaire dans certain pays pour être en accord avec la loi. En France le simple opt-in suffit, mais il est recommandé d’utiliser le double opt-in.

Inscription à la Newsletter lors de l’inscription au site

Si vous activez cette option, une case à cocher sera automatiquement ajoutée sur le formulaire d’inscription au site pour permettre l’inscription à la Newsletter en même temps.

Listes de diffusion

Pour chaque liste, indiquez un identifiant (lettres et chiffres uniquement) ainsi qu’un libellé explicite. Vous pouvez a posteriori fermer une liste : dans ce cas il n’est plus possible de s’y inscrire, mais vous conservez tout de même la liste des inscrits en base de donnée.

Par défaut, il n’y a qu’une liste de diffusion disponible, avec l’identifiant newsletter.

Listes de diffusion automatiques

Il est possible d’avoir des listes de diffusion dont les abonnés sont automatiquement synchronisées avec d’autres tables ou même d’autres bases [1]. Le plugin permet par exemple de créer les listes automatiques des Administrateurs, des Redacteurs et des Visiteurs du site.

Si vous cochez la liste des Administrateurs en Enregistrez, elle apparaîtra avec une mention précisant que cette liste est synchronisée automatiquement. Si vous raffraichissez la page quelque minutes plus tard (ce n’est pas immédiat car la synchronisation est faite en tache de fond), le nombre d’abonnés apparaitra.

Vous pouvez aussi définir votre propre liste automatique synchronisée. Pour cela, créez la liste avec un identifiant et un nom qui vous conviennent, puis ajoutez dans votre fichier mes_fonctions.php la fonction mailsubscribers_synchro_list_newsletter_xxx() que vous aurez créé (en remplaçant xxx par l’identifiant de votre liste).
Cette fonction devra retourner un tableau d’abonnés, chacun étant décrit par un tableau avec
-  l’entrée obligatoire email
-  les entrées facultatives nom et prenom.

Ces données peuvent venir aussi bien d’une table SQL, d’un fichier texte, CSV, d’une autre base de donnée…

Le plugin synchronisera alors automatiquement 1 fois par jour les abonnés avec la liste fournie par votre fonction, et vous pourrez envoyer des Infolettres sur ces listes toujours à jour.

Inscription-désinscription sur le site public

Le plugin ne propose par défaut aucune page d’inscription pour le site public. Vous devez ajouter le formulaire d’inscription et désinscription dans votre squelette.

Formulaire d’inscription

Vous pouvez insérer simplement le formulaire d’inscription dans votre squelette avec la balise #FORMULAIRE_NEWSLETTER_SUBSCRIBE. L’inscription se fera sur la liste par défaut newsletter.

Le formulaire est volontairement le plus simple possible se limitant à un label et un champ de saisie (automatiquement rempli par l’adresse email du visiteur si identifié). Cela vous permet d’ajouter un titre à votre guise. Vous pouvez modifier le libellé du bouton en personalisant la chaine de langue bouton_subscribe.

Pour proposer l’inscription sur une autre liste ou plusieurs listes, indiquez l’identifiant de la ou les listes en argument de la balise, séparés par une virgule. Les paramètres à passer doivent être entre guillemets. Par exemple :

#FORMULAIRE_NEWSLETTER_SUBSCRIBE{
    "newsletter,nouveautes",
    "checklist" }

Lors de son inscription, l’internaute reçoit un email d’information (ou de confirmation si double opt-in).

Comme pour tous les formulaires, il est possible d’insérer le formulaire d’inscription à l’intérieur du texte d’un article, plutôt que dans un squelette, au moyen de l’appel de modèle suivant :
<formulaire|newsletter_subscribe|listes=liste1| ... >

Formulaire de désinscription

Comme pour le formulaire d’inscription, le formulaire de désinscription s’insère avec #FORMULAIRE_NEWSLETTER_UNSUBSCRIBE. Vous pouvez indiquer la ou les listes concernées en argument : #FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{"newsletter,nouveautes"}

Vous pouvez modifier le libellé du bouton en personalisant la chaine de langue bouton_unsubscribe.

Lors de sa désinscription, l’internaute reçoit un email d’information. Si il n’est plus abonné à aucune liste, son adresse email est obfusquée, transformée en md5 de son email avec le domaine @example.org. Cela permet de préserver l’anonymat des desinscrit, mais de les garder en base pour éviter de les réinscrire par erreur en cas d’import d’adresses par exemple.

Administration des inscrits

Liste des inscrits

La liste des inscrits est disponible dans l’espace privé, depuis le menu Activité > Inscrits aux envois par email

Inscription

Vous pouvez inscrire une adresse email manuellement depuis l’espace privé en sélectionnant “Ajouter une inscription”.

Vous devrez renseigner a minima l’adresse email et une liste de diffusion. L’inscrit sera par défaut “pas inscrit” et vous devrez modifier son statut pour l’inscrire réellement.
Lorsque vous modifiez le statut par ce formulaire d’édition, aucun courriel de notification n’est envoyé à l’adresse email concernée.

En revanche, dans tous les autres cas l’inscrit recevra automatiquement sur son adresse courriel un email de vérification quand vous lui mettez le statut “à confirmer”, et un email d’information si vous lui mettez le statut “abonné”. De même si vous le passez ensuite en “desabonné” un email d’information sera à nouveau envoyé. C’est par exemple le cas quand vous modifiez le statut de l’inscrit par le formulaire de changement dédié à cet effet :

Export des inscrits [2]

Vous pouvez télécharger la liste des inscrits ou de toutes les adresses (y compris les inscrits en attente ou les désinscrits [3]) au format CSV. Chaque colonne correspond à un champ de la table.

Import des inscrits [4]

Vous pouvez importer une liste d’adresse mail à inscrire. Un fichier CSV est attendu, avec en première ligne le nom des champs, selon le même format que celui fournit en export. Si le fichier ne comporte qu’une seule colonne, il sera supposé que ce sont des emails. Cela vous permet d’importer des fichiers textes avec une adresse email par ligne comme les fichiers d’export générés par SPIP-Listes.

Si votre fichier d’import contient une colonne statut, les adresses prendront automatiquement le statut fixé par le fichier. Un email de confirmation ou d’information sera envoyé à chaque adresse importée (sauf si vous cochez l’option pour ne pas notifier lors de l’import).

Si votre fichier d’import ne contient pas de colonne statut, les adresses seront automatiquement inscrites (directement ou via un mail de confirmation selon le réglage de votre opt-in). Cependant, les adresses emails correspondant à des personnes désinscrites ne seront pas ré-inscrites.

Après sélection d’un fichier, le formulaire vous montre une prévisualisation de l’interprétation des données sur les premières lignes du fichier, et vous pouvez lancer l’import si cela vous convient. A cette étape, vous pouvez préciser que cet import doit se faire sans notification des inscrits [5], ou aussi que vous voulez vider la table avant l’import (cas de la mise à jour complète de votre base par un fichier CSV). Cette dernière option ne vous est proposée que si vous êtes webmestre.

Traçabilité des inscriptions

A chaque fois qu’une adresse email est inscrite ou desinscrite, cela provoque l’enregistrement d’une trace dans le champ optin de l’adresse email correspondante. La trace sera enregistrée que l’inscription se fasse sur le site public, ou par un administrateur dans le back-office, ou même par un import de fichier.

La trace contient la date et l’heure de la modification ainsi que les elements d’identification de la personne qui a réalisé l’action (adresse IP si la personne n’est pas identifiée, ou id_auteur et nom de l’administrateur SPIP).

Le champ optin qui garde cette trace n’est pas éditable, et peut donc être opposé comme justificatif si une personne manifeste sa désaprobation d’avoir été inscrite à son insu (à tort ou à raison).

Migration depuis un ancien plugin

Si vous utilisiez auparavant l’un des plugins SPIP-Listes, SPIP-Lettres, CleverMail ou MesAbonnés, les inscrits seront automatiquement importés lors de l’installation de MailSubscribers (dans le cas des plugins SPIP-Lettres et CleverMail, les désinscrits sont aussi importés).

Pour cela vous devez avoir encore les tables de ces plugins dans votre base de données. Il vous faut donc désactiver votre ancien plugin, mais surtout ne pas le désinstaller car cela supprime les données.

Après avoir installé le plugin et vérifié que toutes les adresses ont bien été importées, vous pouvez désinstaller votre ancien plugin pour supprimer ses données si vous le souhaitez.

Footnotes

[1à partir de la version 1.6.0

[2Cette fonction necessite la présence du plugin SPIP-Bonux

[3les adresses mails des desinscrits sont obfusquées par un md5 pour des raisons de confidentialité

[4Cette fonction necessite la présence du plugin SPIP-Bonux

[5réserver cet usage au transfet d’inscrits d’un site à un autre, et ne pas en profiter pour importer des adresses qui n’ont pas explicitement demandé à être inscrites

Discussion

203 discussions

  • Bonsoir,
    Depuis différentes mises à jour j’ai l’impression que la double validation ne fonctionne plus.
    J’ai fait le test sur 2 adresses et je ne reçois rien, pas de mail de confirmation à cliquer.
    Par ailleurs avant on voyait comme c’est indiqué plus haut dans la présentation l’adresse IP si la personne n’est pas identifiée or on ne voit plus cette adresse IP ce qui était bien pratique pour vérifier si c’était un spameur bien que je dispose de no Spam.
    Enfin les captures d’écran ci-dessus ne semblent plus correspondre aux dernières versions.
    Merci

    Reply to this message

  • 2
    Stéphan

    Bonjour
    J’ai bien installé le plugin , tout marche jusqu’à la création de la liste de diff ’newsletter’
    Dès qu’elle est créée, l’ajout d’un nouvel e-mail dans le formulaire ( spip 4.0 et Escape velocity) j’ai cette erreur :

    Warning: reset(): Argument #1 ($array) must be passed by reference, value given in /home/clients/498d6d9ec9ae142cdb994dd2fdb2d3b2/sites/monsite.fr/plugins/auto/mailsubscribers/v3.0.7/inc/mailsubscribinglists.php on line 49

    tout ajout, modif donne cette erreur. J’ai aussi tenté de désinstaller et réinstaller l’extension, rien n’y fait
    Merci de votre aide ! ;)
    Stéphan

    • La version 3.0.8 qui arrive dans les bacs corrige cela, désolé

    • stéphan

      top top top top :)
      Ne soyez pas désolé !
      Grand merci pour votre fantastique travail !
      Moi qui suis un buse en dev, je kiff ! ;)
      Si ça fait plus de 15 ans que je suis sur Spip c’est grâce a vous tous

    Reply to this message

  • 4

    Bonjour,
    sur 2 sites, malgré le plugin nospam à jour (2.4.0) , j’ai entre 20 et 30 mails de spam par jour, demandes d’inscriptions avec des adresses foireuses.
    Un temps, je pouvais limiter ces spams qui venaient d’ips communes (en interdisant leur ip), mais ils progressent les bougres, avec des adresses IP systématiquement différentes.
    Auriez-vous une idée supplémentaire pour limiter ces spams ?
    (spip 3.2.14)
    Merci,
    Sylvain

    • Est-ce que par hasard tu aurai personnalisé le formulaire d’inscription de mailsubscribers ? le code du formulaire a évolué pour prendre en compte les dernières techniques antispam proposées par le plugin nospam, mais si tu as forké tu ne bénéficies pas de ces évolutions...

    • dans un cas, j’utilise le plugin html5up/alpha, qui surcharge en effet le formulaire newsletter_subscribe...
      Mais dans l’autre, j’utilise directement #FORMULAIRE_NEWSLETTER_SUBSCRIBEmaliste dans le squelette.

    • Salut,

      est-ce que tu as activé le double opt-in dans la configuration de Mailsubscriber ? J’avais le même cas, ça a résolu le problème.

      En plus, c’est bon pour l’hygiène des listes de contacts : seuls les vrais contacts et ceux qui sont vraiment intéressé iront jusqu’au bout.

    • bonjour,
      oui, j’ai bien configuré le double opt-in. C’est certes indispensable pour éviter que les spammeurs soient automatiquement inscrits.
      Ceci dit, cela rajoute une étape de confirmation, et nombreux sont les vrais utilisateurs qui ne confirment pas...
      En tout cas, chez moi sur ces 2 sites, cela n’empêche pas les spammeurs de tenter de s’inscrire, et donc envoie pas mal de mails erronés.
      Merci !

    Reply to this message

  • Salut,

    que deviennent les adresses inscrites à une liste de diffusion lorsque cette liste est supprimée ?

    Je viens tester rapidement et, apparemment, elle sont conservées comme actives et liées à la liste dont le statut est “à la poubelle”. J’ai regardé dans les travaux mais je ne vois rien là dessus (il y a tâche une mailsubscribers_synchro_lists mais ça ne semble pas agir dessus).

    Est-ce qu’il ne faudrait pas les désinscrire/obfusquer ?
    Une des problématique est qu’une adresse peut-être inscrite à plusieurs listes avec des status différents.

    Reply to this message

  • 2

    Bonjour, c’est pour info : suite à la mise à jour de NoSPAM v2.4.0, mon formulaire d’inscription à la newsletter ne s’affichait plus, et bloquait tout l’affichage du site.
    Je suis redescendu à une version inférieure (v2.2.1) et tout est rentré dans l’ordre.
    (bon, en fait, au début, je ne savais pas que le problème venait de NoSPAM : suite à la mise à jour de mes plugins, plus d’affichage du formulaire d’inscription à la newsletter. En lisant le forum, j’ai vu que quelqu’un avait eu un problème semblable avec NoSpam. J’ai fait les tests, et c’est bien le cas : NoSPAM v2.4.0 semble buggué)

    • Chez moi ça marche (tm) ! Tu as sans doute une erreur fatale, soit liée à la version PHP ou à la version de SPIP, mais comme tu ne dis rien à ce sujet je peux rien dire...

    • Ah pardon, effectivement, j’ai oublié de préciser le contexte.
      Alors, en fait, je ne sais plus exactement, car depuis nous avons fait une mise à jour de PHP.
      Ce qui est sûr, c’est que le site est encore sous Spip 3 (3.2.14) mais il se peut qu’au moment de la mise à jour, nous étions encore en PHP 5.6 (oui, je sais, c’est pas top...)
      Je pense que la config de l’époque était Spip 3.2.14 + NoSpam V2.4.0 + PHP 5.6
      Depuis, nous avons migré sous PHP 7.2. (et nous sommes en train de migrer à Spip 4)
      Merci d’avoir regardé. Bonne journée !

    Reply to this message

  • Bonjour,
    J’utilise régulièrement ce super plugin sur plusieurs sites, et régulièrement, je me pose la question de comment ajouter un champ PRÉNOM en plus du champ NOM…
    Aujourd’hui, une cliente me le demande, et je comprends bien pourquoi elle le souhaite !

    Je précise que son site est en 3.2 et que je vais bientôt le passer en 4 si tous les plugins utilisés sur son site le permettent… (à priori oui).
    Également, j’utilise “Formidable abonnement à des listes de diffusions” pour l’inscription via le site public.

    L’idée est donc de pouvoir ajouter un champ à partir de Mailsubscribers dans l’admin, de Formidable sur le Front, et bien sûr de récupérer ce champ dans la liste de diffusion, de façon à pouvoir envoyer des infolettres sous la forme :
    Bonjour @prenom@ @nom@,

    Je n’ai aucune idée de comment procéder, par où prendre le truc, et j’avais déjà fait pas mal de recherche sans succès ces dernières années.

    D’avance merci pour vos retours.
    Cordialement

    Reply to this message

  • 6

    J’ai un message d’erreur lors de l’inscription d’un email à une newsletter.
    Dans mon pied de page j’ai :
    #FORMULAIRE_NEWSLETTER_SUBSCRIBE{1}

    Le formulaire est standard :
    plugins/auto/mailsubscribers/v3.0.5/formulaires/newsletter_subscribe.html

    Lorsque je saisis un email en retour j’ai le message d’erreur :

    Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.
        Cette information est obligatoire

    Et dans formulaires.log il y a :

    2022-01-11 22:38:21         127.0.0.1         81777         Public         erreur         
    signature ajax form incorrecte : newsletter_subscribe (formulaire non signe mais on a une session)

    (en local car sur un serveur distant je n’ai pas ce log)

    Lorsque je saisis une adresse sans “@” il me dis bien que je dois corriger.

    J’ai vidé les caches et les sessions, changé de navigateur, essayé plusieurs adresses mail mais j’ai toujours l’erreur en local (PHP Version 7.4.3) et sur un serveur distant (PHP Version 7.4.27)

    SPIP est 3.2.12

    J’ai cette erreur uniquement pour ce site.

    Merci

    • Question préalable : quand tu fais ça et que tu as cette erreur, es-tu identifié sur le site (avec une session) ou pas du tout (sans session) ?

      Selon le cas le bug va être d’un côté (à l’affichage initial qui ne prends pas en compte la session) ou de l’autre (au décodage du POST) qui voit une session à tort.

      Pour le premier cas : est-ce que par hasard le pied de page serait affiche par un #INCLURE (directement ou indirectement) ? Auquel cas il faut remplacer par un <INCLURE> qui ne perd pas le dynamisme des formulaires.

      Pour le second cas : tu utilises la fonction verifier_visiteur() dans ton mes_options.php et ça perturbe la session après le POST ?...

      Tu peux essayer d’ajouter la ligne

      spip_log("id_auteur session : ". $GLOBALS['visiteur_session']['id_auteur'], 'formulaires' . _LOG_ERREUR);

      après cette ligne https://git.spip.net/spip/spip/src/branch/3.2/ecrire/public/aiguiller.php#L190
      pour voir dans ton log ce qui se passe ?

    • Déjà, merci du retour rapide.
      J’ai bien
      <INCLURE{fond=footer/#ENV{type-page},env} /> dans l’appel du squelette.
      L’erreur advient que je sois connectée ou pas.

      Pour les test j’ai supprimé mes_options.php et désactiver les plugins qui pourraient être en lien avec les autorisations (accès restreint, autorité, notifications) mais cela ne résout pas le problème, j’ai toujours le message d’erreur.

      J’ai bien ajouté la ligne
      spip_log("id_auteur session : ". $GLOBALS['visiteur_session']['id_auteur'], 'formulaires' . _LOG_ERREUR);

      le log formulaires.log montre des erreurs différentes :

      2022-01-11 22:23:08 127.0.0.1 (pid 81065) :Pub:ERREUR: signature ajax form incorrecte : formidable (formulaire non signe mais on a une session)
      2022-01-11 22:38:21 127.0.0.1 (pid 81777) :Pub:ERREUR: signature ajax form incorrecte : newsletter_subscribe (formulaire non signe mais on a une session)
      2022-01-12 11:58:39 127.0.0.1 (pid 113736) :Pub:ERREUR: signature ajax form incorrecte : newsletter_subscribe (formulaire signe mais ne correspond pas a la session)

      mais je comprends pas cette histoire de session.

    • je pense que la ligne que tu as ajoutée n’est pas au bon endroit car on devrait avoir une ligne en plus dans les logs

    • Apparemment c’est le plugin nospam dernière version qui fout le bazar chez moi : sur les sites avec sa version 2.3.0 : ça passe pas

      Avec 1.6.3 - stable
      ça passe !

      j’ai une version NoSPAM 2.2.1 sur certains sites que je ne vois pas sur la page https://contrib.spip.net/NoSPAM mais qui ne pose pas de problème non plus.

      dd

    • OK je viens de tester, donc en effet j’ai reproduis un bug avec NoSpam 2.3.0, mais pas avec l’erreur que tu pointes.

      J’ai corrigé le bug que j’ai reproduit https://git.spip.net/spip-contrib-extensions/nospam/commit/7b81855fe33ad21077728e45b5d6e8a5886888f7
      et avec la version 2.3.1 du plugin qui devrait être dans les bacs rapidement je n’ai plus de problème.

      Je te laisse vérifier si ça répare aussi ton problème

    • Merci avec la version 2.3.1 c’est tout bon.

    Reply to this message

  • Bonjour
    J’aimerais signaler qu’un administrateur restreint (statut paramétrable dans l’espace privé) n’a pas accès aux rubriques “Inscrits aux envois par email” et “liste de diffusion”.
    L’administrateur doit avoir l’accès à l’ensemble du site.
    Est-ce normal?

    Cordialement.

    Reply to this message

  • 1

    Bonjour,
    Je voulais savoir s’il était possible de désinscrire en masse des adresses de ce plugin à l’aide de l’import de fichier csv. Il ne me semble n’avoir vu que la possibilité d’inscription.
    L’objectif étant de nettoyer la liste des inscriptions après une vague massive d’inscriptions bidons.
    Merci d’avance pour votre retour
    Cordialement
    Jérôme

    • Tu peux le faire en important une liste avec des statuts, c’est marqué dans la description...

    Reply to this message

  • 1

    Sur un site en SPIP 3.2.11 [24473] avec MailSubscribers 3.0.5 - stable
    j’ai des utilisateurs qui ne peuvent s’inscrire aux infolettres. Dans l’email de confirmation qu’ils reçoivent (double opt-in) le lien de confirmation renvoie “impossible de s’inscrire cette adresse mail n’existe pas”

    Dans la base de données du site le statut de leur enregistrement dans “spip_mailsubscribers” est à “poubelle” alors que le champ “optin” est à “[newsletter:en attente]”

    Je ne comprends pas pourquoi. Et cela concerne environ 1/10 utilisateurs depuis peu (FAI variés).

    Merci

    • En complément : sur la page ?exec=mailsubscriber&id_mailsubscriber=1867
      je ne peux pas changer le statut “à la poubelle” en “en attente confirmation” même en tant que webmestre.
      C’est bloqué !

      Il semblerait qu’au bout d’1 ou 2 jours, l’enregistrement du mailsubscriber disparaisse complètement de la base.

      Je n’ai pas essayé de modifier dans la base directement, j’attends de savoir ce qui se passe.

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

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