This Month in Org RSS icon


Org is an absolutely marvellous project. However, a quick glance at can lead one to think “so… it’s an Emacs version of Markdown? What’s the big deal?”. While it’s easy to understand how someone might think that at first, that impression misses two crucial points:

  • While for simple constructs (bold, italic, headlines, etc.) the syntax is very much analogous1, Org scales to much more powerful forms that are a headache to replicate in Markdown
  • Org mode was developed in Emacs, for Emacs. The integrations for Org put every other plaintext markup editing experience to shame. This is a bold statement, and I stand by it.

This blog exists because of the second point. The world does not stand still, while new Markdown editors et al. are popping up left, right, and centre — Org has not languished. The mailing list is active, as is development, and the number of things you can do with Org is only increasing.

However, if one doesn’t want to receive tens to hundreds of emails a week, it can be all too easy to miss out on exciting developments2 😢. So, to help keep you abreast of the latest in Org, I’m starting a blog ✨. Like all good things, it is written entirely in Org.

Inspired by This Week in KDE I’m thrilled to announce This Month in Org (we have slightly less going on than a Desktop Environment3). Each month I shall endeavour to present the highlights of Org development.

Who knows, perhaps you might see something you’d like to help out with or suggest improvements too. We’d love you to get in touch.

Catching up on lost time — a year in review

I joined the Org mailing list in May last year, it’s almost been a year since then and we’ve seen the release of Org 9.4, and its inclusion in Emacs 27.

I’m not going to do 12 months of work for just this one post, but I’d like to give you a sample of what’s changed over the last year.

A new discussion tracker —

Mid last year Bastien rolled out tracker for

  • Upcoming changes
  • Help requests
  • Bugs
  • Patches

This should help ensure nothing slips through the cracks of the ML.

Figure 1: A screenshot of

It’s very slick, and Bastien built a mailbox monitor just for it — so be sure to check it out. This should make it easier to see what needs doing. If you feel inclined to help out with Org check out the Help requests section in particular.

You can also get RSS feeds for individual sections, or get the information as JSON to work into your own projects, for example an elisp function to fetch and apply patches.

Inline display of remote images

Ever gazed forlornly at a link like [[]] wishing you could see the image?

Wish no more! Thanks to Jack Kamm you can now look upon remote images in all their glory!

Figure 2: Org mode discovers the internet

To get this working, simply set org-display-remote-inline-images to 'download or 'cache.

Use org-edit-special (C-c ') with LaTeX fragments

It’s great how in Org you can jump into a LaTeX-mode minibuffer for LaTeX environments, but why leave inline LaTeX fragments out? We’ll, they’re now in.

Figure 3: Running org-edit-special on an inline LaTeX fragment

Control heading display on startup

org-num-mode is great for when you’re keeping an eye on section numbers, but it’s not fun to find yourself enabling it every time you open a file where you want it. With the new option #+startup: num by Bastien, you can set and forget at last.

Figure 4: Opening a buffer with the new num and show2levels startup options

Should you want to set the number of levels you see on opening a file, there’s now an option for that too. Gustav Wikström has added another new option #+startup: show<n>levels (where <n> is between 2 and 5, inclusive). NB: This is part of the upcoming 9.5 release

Set permissions of tangled files

Are you particular about your file permissions? If so you’ll likely like John Herrlin’s new source block header argument :file-mode pertinent. The easiest way to set a permission is with an octal value, like so:

Org mode
#+begin_src shell :results file :file :file-mode (identity #o755)
echo "#!/bin/bash"
echo "echo Hello World"

A collection of improvements to source block header arguments

These’s been a whole set of these, so I’ll just list them off.

python, improved :return
Now works with sessions and the :epilogue argument (Jack Kamm)
Java, new argument :cmdargs
Add some command line arguments to be passed to java (Jarmo Hurri)
C/C++, non-system headers with :includes
values that don’t start with < will now be formatted as double-quoted #include statements (Brandon Guttersohn)
Screen, new argument :screenrc
For those of you who still haven’t moved to tmux (Kenneth D. Mankoff)

A seven year old bug was fixed

In 2013 it was reported that an infinite loop could be triggered in org-agenda-show-new-time. At long last, this has been fixed by Bastien.



Aside from somewhat more intuitive syntax for emphasis and simple structures, Org also has the advantage of not having 40 functionally distinct specifications. There is only one Org.
NB: If you attempt to be pedantic you may say that there are multiple Orgs because, for example, GitHub uses org-ruby. However, that’s just an incomplete implementation — not a specification.


There is ORG-NEWS, but do you really check that? Besides, it doesn’t even have pictures.


That said, with interesting projects like the Emacs Application Framework and the Emacs X Window Manager, one could argue that Org is (sometimes) a major component of a desktop environment…

CC0 To the extent possible under law, TEC has waived all copyright and related or neighboring rights to This Month in Org.