Visualizing Emacs Org-mode heading lines using du and xdu
GPL-3.0 License
This Python 3 script parses parses a list of Org-mode files and generates output similar to [[du][du]] (disk usage) but with lines of Org-mode instead of kilobytes.
The purpose of this script is to use its output as the input for [[https://directory.fsf.org/wiki/XDU][xdu]] in order to get an interactive graphical visualization:
: org-du.py my_org_file.org another_org_file.org | xdu
The script accepts an arbitrary number of files (see your shell for possible length limitations).
** Why
GNU/Emacs Org-mode does a great job for outlining (collapsing and expanding). However, when you want to get a brief overview on the amount of content of each heading (e.g., to locate performance optimization possibilities), you need a different tool: org-du
** Installation
Get it via [[https://github.com/novoid/org-du][GitHub]] or install it via [[https://pip.pypa.io/en/stable/][pip]]: pip install org-du
** Usage
#+BEGIN_SRC sh :results output :wrap src org-du.py --help #+END_SRC
#+BEGIN_src usage: org-du.py [-h] [-v | --quiet | --version] file [file ...]
org-du parses a list of Org-mode files and generates output similar to "du" (disk usage) but with lines of Org-mode instead of kilobytes.
positional arguments: file a list of file names
optional arguments: -h, --help show this help message and exit -v, --verbose --quiet --version show program's version number and exit
Verbose description: http://Karl-Voit.at/2017/03/27/org-du/
©️ (c) by Karl Voit [email protected] :license: GPL v3 or any later version :URL: https://github.com/novoid/org-du :bugreports: via github or [email protected] :version: 2017-03-26 #+END_src
** Example
If you apply =org-du= to this =README.org= file, you will see following visualization:
: org-du.py README.org
[[file:xdu-screenshot.png]]
You can /interactively navigate/ through sub-headings using your mouse. Navigate back by clicking on the leftmost item of the visual tree. Exit with =q=.
Another cool usage scenario is when you invoke =org-du= on one host (Windows) and visualizing is done on a different host. This can easily be accomplished by re-directing the output of the script:
Host A (Windows): : org-du.py *.org > org-du-output.txt
Then copying the file =org-du-output.txt= from host A to host B.
Host B (GNU/Linux): : xdu < org-du-output.txt
** Changelog
** Similar Projects :PROPERTIES: :CREATED: [2020-04-14 Tue 18:26] :END:
I'm glad you like my tools. If you want to support me: