aboutsummaryrefslogtreecommitdiff
path: root/css/dune
blob: 1e32b1959b11ef3e03ef79c18ee845e8398aa085 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(executable
 (name merger)
 (libraries 
   brr
   brr.note
   elements
   blog
   application
   Css
   css_lib
   )
 (modes js)
 (preprocess (pps js_of_ocaml-ppx))
 (link_flags (:standard -no-check-prims))
 )

(rule
  (targets css.js)
  (deps merger.bc.js)
  (action (copy %{deps} %{targets})))
teral.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
.. -*- mode: rst -*-
.. -*-  coding: utf-8 -*-

Ajouter graphviz dans les documents restructuredText
####################################################

:date: 2013-10-12
:tags: Libre, reStructuredText
:logo: static/images/graphe.png
:summary: |summary|

.. image:: |filename|/images/graphe.png
    :class: floatleft
    :scale: 50
    :alt: Graphe

|summary|

.. |summary| replace::
    C'est en utilisant un produit tous les jours que nous vient l'envie de
    l'améliorer. Dernièrement, j'ai eu besoin de générer un texte contenant des
    graphes. Il y a quelques temps, j'aurais préparé mes graphes dans des
    images à part, et inclus les images dans mon document, sauf que cette fois,
    j'ai décidé d'inclure directement le code du graphe dans mon document.

Graphviz_ est une merveilleuse librairie pour générer des représentations de
graphes comme celle qui se trouve à côté. À partir d'un fichier texte contenant
la description du graphe, l'application nous génère une image (avec différents
formats possibles) du graphe. Par exemple, l'image ci contre peut-être
représentée avec le code suivant :

.. code-block:: C

    digraph G {

        a -> a
        a -> b
        d -> b
        b -> c
        c -> b
    }

.. _Graphviz: http://graphviz.org/

Je ne rentre pas davantage dans la description de gv, l'application est très
complète, et un article ne suffirait pas à tout couvrir !

La question qui se pose est donc de pouvoir inclure directement graphviz lors
de la génération du document. Pour ça, j'ai créé une nouvelle directive_,
*graphviz* qui appele directement dot lors de la génération du document.

.. _directive: http://docutils.sourceforge.net/docs/ref/rst/directives.html

.. code-block:: rst

    Voici une image :

    .. graphviz::

        digraph G {
    
            a -> a
            a -> b
            d -> b
            b -> c
            c -> b
        }

deviendra :

    Voici une image :

    .. image:: |filename|/images/graphe.png

Pour ceux que ça intéresse, voici le script pour rst2html_ et rst2latex_. Le
code est similaire, cela ajoute une nouvelle directive qui génère le document à
l'aide de graphviz, et stocke l'image dans un fichier temporaire, créé dans un
répertoire *tmp* (qui doit exister avant de lancer la commande). On pourrait
très facilement l'ajouter à rst2odt en suivant le même principe.

C'est tout, le langage est tellement simple que ça serait dommage de ne pas en
profiter !

.. _rst2html: |filename|/resources/rst_graphviz/rst2html.py
.. _rst2latex: |filename|/resources/rst_graphviz/rst2latex.py