SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 169 visiteurs en ce moment

Accueil > Rédaction > Assistants de rédaction > Création d’articles à partir de fichiers OpenOffice > odt2spip v3+ : création d’articles à partir de fichiers textes

odt2spip v3+ : création d’articles à partir de fichiers textes

11 octobre 2017 – par Matthieu Marcillaud – commentaire

5 votes

Ce plugin permet de générer des articles SPIP à partir du téléversement de fichiers au format .ODT (OpenOffice ou LibreOffice Writer). Il gère la majorité des raccourcis typographiques, détecte les différents niveaux de titre et fait l’intégration des images automatiquement.

Également, avec un serveur préalablement configuré, les fichiers .DOC, .DOCX ou .HTML peuvent aussi être utilisés.

Important :
L’analyse des fichiers impose que l’extension XSL de PHP soit active sur le serveur web

Historique

La version 3 du plugin apporte la possibilité de convertir automatiquement des documents Word ou HTML. Le reste de la documentation est inchangé.

Installation

  • téléchargez le zip du plugin correspondant à votre version de SPIP
  • pour l’installation et l’activation, suivez la procédure standard : cf la documentation officielle

De base, le plugin saura traiter les documents ODT.

Conversion de documents (Word, HTML) vers le format ODT

Le plugin peut aussi convertir à la volée des documents Word (DOC, DOCX) ou HTML vers le format ODT et être ainsi traité pour créer un article dans SPIP. Il faut cependant une configuration particulière. Vous pouvez aussi convertir manuellement les documents Word sur votre ordinateur.

A. Conversion automatique des documents Word

Deux possibilités :

1. Disposer de l’application libreoffice sur le serveur

Le serveur sur lequel le site est installé doit disposer de l’application libreoffice. Sur des serveurs à base de Debian, cela s’installe généralement avec la commande apt-get install libreoffice (prévoir 1Go d’espace disque tout de même).

Un site SPIP ayant accès à l’application libreoffice peut servir de serveur de conversion pour d’autres sites SPIP, en le configurant de la sorte sur sa configuration (?exec=configurer_odt2spip).

2. Disposer d’un site SPIP « serveur de conversion »

En configuration (?exec=configurer_odt2spip), un serveur de conversion peut être indiqué, ainsi qu’une clé d’API.

Un serveur de conversion est simplement donc un site SPIP sur lequel est activé ce plugin avec l’application libreoffice présente sur son serveur.

B. Conversion manuelle des documents Word

Pour passer d’un fichier Word (format .doc ou .docx) à un fichier .odt utilisable par ce plugin, il est conseillé de faire la conversion (« enregistrer sous... » au format ODT) dans LibreOffice (ou OpenOffice) et non pas dans Word.

Utilisation

Une fois le plugin activé, dans la page de gestion d’une rubrique vous trouverez une boite de dialogue qui permet de choisir le fichier à télécharger depuis votre ordinateur : "Créer un article à partir d’un fichier".

Formulaire de création d’un article depuis un document ODT
Le formulaire propose d’attacher automatiquement le document à l’article.
Formulaire de création d’un article depuis un document texte
-  Lorsque le plugin odt2spip sait traiter les documents Word, les fichiers aux extensions DOC, DOCX et HTML seront acceptés.
-  Lorsque le site est multilingue, un sélecteur de langue est présent.
-  Lorsque le plugin Bigup est présent, on peut glisser le fichier.

Une fois validé l’article est automatiquement créé avec le statut "proposé à la publication", si nécessaire le fichier ODT original est attaché comme document à l’article et le plugin vous bascule sur la page de cet article.

La transformation opérée par le plugin

Ce plugin ne fait qu’une transformation du contenu du fichier en code SPIP : il n’assure aucun miracle si votre fichier initial est construit de façon non-conforme aux règles de l’utilisation d’un traitement de texte et ne fera rien que vous ne puissiez reproduire avec les raccourcis typographiques de SPIP...

Un exemple de page générée à partir d’un fichier "type" : http://tice.espe.univ-amu.fr/demo/s...

