fred voisin

(smart (music (engines)))

Accueil > Trucs et astuces > Insérer des liens aux nœuds d’un fichier dot.svg

Insérer des liens aux nœuds d’un fichier dot.svg

1er mars 2012

jeudi 1er mars 2012, par Fred

Insérer des liens aux noeuds d’un fichier svg généré par les commandes dot, neato, Graphiz ou fv-morphologie.

#!/bin/bash
# ajouter des liens a des noeuds d'un fichier svg issu des commandes dot
# (webdot, Graphviz) et/ou graph>dot (fv-morphologie)
# FV, 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\"><title>\ '$node'</=' $svgfile `
# echo $line
i=`expr $line + 1`
cat $svgfile | sed -e ''$line' a\
<a xlink:href="'$link'">' -e ''$i' a\
</a>' > $svgfile-tmp
cp $svgfile-tmp $svgfile-tmp-tmp
mv $svgfile-tmp $svgfile
done < $linksfile

Commande :

./links2svg fichier.svg nodes-links

Le fichier svg est supposé issu des commandes dot ou neato (webdot- Graphviz) ou graph>dot de fv-morphologie.
Le fichier nodes-links contient pour chaque ligne le nom du noeud et le lien correspondant.
Ce script peutéventuellement être optimisé (pour svg ?) en consultant notamment webdot/hnodes.html.