Un Electron Libre...

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 29 juin 2008

Déplacement des tutoriels de wiki.unelectronlibre.info vers www.unelectronlibre.info/tutoriels/

Je pourrais me limiter à un "tout est dans le titre" mais ce serait pas bien...

J'initialise (enfin) la première phase de ce qui devrait être un grand chamboulement à la fin :-)

Les tutoriels se déplacent donc d'un vieillissant dokuwki vers l'espace "Tutoriels" basé sur le jeune projet de documentation Sphinx (NDLR, il sert notamment pour la future documentation de Python et Django).

Sphinx est basé sur la syntaxe ReStructured Text, incorpore la coloration syntaxique, gère des niveaux d'arborescence et est en mesure de sortir votre documentation sous plusieurs formats (HTML, LaTeX, PDF). Il est fait pour gérer de la documentation et il le fait plutôt bien.

Certains pourraient dire qu'un wiki est plus sympa car plus ouvert mais bon vu le nombre d'apports externes que j'ai eu depuis son lancement, je risque pas grand chose. Merci quand même aux quelques contributeurs :-)

Il me reste encore à :

  • Mettre les sources sur un dépot mercurial accessible de tous FAIT
  • Annoncer la licence CC qui va bien : NC-BY-SA FAIT
  • Rediriger wiki.unelectronlibre.info vers ce nouvel espace FAIT

J'ai profité de l'occasion pour faire le ménage, certains tutoriels ne seront donc plus disponibles une fois la migration des urls effectives. J'en ai également profité pour mettre à jour certains (remplacement de apt-get par aptitude, php4 par php5, corrections de fautes/typo, etc).

Je peux donc oublier la syntaxe Dokuwiki maintenant (me reste encore celle de SPIP, Dotclear, Textile (Redmine) et reStructured Text (Doc Django, Projets Django, Tutoriels)). Elle me génait énormément quand je jouais simultanément avec Trac (car elles sont quasiment opposées dans leur principe, notamment pour les titres).

Edit du 30/06 : Redirection OK, Licence OK, Source OK - J'ai même crée un projet tutoriels sur mon Chaudron pour toute remarque sur les tutoriels ;-)

dimanche 18 novembre 2007

Pygments et ReST (partie 2 sur je-sais-pas-combien-encore)

Suite de mon aventure sur Pygments et ReST :

En lisant la documentation rapide (QuickStart) de Pygments, on trouve comment récupérer la feuille de style fournit par défaut :

pygmentize -S default -f html > style.css

Ensuite, lors de la transformation Rest vers HTML, il suffit de faire :

rst2html.py source.txt cible.html --stylesheet-path=style.css

Il y a surement plus propre mais bon, ça marche... Cela veut aussi et surtout dire que pour produire un site à partir de document s au format ReST, il faut construire sa feuille de style CSS en incluant celle de pygments notamment.

Et voilà le résultat :

ReST et Pygments

Voir la capture d'écran

Pygments et ReST (partie 1 sur je-sais-pas-combien-encore)

Dans le monde python, il y a :

  • Une syntaxe de documentation puissante mais pas aisée à prendre en main : ReST, pour ReStructured Text, fourni via docutils. Voir la QuickRef de ReST.
  • Pygments, un système de coloration syntaxique, un peu comme GeSHi en PHP.

Dans vos documents rédigés en ReST, il est possible d'inclure Pygments pour enrichir le rendu de vos documents.

Il vous faut pour cela :

  • docutils installé sur votre ordinateur,
  • pygments aussi
  • récupéré le fichier external/rst-directive.py présent dans le fichier source de pygments 0.9 et le copier dans /usr/lib/python2.5/site-packages/docutils/parsers/rst/directives/

Ensuite, et c'est là où le système manque un peu de flexibilité, il faut déclarer cette directive :

  • Editer /usr/lib/python2.5/site-packages/docutils/parsers/rst/directives/init.py (il y a deux "_" de chaque coté du init - bug de DC2 apparemment) pour ajouter une ligne :
_directive_registry = {
      'sourcecode': ('rst-directive', 'pygments_directive'),
      'attention': ('admonitions', 'Attention'),
      ...
      }

Cette déclaration dit que quand j'utiliserais la directive sourcecode dans mon document ReST, alors il doit aller utiliser la classe pygments_directive présente dans le fichier rst-directive.py.

  • Editer le fichier /usr/lib/python2.5/site-packages/docutils/parsers/rst/languages/en.py (et les éventuelles traductions) :
directives = {
      # language-dependent: fixed
      'sourcecode': 'sourcecode',
      'attention': 'attention',
      ...
      }

Voilà pour l'installation de pygments et docutils.

Dans votre texte au format ReST, il vous suffit d'utiliser la directive sourcecode comme dans l'exemple suivant :

Tutoriel : partie 1
===================

settings.py
-----------

.. sourcecode:: python

    # Django settings for tutoriel project.

    DEBUG = True
    TEMPLATE_DEBUG = DEBUG

    ADMINS = (
        # ('Your Name', 'your_email@domain.com'),
    )

Si vous voulez que les numéros de lignes soient également mentionnés, il vous faut décommenter la ligne suivante (dans rst-directives.py) :

et modifier votre fichier de la façon suivante (ajout de la directive :linenos: :

Tutoriel : partie 1
===================

settings.py
-----------

.. sourcecode:: python
    :linenos:

    # Django settings for tutoriel project.

    DEBUG = True
    TEMPLATE_DEBUG = DEBUG

    ADMINS = (
        # ('Your Name', 'your_email@domain.com'),
    )

Je vous fais grâce du code html de rendu, surtout que pour le moment, je n'ai pas de coloration syntaxique (cf Pygments et ReST Partie 2)