/org-du

Visualizing Emacs Org-mode heading lines using du and xdu

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

org-du

This Python 3 script parses parses a list of Org-mode files and generates output similar to 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 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 GitHub or install it via pip: pip install org-du

Usage

org-du.py --help
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/

:copyright: (c) by Karl Voit <tools@Karl-Voit.at>
:license: GPL v3 or any later version
:URL: https://github.com/novoid/org-du
:bugreports: via github or <tools@Karl-Voit.at>
:version: 2017-03-26

Example

If you apply org-du to this README.org file, you will see following visualization:

org-du.py README.org

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

  • <2017-03-26 Sun>: first version on GitHub and pip

Similar Projects

How to Thank Me

I’m glad you like my tools. If you want to support me:

  • Send old-fashioned postcard per snailmail - I love personal feedback!
  • Send feature wishes or improvements as an issue on GitHub
  • Create issues on GitHub for bugs
  • Contribute merge requests for bug fixes
  • Check out my other cool projects on GitHub

Local Variables