Codificación de un diagrama de flujo

Estoy buscando una herramienta profesional para OSX que al usar un DSL me permita escribir código para un flujo de trabajo y generar un diagrama de flujo a partir del código. Algo similar a esto pero no en el navegador y proporcionando un poco más de funcionalidad (como comprimir el gráfico).

Esta herramienta debería:

  1. Permitir la entrada de "código" como texto que influirá en la generación del diagrama de flujo
  2. Brindar la capacidad de dibujar para archivar un gráfico de diagrama de flujo a partir de la entrada del código
  3. Proporcione modificaciones manuales al diagrama de flujo, como mover cajas a diferentes posiciones, cambiar el tamaño de la caja, cambiar la forma de la caja, etc.
¡Bienvenido al Intercambio de pilas de recomendaciones de software! Necesitaremos mucha más información para dar buenas recomendaciones aquí. Eche un vistazo a ¿Qué se requiere para que una pregunta contenga "suficiente información"? Luego edite su pregunta y vea si puede incorporar algunas de estas mejoras. Enumere específicamente características en lugar de similares a x.

Respuestas (1)

Si está familiarizado con LaTeX, le recomiendo usar el paquete TikZ en una standaloneclase de documento. El manual describe la sintaxis en detalle, y puede encontrar ejemplos de diagramas de flujo aquí .

Ventajas (que coinciden con sus criterios):

  1. Permite la entrada de código usando cualquier editor de texto y puede construirse usando su intérprete local de LaTeX, o incluso una herramienta en línea
  2. El diagrama resultante se guarda en formato PostScript/PDF, que se puede convertir en gráficos de alta densidad mediante ImageMagick convert -density 600x600 flowchart.pdf -quality 100 flowchart.png . Esto puede escribirse más tarde en la línea de comando o agregarse a la clase de documento para generar la imagen en un solo paso \documentclass[convert={density=600,outext=.png}]{standalone}.
  3. Brinda control sobre el tamaño y la forma de los nodos que se utilizan \tikzstyle{}y la capacidad de ajustar las posiciones al milímetro (o su unidad preferida, ptpor ejemplo). También puede guardar sus propias definiciones de estilo en un archivo separado y \input{}en varios documentos, en lugar de copiarlos o escribirlos de nuevo.

Contras:

  1. Puede llevar tiempo aprender si es nuevo en LaTeX
Tengo miedo de usar LaTeX porque se le da demasiado control al usuario. Por ejemplo, no quiero preocuparme por las posiciones de los nodos milimétricos, prefiero que se encarguen de eso. ¿Sabes si TikZ puede realizar su propio espaciado óptimo de nodos?
@fifosine En el ejemplo vinculado , han utilizado una distancia de nodo global con automodo ( \begin{tikzpicture}[node distance = 2cm, auto]). Esto significa que no tendrá que preocuparse por el espaciado de los nodos individuales, excepto en casos especiales.