org-mode – Gráfico con nodos en los que se puede hacer clic

Pregunta:

Mantengo información sobre las relaciones entre los trabajos de investigación en un archivo .org . Me gustaría visualizar estas relaciones como un gráfico, donde cada nodo (vértice) del gráfico corresponde a un papel y cada arco significa una relación entre dos papeles. Sé que puedo hacer esto usando GraphViz DOT como se describe aquí . Sin embargo, usando ese enfoque, el gráfico es solo una imagen. Me gustaría que este gráfico tuviera nodos en los que se pueda hacer clic, por lo que podría abrir mis notas sobre un documento (un archivo .org ) haciendo clic en el nodo correspondiente a ese documento. ¿Existe alguna herramienta que pueda utilizar para crear un gráfico de este tipo con nodos en los que se pueda hacer clic?

Respuesta:

¡La técnica de visualización que describe sería increíble! Algunos enfoques me vienen a la mente:

1. Renderizar usando texto en lugar de SVG

El texto sin formato es muy poderoso, especialmente en Emacs. Renderice su diagrama a texto usando algo como Graph :: Easy Perl library (acepta el formato de puntos graphviz), insértelo y luego haga un "post-procesamiento" en el búfer. Puede agregar propiedades de texto para darle estilo o agregar un mapa de teclas para que se pueda hacer clic en él. No estoy seguro de la eficacia con la que el diseño se puede escalar para una gran cantidad de artículos / nodos, pero valdría la pena intentarlo. Usaría texto de marcador de posición en el archivo de puntos para facilitar el posprocesamiento.

2. Utilice el soporte XWidget de Emacs para renderizar una página web

Cuando se compila con xwidgets , Emacs puede representar una página web utilizable en una ventana. He utilizado este enfoque para algunos proyectos personales y me ha resultado muy eficaz. Recomendaría crear un solo documento HTML con la lógica JavaScript generalizada para representar su estilo de gráfico (una especie de documento de "lienzo"). Una vez que la página se haya cargado, proporcione los datos mediante una llamada de JavaScript ( xwidget-webkit-execute-script ). Algunos ejemplos que utilizan d3.js. Con el ecosistema masivo de JavaScript puedes hacer todo tipo de cosas bonitas.

3. Sea creativo con las capacidades SVG existentes

Aquí encontrará una buena demostración de la funcionalidad SVG relevante para sus propósitos. Puede que no sea factible trabajar con un SVG generado externamente.

4. Expanda la funcionalidad SVG en Emacs para admitir enlaces.

Dado que SVG admite enlaces externos , estos podrían posiblemente usarse para representar sus enlaces a artículos usando URI o URL. Sospecho que librsvg (la biblioteca que usa Emacs para renderizar SVG) no admite este tipo de enlace de anclaje.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım