Org-Mode

Org Mode (also: org-mode; /ˈɔːrɡ moʊd/) is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring.

The name is used to encompass plain text files ("org files") that include simple marks to indicate levels of a hierarchy (such as the outline of an essay, a topic list with subtopics, nested computer code, etc.), and an editor with functions that can read the markup and manipulate hierarchy elements (expand/hide elements, move blocks of elements, check off to-do list items, etc.).

Original author(s)Carsten Dominik
Developer(s)Carsten Dominik, Bastien Guerry, et al.
Stable release
9.6.20 Edit this on Wikidata / 28 February 2024; 56 days ago (28 February 2024)
Repository
Written inEmacs Lisp
TypePersonal information management, Notetaking, Outlining, Literate programming, Reproducibility
LicenseGPL-3.0-or-later
Websiteorgmode.org

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.

Almost orthogonally, Org Mode has functionalities aimed at executing code in various external languages; these functionalities form org-babel.

System

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".

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.

Functionality

This section gives some sample uses for the hierarchical display and editing of plain text.

  • To-do lists often have subtasks, and so lend themselves to a hierarchical system. Org Mode facilitates this by allowing items to be subdivided into simple steps (nested to-dos and/or checklists), and given tags and properties such as priorities and deadlines. An agenda for the items to be done this week or day can then be automatically generated from date tags.
  • Plain text outlines.
Org-Mode 
Org file showing simple planning for a short trip
  • Org files as interconnected pages of a personal wiki, using the markup for links.
  • Tracking bugs in a project, by storing .org files in a distributed revision control system such as Git.
  • Extensive linking features, within the same file, to other files, to web pages, to emails, and also allows defining custom links.

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-babel

Org-Mode 
Some of the basic features of Org-babel

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

  • Literate programming, by decoupling the exposition of the functions of a program from its code structure, and
  • Reproducible research, by the creation of a consistent document consolidating exposition, original data, analyses, discussion and conclusion, in a way that can be reproduced by any reader using the same software tools.

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.

Integration

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 flas learning systems implementing SuperMemo's algorithms (org-drill, org-learn).

Outside of org-mode editors, org markup is supported by the GitLab, GitHub and Gitea code repositories, the JIRA issue tracker, Pandoc and others.

Export examples

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

* Heading ** Sub heading  Paragraphs are separated by a blank line.  -----  Five dashes is a horizontal rule.
Simple markup produces *bold* and /italic/ text. There's also ~code~, and other markups.  Here is a link to the org [[https://orgmode.org/][homepage]].
An unordered list: + apples + oranges + pears  An ordered list: 1. lather 2. rinse 3. repeat
[[file:org-mode-unicorn.png]]  #+begin_quote Org blocks start with #+begin_BLOCK and end with #+end_BLOCK. This is a quote block. #+end_quote  You can also have format-specific markup, for some formats @@html:like HTML@@ @@latex:like \LaTeX@@.

HTML

<div id="outline-container-org75efe15" class="outline-2"> <h2 id="org75efe15"><span class="section-number-2">1span> headingh2> <div class="outline-text-2" id="text-1"> div> <div id="outline-container-org548173a" class="outline-3"> <h3 id="org548173a"><span class="section-number-3">1.1span> Sub headingh3> <div class="outline-text-3" id="text-1-1"> <p> Paragraphs are separated by a blank line. p>  <hr />  <p> Five dashes is a horizontal rule. p> div> div> 
<p> Simple markup produces <b>boldb> and <i>italici> text. There's also <code>codecode>, and other markups. p>  <p> Here is a link to the org <a href="https://orgmode.org/">homepagea>. p> 
<p> An unordered list: p> <ul class="org-ul"> <li>applesli> <li>orangesli> <li>pearsli> ul>  <p> An ordered list: p> <ol class="org-ol"> <li>latherli> <li>rinseli> <li>repeatli> ol> 
<div id="org0d245af" class="figure"> <p><img src="org-mode-unicorn.png" alt="org-mode-unicorn.png" /> p> div>  <blockquote> <p> Org blocks start with #+begin<sub>BLOCKsub> and end with #+end<sub>BLOCKsub>. This is a quote block. p> blockquote>  <p> You can also have format-specific markup, for some formats like <abbr title="Hypertext Markup Language">HTMLabbr> . p> 

HTML (rendered)

Heading
Sub heading

Paragraphs are separated by a blank line.


Five dashes is a horizontal rule.

Simple markup produces bold and italic text. There's also code, and other markups.

Here is a link to the org homepage.

An unordered list:

  • apples
  • oranges
  • pears

An ordered list:

  1. lather
  2. rinse
  3. repeat

Org-Mode 

Org blocks start with #+beginBLOCK and end with #+endBLOCK. This is a quote block.

You can also have format-specific markup, for some formats like HTML .

LaTeX

\section{Heading} \label{sec:orgb1c599c} \subsection{Sub heading} \label{sec:orgf23aeb1}  Paragraphs are separated by a blank line.  \noindent\rule{\textwidth}{0.5pt}  Five dashes is a horizontal rule. 
Simple markup produces \textbf{bold} and \emph{italic} text. There's also \texttt{code}, and other markups.  Here is a link to the org \href{https://orgmode.org/}{homepage}. 
An unordered list: \begin{itemize} \item apples \item oranges \item pears \end{itemize}  An ordered list: \begin{enumerate} \item lather \item rinse \item repeat \end{enumerate} 
\begin{center} \includegraphics[width=.9\linewidth]{org-mode-unicorn.png} \end{center}  \begin{quote} Org blocks start with \#+begin\textsubscript{BLOCK} and end with \#+end\textsubscript{BLOCK}. This is a quote block. \end{quote}  You can also have format-specific markup, for some formats like \LaTeX. 

