Les spécifications du format SVG permettent d'insérer des liens dans les fichiers svg (cf. SVG/links).

Il est alors permis d'associer un fichier à chacun des noeuds d'un graphe ou arbre généré dans le format SVG par la fonction graph>dot de fv-morphologie... Et, par exemple, d'écouter dans un navigateur les différents noeuds d'un arbre de recouvrement minimal qui représenterait un espace compositionnel résultant d'analyses acoustiques.

Le shell-script links2svg suivant automatise l'insertion de liens à l'aide de commandes UNIX ou Linux :


#!/bin/bash
# ajoute des liens a des noeuds d'un fichier svg issu de la commande dot, neato
# et graph>dot de fv-morphologie
# Frederic Voisin, 2011

svgfile=$1
linksfile=$2

while read nodelink
do
node=`echo $nodelink |awk 'print $1'`
link=`echo $nodelink |awk 'print $2'`
line=`sed -n '/node\">\ '$node'</=' $svgfile `<br># echo $line<br>i=`expr $line + 1`<br>cat $svgfile | sed -e ''$line' a\<br><a xlink:href="'$link'">' -e ''$i' a\<br></a>' > $svgfile-tmp<br>mv $svgfile-tmp $svgfile<br>done < $linksfile</p> <p></code></p> <p>Le premier argument (svgfile) est un fichier SVG qui représente un graphe, le second argument (linksfile) est un fichier texte dont chaque ligne associe le nom exact d'un noeud du graphe au lien local ou internet auquel on souhaite qu'il renvoie. Chaque lien peut être soit une URL (par exemple: http://www.site.net), soit le chemin (path) d'un fichier local. Chaque noeud et lien sont séparés par un espace ou une tabulation. Par exemple :<br><code><br>n1 son1.mp3<br>n2 son2.mp3<br>...<br></code></p> <p>Ce script, links2svg, peut être exécuté par la commande :<br><code><br>./links2svg graph.svg liens.txt<br></code><br>On prendra soin d'éviter les caractères accentués ou spéciaux qui peuvent être mal interprétés par les différents programmes ou formats invoqués (Lisp, dot/neato, SVG).</p> <p class="article-doc"><a href="/images/zip/links2svg-4.zip">links2svg.zip</a></p></section> <footer> <p>© Frédéric Voisin 2026</p> </footer> </body> </html>