Blockdiag, generador de diagrames de flux des de la terminal

Blockdiag, generador de diagrames de flux des de la terminal

Blockdiag és un programari desenvolupat amb Python per a generar diagrames de flux al vol, simplement programant un fitxer de text pla amb el tipus de diagrama que volem.

Conec des de fa temps Dia, LibreOffice Draw, Inkscape, Umbrello i altres, però necessitava un programari generador de Diagrames de flux més fàcils de mantindre entre distintes persones, i amb Blockdiag considere que seria una bona solució. És programari lliure, molt flexible, rapidíssim i pots preparar-te plantilles alhora de generar Diagrames que mantinguen les mateixes proporcions, imatges i iciones, format dels nodes, colors, tipus de font, etc. No estic dient que és millor o pijtor que Dia o LibreOffice Draw, simplement són filosofies de treball distintes.

He conegut aquest programari per recomanació de José Carlos García del grup d'OpenBSD, que feia servir Blockdiag com a extensió del sistema de documentació Sphinx.

La web oficial del projecte és http://blockdiag.com on tenim molts exemples, tota la documentació, i a més a més un sorprenent shell interactiva per a crear diagrames de flux des del navegador a http://interactive.blockdiag.com.

Bàsicament, podem mirar l'ajuda i conèixer les possibilitats d'aquest programari:

joan@x201:~$ blockdiag3 --help
Usage: blockdiag3 [options] infile
.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-a, --antialias Pass diagram image to anti-alias filter
-c FILE, --config=FILE
read configurations from FILE
--debug Enable debug mode
-o FILE write diagram to FILE
-f FONT, --font=FONT use FONT to draw diagram
--fontmap=FONT use FONTMAP file to draw diagram
--no-transparency do not make transparent background of diagram (PNG
only)
--size=SIZE Size of diagram (ex. 320x240)
-T TYPE Output diagram as TYPE format
--nodoctype Do not output doctype definition tags (SVG only)
-s, --separate Separate diagram images for each group (SVG only)
joan@x201:~$

Aquest és l'exemple més bàsic, ens generarà el nostre diagrama de flux agafant la configuració del fitxer en format .diag:

blockdiag3 flu1.diag

I ara tindrem una imatge en format PNG amb el mateix nom, és a dir flu1.png.

Si volem, podem fer servir una tipografia distinta especificant-li una font (True Font Type en el meu cas) amb el paràmetre --font:

blockdiag3 --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf password-caducado.diag

Per defecte ens genera imatges en format PNG amb el fons transparent. Si vullguèrem que el fons no siga transparent, farem servir el paràmetre --no-transparency:

blockdiag3 --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf --no-transparency password-caducado2.diag

També podem generar un document en format PDF amb -Tpdf:

blockdiag3 -Tpdf --font=/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf flu1.diag

Ací uns exemples que he fet per a anar provant opcions amb els nodes, el text, les etiquetes, etc. Fes click per veure-ho més gran:
Blockdiag, generador de diagrames de flux des de la terminal Blockdiag, generador de diagrames de flux des de la terminal

Aquest diagrama de flux (color verd) es fa amb el següent fitxer de text pla:

blockdiag {
orientation = portrait
default_fontsize = 9;
default_node_color = "#69b966";
span_height = 80;
//
// Dimension de los nodos
node_width = 220;
node_height = 100;
//
// Preparamos las etiquetas de los nodos
A [label = "Le ha caducado la contraseña"];
B [label = "¿Tiene certificado de la ACCV?", shape = flowchart.condition];
C [label = "Se lo puede cambiar desde\n http://cambio.dipcas.es" ];
D [label = "Cambiará su contraseña desde 'Gestion de usuarios y contraseñas' en la portada de la web de Asistencias."];
E,F [label = "Fin del procedimiento"];
//
A -> B;
B -> C [label = "Tiene"];
B -> D [label = "No tiene"];
C -> E;
D -> F;
}

I també el diagrama de flux (color blau) l'he fet amb el següent codi:

blockdiag {
orientation = portrait
default_fontsize = 9;
default_node_color = "#5080b2";
span_height = 80;
//
// Dimensión de los nodos
node_width = 220;
node_height = 100;
//
"No pueden imprimir" -> "¿La impresora está encendida?" -> "Si no está encendida hay que encenderla"
"Si no está encendida hay que encenderla" -> "Fin procedimiento"
"¿La impresora está encendida?" -> "Si está ok, ¿tiene los drivers?"
"Si está ok, ¿tiene los drivers?" -> "Si no, hay que instalar los drivers"
"Si está ok, ¿tiene los drivers?" -> "Si tiene los drivers, reiniciamos el ordenador"
"Si no, hay que instalar los drivers" -> "Fin procedimiento"
"Si tiene los drivers, reiniciamos el ordenador" -> "Fin procedimiento"
}

I bé, aquest ha segut un breu resum. Si vols saber totes les possibilitats d'aquest programari, visita la web oficial del projecte http://blockdiag.com.

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.

Utilitats

NAVEGACIÓ SENSE RATOLÍ

- Tab següent enllaç.
- Shift+Tab anterior enllaç.
- Enter activa l'enllaç.
- Alt+esquerra anar arrere.

CONTRAST DE COLORS

Accessibilitat - Color Negre
Accessibilitat - Color Groc
Accessibilitat - Color Verd

Accessibilitat - Color Blau
Accessibilitat - Color Crema
Accessibilitat - Color Blanc

 

PORTADES ALTERNATIVES