ODT

 text:style-name="Heading_20_1" text:outline-level="1" text:is-list-header="false">  text:name="OrgXref.org3c83460"/>  text:name="org3c83460"/>Heading  text:name="OrgXref.org3c83460"/>  text:style-name="Heading_20_2" text:outline-level="2" text:is-list-header="false">  text:name="OrgXref.orgeb4e8ed"/>  text:name="orgeb4e8ed"/>Sub heading  text:name="OrgXref.orgeb4e8ed"/>  text:style-name="Text_20_body">Paragraphs are separated by a blank line.    text:style-name="Horizontal_20_Line">   text:style-name="Text_20_body">Five dashes is a horizontal rule.  
 text:style-name="Text_20_body">Simple markup produces  text:style-name="Bold">bold and  text:style-name="Emphasis">italic text. There's also  text:style-name="OrgCode">code, and other markups.    text:style-name="Text_20_body">Here is a link to the org  xlink:type="simple" xlink:href="https://orgmode.org/">homepage.  
 text:style-name="OrgBulletedList" text:continue-numbering="false">    text:style-name="Text_20_body">apples     text:style-name="Text_20_body">oranges     text:style-name="Text_20_body">pears      text:style-name="Text_20_body">An ordered list:    text:style-name="OrgNumberedList" text:continue-numbering="false">   text:style-name="Text_20_body">lather     text:style-name="Text_20_body">rinse     text:style-name="Text_20_body">repeat    
 text:style-name="Text_20_body">  draw:style-name="OrgDisplayImage" svg:width="6.24cm" svg:height="6.88cm" text:anchor-type="paragraph" draw:name="Frame1">   xlink:href="Images/0001.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>     text:style-name="Quotations">Org blocks start with #+begin text:style-name="OrgSubscript">BLOCK and end with #+end text:style-name="OrgSubscript">BLOCK. This is a quote block.    text:style-name="Text_20_body">You can also have format-specific markup, for some formats .  

ASCII

1 Heading =========  1.1 Sub heading ~~~~~~~~~~~~~~~    Paragraphs are separated by a blank line.    -----------------------------------------    Five dashes is a horizontal rule. 
Simple markup produces *bold* and /italic/ text. There's also `code', and other markups.  Here is a link to the org [homepage].  [homepage]  
An unordered list: + apples + oranges + pears  An ordered list: 1. lather 2. rinse 3. 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

 # Heading   ## Sub heading  Paragraphs are separated by a blank line.  ---  Five dashes is a horizontal rule. 
Simple markup produces **bold** and *italic* text. There's also `code`, and other markups.  Here is a link to the org [homepage](https://orgmode.org/). 
An unordered list:  -   apples -   oranges -   pears  An ordered list:  1.  lather 2.  rinse 3.  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 formats like HTML 

Texinfo

@node Heading @chapter Heading  @menu * Sub heading:: @end menu  @node Sub heading @section Sub heading  Paragraphs are separated by a blank line.  Five dashes is a horizontal rule. 
Simple markup produces @strong{bold} and @emph{italic} text. There's also @code{code}, and other markups.  Here is a link to the org @uref{https://orgmode.org/, homepage}. 
An unordered list: @itemize @item apples @item oranges @item pears @end itemize  An ordered list: @enumerate @item lather @item rinse @item repeat @end enumerate 
@image{org-mode-unicorn,,,,png}  @quotation Org blocks start with #+begin_BLOCK and end with #+end_BLOCK. This is a quote block.  @end quotation  You can also have format-specific markup, for some formats. 

See also

References

Tags:

Org-Mode SystemOrg-Mode FunctionalityOrg-Mode Org-babelOrg-Mode IntegrationOrg-Mode Export examplesOrg-Mode Further readingOrg-ModeFree softwareGNU EmacsHelp:IPA/EnglishMarkup languageNote-takingPlain textProject planningText editor

🔥 Trending searches on Wiki English:

Justin BieberPatapsco RiverSexual intercourseStephen CurryRoad House (2024 film)Marie CurieYoung SheldonRobbie AvilaCameron DiazRobert PattinsonTikTokBullet Train (film)Cordarrelle PattersonQueen of Tears2024 Formula One World ChampionshipThree-BodyRyan GoslingJim CarreyShaitaan (2024 film)Spaceman (2024 film)Marilyn MonroeJannik SinnerThree-body problemMichael JordanNorovirusSwitzerlandSoviet UnionRachin RavindraXXXXJoseph StalinMoses2023 Indian Premier LeagueHeinrich KlaasenAmazon (company)Alex JonesFrance national football teamAnne HathawayX (2022 film)Willie NelsonLimoneneBob DylanLisa Marie PresleyAnsel AdamsSpain national football teamPaul AtreidesMonsterVerseLok SabhaM. Emmet WalshJean-Michel BasquiatAustin ButlerJeffrey HunterBlack swan theoryAngela Chao2024 Indian general election in MaharashtraSocial mediaList of presidents of the United States2022 FIFA World CupThe Dark ForestRussian invasion of UkraineArgentina national football teamPat KelseyLarry FinkLamine YamalNeatsville, Kentucky2026 FIFA World Cup qualificationFuture (rapper)Amy WinehouseJulian AssangeBarbie (film)Indian Premier League2026 FIFA World CupPalm RoyaleMel GibsonBand of Brothers (miniseries)Holi🡆 More