Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/novoid/org-du

Visualizing Emacs Org-mode heading lines using du and xdu
https://github.com/novoid/org-du

emacs orgdown orgmode tree-structure visualization

Last synced: 3 months ago
JSON representation

Visualizing Emacs Org-mode heading lines using du and xdu

Awesome Lists containing this project

README

        

* org-du

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/

:copyright: (c) by Karl Voit
:license: GPL v3 or any later version
:URL: https://github.com/novoid/org-du
:bugreports: via github or
: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

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

** Similar Projects
:PROPERTIES:
:CREATED: [2020-04-14 Tue 18:26]
:END:

- https://github.com/mtekman/org-treeusage.el via [[https://www.reddit.com/r/orgmode/comments/g13ot9/ann_orgtreeusage_peek_at_the_usage_of_your_org/][reddit]]
- an in-place visualization as minor mode

* 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!
- see [[http://tinyurl.com/j6w8hyo][my address]]
- 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 [[https://github.com/novoid][projects on GitHub]]

* Local Variables :noexport:
# Local Variables:
# mode: auto-fill
# mode: flyspell
# eval: (ispell-change-dictionary "en_US")
# End: