[Linux] Graphs/Mindmaps à la unix ?

Marc Chantreux mc@::1
Ven 18 Oct 15:42:17 CEST 2024


salut tou*,

pour rappel: pour s'abonner à une liste du lug, envoyez un message à

	laliste-join@::1

dans notre cas donc:

	linux-join@::1

puis poster avec

	linux@::1

il y a un peu de shell qui passe par ici mais quand on parle de code,
c'est plutôt sur

	code@::1

et pour ce qui est de la flammekuche connexion et l'animation (plutôt
mort mais du coup ca coute rien de s'abonner)

	lug@::1


On Fri, Oct 18, 2024 at 11:10:20AM +0200, Miguel Arpa Perozo wrote:
> Avez-vous des outils à conseiller pour faire des mindmaps et/ou des graphs ?

le gros avantage de la liste linux c'est que tu auras probablement plus
diversité dans les réponses. d'un autre coté je trouve que cette liste
fait un peu doublon avec

	debian-user-french@@@@@@lists.debian.org

ce sont les mêmes sujets mais avec plus de monde.

pour en revenir à la question: perso j'utilise l'atelage:

* dwm me permet d'avoir un zathura et un vim side by side
	* vim pour éditer le code
	* zathura pour voir le résultat
* make et dot pour mettre le svg/png/pdf/ps/… à jour

préparation:

	<<-% cat > Makefile
	%.ps: %.dot; dot -Tps $< > $@
	%

	<<-% cat > demo.dot
	digraph {
		O [label="le truc central"]
		hello -> { miguel, marc } -> O
		flammekuche -> { Lug, Katzele, AlsaceDigitale, Hackstub, ARN } -> O
	}
	%

depuis vim:

	!zathura %:p:r.ps&
	set aw
	let &mp="make %:p:r.ps"
	nnoremap <c-s> :make<cr>

voilà: maitenant si tu fais ctrl-s, le ps se met à jour

à noter que graphviz tout seul c'est vite chiant quand tu veux
introduire de la logique au dela des simples directions donc perso
j'écris des petits DSL avec zsh ou m4 pour rendre la chose plus naturelle.

j'ai mis de petites choses en ligne qui démontrent l'idée:

	http://oss.phear.org/merisedot/
	https://github.com/eiro/graphviz-zoo

mais avec le temps j'ai laissé tombé m4 au profit des heredocs et des
tableaux: c'est bien moins puissant mais c'est simple et très suffisant
la plupart du temps. genre

starnet() <<% cat
digraph {
	# https://graphviz.org/doc/info/shapes.html
	node[shape=star] $1;
	node[shape=box];
	$1 -> { ${(j:;:)hosts} }
}
%

et du coup je peux écrire:

hosts=(
	naboo kamino garqi
	coruscant tatooine
	endor rishi mustafar
) starnet darkstar | dot -Tsvg

remarques générales sur graphviz:
* tu peux diviser les nodes en sous-nodes qui deviennent des ancres
* les points cardinaux des nodes sont utilisables
* tu peux aller assez loin en terme de tunning; genre:
  https://graphviz.org/Gallery/twopi/happiness.html

par contre tu ne peux pas expliquer grand chose à graphviz pour ce qui
est de la position des neuds (l'idée étant précisément de se débarasser
du problème). Donc si tu as un directeur de com. dans les parage, il
vaut mieux passer à des trucs graphiques. coté linux on avait dia dans
le temps mais https://wiki.gnome.org/Apps/Dia/ la derniere news semble
être de 2011 et le paquet debian traine une dépendance à gtk2.0 :'(

hth

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79



Plus d'informations sur la liste de diffusion linux