Plus de précisions :

  • il est nécessaire d’avoir utilisé les styles pour définir les titres dans le fichier OpenOffice si vous voulez que le plugin les détecte. La conversion se fait selon les règles suivante (que les puristes passent leur chemin, il n’y a ici aucun respect des aspects sémantiques habituellement liés à l’utilisation des raccourcis typographiques !) :
    • si il existe au moins un paragraphe avec le style Titre, son contenu est utilisé pour générer le titre de l’article. Sinon c’est le Titre de niveau le plus important qui est utilisé : Titre 1 > Titre 2 > Titre 3... .
    • Le premier niveau de Titres est transformé en intertitres SPIP {{{Titre niveau 1 intertitre}}}(si Titre 1 n’existe pas, Titre 2 est utilisé à sa place, Titre 3 à la place de Titre 2, et ainsi de suite)
    • le deuxième niveau est mis en gras et séparé du restant par des sauts de lignes {{Titre niveau 2 en gras}}
    • tous les autres niveaux de titre sont passés en italique et séparés par des sauts de ligne {Titres de niveau 3, 4, 5... en italique}
  • si d’aventure vous aviez décidé d’utiliser le plugin Enluminure typographique ou le plugin Intertitres hiérarchisés qui définissent et utilisent des niveaux de titres supplémentaires (vade retro satanas !), odt2spip détecte leur présence et, automatiquement, utilise les raccourcis "enrichis" tels que {2{titre niveau deux}2} ou {4{titre niveau quatre}4} (ces raccourcis sont interprétés par ces 2 plugins).
  • Le plugin récupère les images intégrées dans le fichier d’origine à condition qu’elles soient au format jpg ou png ou gif (n’espérez rien si vous avez des fichier BMP ou TIFF intégrés !), les retaille pour approximer du mieux possible la taille qu’elles avaient dans le texte, les intègre comme documents SPIP et les place avec un raccourci de la forme <imgXXX|left> ou <imgXXX|right> ou <imgXXX|center> en fonction de la position à laquelle se trouvait l’image dans le texte d’origine.
    Attention ! pour que cette fonctionnalité soit opérationnelle, il faut que les images aient été intégrées dans le texte en utilisant les fonctions d’insertion d’image (menu "Insertion" > "Image" > "A partir d’un fichier...") et non pas via un copié/collé du contenu de l’image dans le texte (qui génère un bitmap non récupérable).
  • Les formules mathématiques (rédigées à l’aide de l’éditeur d’équation natif d’OOo Writer ou des outils complémentaires tels l’excellent Cmath) sont en principe complètement gérées : le plugin génère le code LateX et le place dans une balise math : <math>$\frac{\sqrt{2x+9}}{4y-6}=\frac{\alpha 3}{\beta 2}$</math>
  • Les notes de bas de page sont gérées sans problèmes ni restrictions.
  • Pour les tableaux, pas de problème tant que vous n’essayez pas de faire des tableaux imbriqués (c’est à dire un tableau dans une cellule de tableau) : les fusions de cellules horizontales et verticales sont gérées en principe correctement.
  • Les listes à puce et numérotées, imbriquées ou non, sont en principe correctement gérées tant qu’elles ne sont pas interrompues par d’autres éléments (donc pas de reprise de numérotation d’une liste à la suivante).

Eléments non-gérés ou supprimés

  • Pour les tableaux et les listes le plugin ne gère pas les contenus ayant un style de Titre.
  • Les fioritures de style de texte sont limitées à celles autorisées par les raccourcis typographiques : gras et italique donc pas de texte de couleur ni avec des fonds colorés (beurk !), pas de variations de police ni de taille de texte (ce qui évitera que les rédacteurs pourrissent la charte graphique du site !)
  • Les en-têtes, pieds de page, index ou table des matières sont purement et simplement supprimés.
  • Les dessins (flèches, bulles et autres formes crées avec l’outil de dessin d’OOo Writer) ne sont pas (encore ?) supportés.

TO DO

  • Comme d’habitude, piètre graphiste que je suis, si quelqu’un avait le courage de faire un logo moins crasseux, il est le bienvenu ! Merci popojcb !
  • Ajouter la gestion des dessins SVG intégrés dans le fichier texte (avec une version jpg obtenue par conversion automatique pour les navigateurs qui supportent pas svg..)
  • Ajouter la gestion des équations mathématiques qui sont en MathML dans le fichier texte (si vous connaissez un convertisseur MathML -> LaTeX écrit en PHP et open-source, merci de me prévenir !) Merci Amaury Adon pour m’avoir trouvé la référence de la librairie XSLT "MathML 2.0 to LaTeX"
  • Ajouter une interface de configuration pour rendre paramétrable les conversion "imposées" pour les niveaux de titre...

Notes techniques

Analyse du fichier ODT
Le moteur de transformation du fichier odt est basé sur une feuille de style XSLT (/odt2spip/inc/odt2spip.xsl) qui opère sur le fichier content.xml extrait du fichier odt envoyé et dézippé dans un répertoire temporaire /tmp/odt2spip/XXX où XXX représente l’id_auteur en cours . Cette transformation permet de produire le titre et le texte de l’article. Les images sont également extraites du fichier dézippé et intégrées comme documents attachés à cet article (après un éventuel redimensionnement). Le répertoire temporaire de l’auteur (/tmp/odt2_spip/XXX) est effacé à la fin de l’opération.

Test local du serveur libreoffice sous macOS
Pour un usage en local de la transformation des documents ODT, sous macOS, il suffit d’installer LibreOffice si ce n’est pas déjà le cas. Ensuite une constante dans mes_options.php est à renseigner avec le chemin à ’soffice’ tel que :

  1. define('_LIBREOFFICE_PATH', '/Applications/LibreOffice.app/Contents/MacOS/soffice');

Dernière modification de cette page le 11 octobre 2017

Retour en haut de la page

Vos commentaires

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Import ICS 2 et supérieur (agenda distant)

    2 août 2016 – 57 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

  • ScolaSPIP 4

    19 janvier 2016 – 257 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 95 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

  • Champs Extras 3

    16 janvier 2012 – 602 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Optimiser les URLS pour google actus

    19 juin 2012 – 28 commentaires

    Les sites publiant de l’information de type « nouvelles » peuvent prétendre à être indexés par le site google actualités. Pour cela il faut qu’ils répondent à quelques caractéristiques précises qui sont énoncées ici par google. L’une de ces caractéristiques (...)