Org Mode | |
Author: | Carsten Dominik |
Developer: | Carsten Dominik, Bastien Guerry, et al. |
Released: | 2003 |
Genre: | Personal information management, Notetaking, Outlining, Literate programming, Reproducibility |
License: | GPL-3.0-or-later |
Programming Language: | Emacs Lisp |
Org Mode was created by Carsten Dominik in 2003, originally to organize his own life and work, and since the first release numerous other users and developers have contributed to this free software package. Emacs has included Org Mode as a major mode by default since 2006. Bastien Guerry is the current maintainer, in cooperation with an active development community. Since its success in Emacs, some other systems now provide functions to work with org files.[2] [3]
Almost orthogonally, Org Mode has functionalities aimed at executing code in various external languages; these functionalities form org-babel.[4] [5]
The Org Mode home page explains that "at its core, Org Mode is a simple outliner for note-taking and list management". The Org system author Carsten Dominik explains that "Org Mode does outlining, note-taking, hyperlinks, spreadsheets, TODO lists, project planning, GTD, HTML and LaTeX authoring, all with plain text files in Emacs."
The Org system is based on plain text files with a simple markup, which makes the files very portable. The Linux Information Project explains that "Plain text is supported by nearly every application program on every operating system".[6]
The system includes a lightweight markup language for plain text files (similar in function to Markdown, reStructuredText, Textile, etc., with a different implementation), allowing lines or sections of plain text to be hierarchically divided, tagged, linked, and so on.
This section gives some sample uses for the hierarchical display and editing of plain text.
An org-mode document can also be exported to various formats (including HTML, LaTeX, OpenDocument or plain text), these formats being used to render the structural outline in an appropriate fashion (including cross-references if needed). It can also use formatting markup (including LaTeX for mathematics), with facilities similar to those present in Markdown or LaTeX, thus offering an alternative to these tools.
Org Mode offers the ability to insert source code in the document being edited, which is automatically exported and/or executed when exporting the document; the result(s) produced by this code can be automatically fetched back in the resulting output.
This source code can be structured as reusable snippets, inserted in the source document at the place needed for logical exposition thus allowing this exposition to be independent of the structure needed by the compiler/interpreter.
Together with the markup facilities of org-mode, these two functionalities allow for
As of June 2021, org-babel directly supports more than 70 programming languages or programmable facilities, more than 20 other tools being usable via contributed packages or drivers.[7]
Org Mode has some features to export to other formats, and other systems have some features to handle org-mode formats. Further, a full-featured text editor may have functions to handle wikis, personal contacts, email, calendars, and so on; because org-mode is simply plain text, these features could be integrated into org-mode documents as well.
From org-mode, add-on packages export to other markup format such as MediaWiki (org-export-generic, org-export), to flashcard learning systems implementing SuperMemo's algorithms (org-drill, org-learn).[8]
Outside of org-mode editors, org markup is supported by the GitLab, GitHub and Gitea code repositories, the JIRA issue tracker, Pandoc and others.
Org supports exporting to a variety of formats. Below you may find examples of Org fragments exported to a number of formats.Other formats are supported by dedicated packages.
Format | Structure | Text attributes | Lists | Images and blocks | |
---|---|---|---|---|---|
Org |
Paragraphs are separatedby a blank line. ----- Five dashes is a horizontal rule. | Here is a link to theorg [homepage]]. | An ordered list:1. lather2. rinse3. repeat |
Org blocks start with #+begin_BLOCKand end with #+end_BLOCK.This is a quote block.
You can also have format-specific markup, for some formats@@html:like HTML@@@@latex:like \LaTeX@@. | |
HTML | 1 heading1.1 Sub headingParagraphs are separatedby a blank line. Five dashes is a horizontal rule. | Simple markup produces boldand italic text. There's also Here is a link to theorg homepage. | An unordered list:
An ordered list:
|
You can also have format-specific markup, for some formatslike HTML. | |
HTML (rendered) | Heading Sub heading Paragraphs are separatedby a blank line. Five dashes is a horizontal rule. | Simple markup produces boldand italic text. There's also Here is a link to theorg homepage. | An unordered list:
An ordered list:
|
You can also have format-specific markup, for some formatslike HTML. | |
LaTeX | Paragraphs are separatedby a blank line. \noindent\rule Five dashes is a horizontal rule. | Here is a link to theorg \href. | An ordered list:\begin\item lather\item rinse\item repeat\end | \beginOrg blocks start with \#+begin\textsubscriptand end with \#+end\textsubscript.This is a quote block.\end You can also have format-specific markup, for some formatslike \LaTeX. | |
ODT | |||||
ASCII | 1.1 Sub heading~~~~~~~~~~~~~~~ Paragraphs are separated by a blank line. ----------------------------------------- Five dashes is a horizontal rule. | Here is a link to the org [homepage]. [homepage] | An ordered list:1. lather2. rinse3. repeat | Org blocks start with #+begin_BLOCK and end with #+end_BLOCK. This is a quote block. You can also have format-specific markup, for some formats . | |
Markdown |
Paragraphs are separatedby a blank line. --- Five dashes is a horizontal rule. | Here is a link to theorg [homepage](https://orgmode.org/). | - apples- oranges- pears An ordered list: 1. lather2. rinse3. repeat | [img](org-mode-unicorn.png) > Org blocks start with #+beginBLOCK> and end with #+endBLOCK.> This is a quote block. You can also have format-specific markup, for some formatslike HTML | |
Texinfo | @menu
@end menu @node Sub heading@section Sub heading Paragraphs are separatedby a blank line. Five dashes is a horizontal rule. | Here is a link to theorg @uref. | An ordered list:@enumerate@itemlather@itemrinse@itemrepeat@end enumerate | @quotationOrg blocks start with #+begin_BLOCKand end with #+end_BLOCK.This is a quote block. @end quotation You can also have format-specific markup, for some formats. |