Dalidoc 3

Petite Histoire de la Production de Documents chez dalibo

Tout le monde déteste LibreOffice

Le Besoin

  • rédiger un document à plusieurs
  • gérer les révisions (rollback, diff)
  • travailler dans le train (ou pas)
  • produire des slides et un manuel à partir de la même source
  • se concentrer sur le fond et pas sur la forme

Version 1 (2005 - 2009)

darcs + docutils + wrapper en python + latex

entrée : reStrurated Text (reST)

sortie : pdf

Auteurs

Chaine assemblée par : Dimitri Fontaine

Maintenue par : personne

Avantages

  • mode offline
  • simple

Défauts

  • Pas de mode web
  • encodage en latin9
  • les dépots darcs explosent tous les 3 mois
  • installation de latex sur chaque poste
  • templates très complexes
  • impossible à maintenir
  • gestion des conflits ?

Plus d’info

https://www.dalibo.info/outils/dalidoc

Version 2 (2009 - 2017)

dokuwiki + plugins PHP + Libre Office

entrée : syntaxe doku

sortie : ODT, PDF, S5

Auteurs

Chaine assemblée par : Damien

Maintenue par : Damien + Nico T. + Iogui + …

Avantages

  • mode web
  • diff facile
  • rien à installer
  • possibilité de retoucher la version ODT
  • templates très simples
  • plugins en PHP
  • verrous explicites

Défauts

  • Pas de mode offline
  • Génération des PDF avec Libre Office
  • Impossible de produire des livres (bug ODT)
  • Les slides S5 sont moches
  • templates trop simples
  • La chaine est difficile à publier

Plus d’info

https://www.dalibo.info/formation/prototype_chaine_de_production_docs

Version 3 (2017 - …. )

Chaine

gitlab + pandoc + latex + filtres + docker + gitlab-ci

ou

github + pandoc + latex + filtres + docker + travis-ci

entrée : markdown

sortie : ODT, PDF, S5, Reveal, HTML, EPUB, ICML, etc.

Auteurs

Chaine assemblée par : Adrien et Damien

Maintenue par : Damien + ????

Avantages

  • mode web + mode offline
  • diff facile
  • rien à installer
  • simple
  • format markdown = standard de facto
  • Filtres en python, perl ou Haskell
  • pas de verrous explicite mais des branches
  • La chaine peut être publiée

Défauts

  • templates complexes

Plus d’info

https://gitlab.dalibo.info/marketing/themes

Demo

  • ça marche !!!!!

  • et en local ça marche aussi !!!!!

Fonctionnement de la V3

  • specs
  • pandocker
  • dépot Thèmes
  • dalidoc / makefile
  • post-prod

specs

  • versionnée tous les 3 mois
  • v 17.12 = debian Stretch + pandoc 1.19 + ….
  • pas de support sur les autres plateformes !

pandocker

  • Un multi-compilateur de 2Go :-)
  • Versionné tous les 2 mois
  • Image publique

https://github.com/dalibo/pandocker/issues

docker run -v `pwd`:/pandoc dalibo/pandocker x.md -o x.epub

dépôt Thèmes

  • Contient les templates dalibo
  • musée des horreurs : tex, html/css, odt, epub, beamer, python
  • une batterie de tests pour éviter les régressions
  • Dépot privé ! NE PAS DIFFUSER

dalidoc / makefile

  • cas simple : un fichier .md monolithe
    • conferences
  • cas complexes : factorisation et assemblage
    • script dalidoc dans le dépot manuels
    • makefile ailleurs

post-prod

Prendre un PDF et appliquer les codes de l’édition

  • scripts Python niveau cm2
  • format différent selon l’imprimeur
  • pour l’instant 1 seul service supporté : Peecho

TO DO

  • Passage à pandoc 2
  • Simplification de pandocker
  • Post-prod pour Lulu
  • pas mal de petits bugs dans les templates

https://gitlab.dalibo.info/marketing/themes/issues

https://github.com/dalibo/pandocker/issues

Une Révolution

  • Contrats
  • manuels des Socles
  • Statuts
  • ….

Une Conquête du monde

Adoption de la chaine par la communauté ?

  • publication des workshops
  • publication des dalibo guidelines
  • workshop PG 11 en anglais avec Postgres Pro ?
  • contacts avec d’autres organismes ?