URL: https://linuxfr.org/users/tchetch/journaux/r%C3%A9f%C3%A9rences-et-ldap Title: Références et LDAP Authors: Etienne Bagnoud Date: 2010年11月14日T17:48:18+01:00 Tags: Score: 4 Dernièrement il est apparu un journal parlant la [la gestion de citations](https://linuxfr.org/~zaurus/30426.html). En lisant ce journal et les commentaires, je me suis questionné sur ma propre manière de faire : je ne gère rien. En fait les seules références que j'utilise sont des références aux différentes normes, RFC et autres ITU-T X-quelque chose. Parfois des URL vers des articles sur le Web ou sur Internet. J'ai donc plein d'URL super sympa mais éparpillées (le pire c'est celle que je m'envoies par courrier électronique pour m'en souvenir (et oui, l'email comme moyen de sauvegarde)). Je me suis dit "ce serait sympa d'avoir tout ça dans un annuaire LDAP", les annuaires LDAP étant l'absolu en terme de cool-attitude :-) J'ai donc réfléchi a une méthode pour le faire. Les objectifs étant simple : * Indépendant, tant que possible, du langage de documentation ([wikicreole](https://secure.wikimedia.org/wikipedia/en/wiki/WikiCreole), [markdown](https://secure.wikimedia.org/wikipedia/en/wiki/Markdown), [rest](https://secure.wikimedia.org/wikipedia/en/wiki/ReStructuredText), ...) * Simple, lecture sur [stdin](https://secure.wikimedia.org/wikipedia/en/wiki/Stdin#Standard_input_.28stdin.29), écriture sur [stdout](https://secure.wikimedia.org/wikipedia/en/wiki/Stdout#Standard_output_.28stdout.29) * La syntaxe ne demandant pas d'utiliser plus d'un doigt sur mon clavier Dvorak-US (j'utilise vi, pas emacs :-) * La syntaxe demandant au plus 2 caractères en plus du nom de la norme Je me suis donc penché sur les langages de script existant. Ces langages n'étant pas assez trollesque, j'ai décidé de le faire en C :-) (non, pas d'autres raisons, si j'avais fait en Perl, ça aurait été presque normal, en Python, c'est la mode donc c'est bon, avec sed ça aurait fait vieux barbu mais je me rase, par contre avec C, c'est certain que le choix est trollable à mort). La syntaxe reste très simple, on met un = suivi du nom de la norme, si on est dans le texte un espace termine la balise, sinon on met un = en fin de balise (donc pas d'espace dans les noms de balise). Un exemple : La =RFC1149 défini le MTU standard comme étant de 256 milligrammes. [...] La qualité de service est traitée dans la =RFC2549=. Donc ce programme va prendre ce texte et remplacer ces deux normes (=RFC1149 et =RFC2549=) par quelques choses de plus agréable, défini par le fichier de configuration. Dans ce cas la chaîne de remplacement indiquée dans la configuration est "`$$documentidentifier$$ <$$documentlocation$$>`_", le motif de recherche LDAP est "(&(objectclass=*)(cn=$$))" et l'annuaire contient : dn: cn=RFC1149,ou=documentation,dc=example,dc=org objectclass: document cn: RFC1149 documentidentifier: RFC 1149 documentlocation: [http://www.rfc-editor.org/rfc/rfc1149.txt](http://www.rfc-editor.org/rfc/rfc1149.txt) dn: cn=RFC2549,ou=documentation,dc=example,dc=org objectclass: document cn: RFC2549 documentidentifier: RFC 2549 documentlocation: [http://www.rfc-editor.org/rfc/rfc2549.txt](http://www.rfc-editor.org/rfc/rfc2549.txt) Le résultat, une fois traité par ce programme magique, est : La `RFC 1149 <[http://www.rfc-editor.org/rfc/rfc1149.txt>](http://www.rfc-editor.org/rfc/rfc1149.txt>)`_ défini le MTU standard comme étant de 256 milligrammes. [...] La qualité de service est traitée dans la `RFC 2549 <[http://www.rfc-editor.org/rfc/rfc2549.txt>](http://www.rfc-editor.org/rfc/rfc2549.txt>)`_. Magique ! Bon voilà pour finir, peut-être indiquer que ce programme, prénommé lref pour "Ldap Revient En Force", "Ldap REFerence" ou "Lannuaire pour les Références Enfantines et Faciles" ou encore "Le Rose ÉléFant" (comme vous voulez), est sous la seule vraie licence Libre, soit la [WTFPL](http://sam.zoy.org/wtfpl/) (pas comme la GPL ou la BSD X-clause(s) qui sont des licences tristement propriétaires et annoncées comme libre). Je vais indiquer un lien pour éventuellement obtenir ce programme, il faut "svn co [http://www.tchetch.net/svn/lref/tags/lref-0.1"](http://www.tchetch.net/svn/lref/tags/lref-0.1") (ou svn export). Il y a aussi un [websvn](http://www.tchetch.net/websvn/listing.php?repname=lref&path=%2Ftags%2Flref-0.1%2F#_tags_lref-0.1_). Il y a aussi une [page web](https://www.tchetch.net/wiki/projects/lref). Pour installer, il faut lire le "README", mais il y a même pas de Makefile, il y a pas de paquets Debian, ni de RPM, rien, c'est pas "Michu Ready" (d'ailleurs ça s'utilise en ligne de commande). Pour terminer (encore une fois), cette solution n'est peut-être pas compatible avec les langages de pré-cités (wikicreole, markdown, rest, ...), c'est vaguement testé avec rest et visuellement admis de fonctionner avec markdown. Mais ça marche peut-être avec Tex ... Le numéro de version est 0.1, ça veut rien dire, la prochaine version pourrait être la 100.99.87, je cherche encore une manière débile de versionner ce logiciel (si vous avez une idée).