Pembuatan grafik yang cepat dari struktur mirip pohon bisa sangat berguna saat membuat catatan dalam mode org yang membutuhkan pembagian dan atau keindahan untuk manusia lain.
Saya tidak dapat menemukan cara untuk melakukan ini selain secara manual membuat blok dot / graphviz dinamis.
Terjemahan dari pohon terstruktur ke grafik berarah sederhana harus cukup mudah.
Saya mencari cara sederhana untuk melintasi pohon mode-org (wilayah yang dipilih) dan menerjemahkan struktur pohon (dan secara opsional beberapa informasi dari isi struktur) ke grafik titik.
Saya tidak mungkin menjadi orang pertama yang menemukan ini. Apakah ini sudah diselesaikan?
memasukkan
* la1
** la2
*** la3
*** la4
** la5
dan mungkin variabel org-to-dot-preamble
digraph {
rankdir=TB;
splines=true;
node [shape=box];
output akan terlihat seperti blok dinamis mode-org
#+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
Versi yang lebih maju pertama-tama akan mendeklarasikan semua node dan memungkinkan untuk beberapa format.
memasukkan
* la1
firstline
secondline
** la2
firstline
secondline
*** la3
*** la4
firstline
** la5
Beberapa variabel pemformatan
org-to-dot-shape
org-to-dot-font
keluaran
#+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
Jawaban:
Berikut adalah contoh yang berfungsi yang menggunakan
org-element
API untuk mem-parsing judul buffer:Ini berfungsi dalam beberapa langkah: pertama blok elisp digunakan
org-element-parse-buffer
untuk mendapatkan semua tajuk utama, dan ekstrak daftar judul induk dan judul tajuk.Kemudian blok sumber lain mengubah daftar ini menjadi sintaksis titik.
Blok sumber titik ketiga berisi pembungkus DOT dan mencakup relasi yang dihasilkan.
Peningkatan kosmetik: saring bagian untuk tes itu sendiri; Anda dapat menambahkan tag ke bagian ini dan memfilter dengan tag di blok pertama.
sumber
Anda mungkin dapat menggunakan kembali beberapa kode dari bagian bawah http://pages.sachachua.com/evil-plans/ . Saya pada dasarnya menggunakan entri-peta-org untuk melihat judul saya. Karena saya memiliki grafik yang diarahkan alih-alih pohon yang ketat, saya menggunakan pencarian ekspresi reguler sederhana untuk mem-parsing struktur tautan dari teks ramah-manusia. Jika Anda hanya bekerja dengan pohon, Anda dapat membuat struktur pohon dari pos secara langsung. Setelah itu, masalah menghasilkan sintaksis graphviz yang sesuai, dan org-babel dapat menangani memproduksi itu dan mengubahnya menjadi PNG atau SVG. Semoga itu bisa membantu!
sumber
Ini bukan titik, tetapi jika Anda terburu-buru, mengikuti mungkin membantu.
Kami membutuhkan
org-plus-contrib
dan FreeMind.app untuk menghasilkan mindmap dari dokumen mode-org.Instal paket mode tambahan org yang dipanggil
org-plus-contrib
olehM-x package-list-packages
.Mungkin kita perlu menambahkan
untuk .emacs kami.
Kemudian kita bisa mengekspor file org-mode untuk FreeMind * .mm file dengan
C-c C-e f f
,org-freemind-export-to-freemind
.Sekarang kita buka * .mm dari Freemind.app, dan voila!
Arahkan mouse ke atas untuk melihat isi node.
sumber
PEMBARUAN: 2019
Ada paket yang disebut org-mind-map
https://github.com/theodorewiles/org-mind-map
Ini menciptakan grafik diarahkan graphviz dari file mode org menggunakan bahasa dot.
Setelah menginstal org-mind-map, Anda dapat mengekspor file org
C-c C-e
dan memilih "Buat file grafik & dot"g d
Ini akan membuat file dot dari file org Anda. Ini akan berisi beberapa penyesuaian visual dari paket org-mind-map secara default. Anda dapat mengedit ini atau menyalin bagian yang relevan ke file titik baru.
sumber