A geração rápida de gráficos a partir de uma estrutura semelhante a uma árvore pode ser muito útil ao fazer anotações no modo organizacional que exigem compartilhamento e / ou embelezamento para outros seres humanos.
Não consegui encontrar outra maneira de fazer isso além de criar manualmente um bloco dinâmico de ponto / gráfico.
Uma tradução de uma árvore estruturada para um gráfico direcionado simples deve ser bastante direta.
Estou procurando uma maneira simples de percorrer uma árvore de modo organizacional (uma região selecionada) e traduzir a estrutura da árvore (e opcionalmente algumas informações do conteúdo da estrutura) em um gráfico de pontos.
Não posso ser o primeiro a pensar nisso. Isso foi resolvido?
entrada
* la1
** la2
*** la3
*** la4
** la5
e talvez um preâmbulo variável de ponto a ponto
digraph {
rankdir=TB;
splines=true;
node [shape=box];
a saída pareceria um bloco dinâmico no modo organizacional
#+BEGIN_SRC dot :file out.png :cmdline -Kdot -Tpng
(contents of org-to-dot-preamble)
la1 -> la2
la1 -> la5
la2 -> la3
la2 -> la4
}
#+END_SRC
Uma versão mais avançada declararia primeiro todos os nós e permitiria alguma formatação.
entrada
* la1
firstline
secondline
** la2
firstline
secondline
*** la3
*** la4
firstline
** la5
Algumas variáveis de formatação
org-to-dot-shape
org-to-dot-font
resultado
#+BEGIN_SRC dot :file out.png :cmdline -Kdot -Tpng
(contents of org-to-dot-preamble)
la1 [shape=Mrecord, label="{firstline|secondline}", fontname = "helvetica"]
la2 [shape=Mrecord, label="{firstline|secondline}", fontname = "helvetica"]
la3 [shape=Mrecord, label="{firstline|secondline}", fontname = "helvetica"]
la4 [shape=Mrecord, label="{firstline|secondline}", fontname = "helvetica"]
la5 [shape=Mrecord, label="{firstline|secondline}", fontname = "helvetica"]
la1 -> la2
la1 -> la5
la2 -> la3
la2 -> la4
}
#+END_SRC
Respostas:
Aqui está um exemplo de trabalho que usa a
org-element
API para analisar os títulos do buffer:Isso funciona em várias etapas: primeiro, um bloco elisp usa
org-element-parse-buffer
para obter todos os títulos e extrair uma lista do título do pai e do título.Em seguida, outro bloco de origem transforma essa lista em sintaxe de ponto.
Um terceiro bloco de origem de pontos contém o empacotamento DOT e inclui as relações geradas.
Aprimoramentos cosméticos: filtre a seção do próprio teste; você pode adicionar uma tag a esta seção e filtrar por tag no primeiro bloco.
fonte
Você poderá reutilizar parte do código na parte inferior de http://pages.sachachua.com/evil-plans/ . Basicamente, uso entradas do org-map-para passar por meus títulos. Como tenho um gráfico direcionado em vez de uma árvore estrita, utilizo pesquisas simples de expressão regular para analisar a estrutura do link a partir de um texto amigável ao ser humano. Se você estiver apenas trabalhando com uma árvore, poderá criar sua estrutura de árvore diretamente dos títulos. Depois disso, é uma questão de gerar a sintaxe graphviz apropriada, e o org-babel pode lidar com a produção e a conversão em PNG ou SVG. Espero que ajude!
fonte
Não é ponto, mas se você estiver com pressa, os seguintes podem ser úteis.
Precisamos do
org-plus-contrib
FreeMind.app para produzir um mapa mental a partir de documentos no modo organizacional.Instale o pacote extra do modo organizacional chamado
org-plus-contrib
porM-x package-list-packages
.Talvez possamos precisar adicionar
aos nossos .emacs.
Então, podemos exportar o nosso arquivo org-mode para Freemind arquivo * .mm por
C-c C-e f f
,org-freemind-export-to-freemind
.Agora abrimos * .mm do Freemind.app e pronto!
Passe o mouse sobre para ver o conteúdo dos nós.
fonte
ATUALIZAÇÃO: 2019
Existe um pacote chamado org-mind-map
https://github.com/theodorewiles/org-mind-map
Ele cria gráficos direcionados ao graphviz a partir de arquivos no modo organizacional, usando a linguagem de pontos.
Depois de instalar o org-mind-map, você pode exportar um arquivo organizacional
C-c C-e
e selecionar "Criar um arquivo gráfico e de pontos"g d
Isso criará um arquivo de ponto do seu arquivo organizacional. Ele conterá algumas personalizações visuais do pacote org-mind-map por padrão. Você pode editá-las ou copiar as partes relevantes para um novo arquivo de pontos.
fonte