17.10 Org Syntax

A reference document providing a formal description of Org’s syntax is available as a draft on Worg, written and maintained by Nicolas Goaziou. It defines Org’s core internal concepts such as “headlines”, “sections”, “affiliated keywords”, “(greater) elements” and “objects”. Each part of an Org document belongs to one of the previous categories.

To explore the abstract structure of an Org buffer, run this in a buffer:

M-: (org-element-parse-buffer) <RET>

It outputs a list containing the buffer’s content represented as an abstract structure. The export engine relies on the information stored in this list. Most interactive commands—e.g., for structure editing—also rely on the syntactic meaning of the surrounding context.

You can probe the syntax of your documents with the command

M-x org-lint <RET>

It runs a number of checks to find common mistakes. It then displays their location in a dedicated buffer, along with a description and a “trust level”, since false-positive are possible. From there, you can operate on the reports with the following keys:

C-j, TABDisplay the offending line
RETMove point to the offending line
gCheck the document again
hHide all reports from the same checker
iAlso remove them from all subsequent checks
SSort reports by the column at point