Jump to content

Org-mode: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Add initial release date to the infobox (couldn’t find the first release date *per se*, but 2003 is the date of creation; I’d assume it was released the same year it was initially created)
 
(26 intermediate revisions by 22 users not shown)
Line 1: Line 1:
{{Short description|Open source mode for GNU Emacs}}
{{Infobox software
{{Infobox software
| name = Org-mode
| name = Org Mode
| logo = [[File:Org-mode-unicorn.svg|Org-mode logo]]
| logo = [[File:Org-mode-unicorn.svg|Org-mode logo]]
| screenshot =
| screenshot =
| caption =
| caption =
| author = [[Carsten Dominik]]
| author = Carsten Dominik
| developer = [[Carsten Dominik]], [[Bastien Guerry]] ''et al.''
| developer = Carsten Dominik, Bastien Guerry, ''et al.''
| released = 2003
| latest release version = 9.5
| latest release date = {{release date and age|2020|09|14}}<ref>{{cite web
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
|url = https://orgmode.org/
|title = Org mode for Emacs – Your Life in Plain Text
|website = orgmode.org
|publisher = OrgMode team
|access-date = 2021-09-29}}</ref>
| genre = [[Personal information management]], [[Notetaking]], [[Outline (summary)|Outlining]], [[Literate programming]], [[Reproducible research|Reproducibility]]
| genre = [[Personal information management]], [[Notetaking]], [[Outline (summary)|Outlining]], [[Literate programming]], [[Reproducible research|Reproducibility]]
| license = [[GNU General Public License|GPL-3.0-or-later]]
| license = [[GNU General Public License|GPL-3.0-or-later]]
| website = {{URL|https://orgmode.org/}}
| website = {{URL|https://orgmode.org/}}
| programming language = [[Emacs lisp]]
| programming language = [[Emacs Lisp]]
}}
}}


'''Org-mode''' (also: ''Org mode'';<ref>[[Gmane]]: [http://thread.gmane.org/gmane.emacs.orgmode/56628/focus=56667 Org, Org-mode, Orgmode, Org Mode] {{Webarchive|url=https://web.archive.org/web/20170910221714/http://thread.gmane.org/gmane.emacs.orgmode/56628/focus=56667 |date=2017-09-10 }} - Carsten Dominik: Org, the system; Org-mode, the major mode</ref> {{IPAc-en|ˈ|ɔːr|ɡ|_|m|oʊ|d}}) is a document editing, formatting, and organizing mode, designed for [[Note-taking|notes]], [[Project planning|planning]], and [[Markup language|authoring]] within the [[free software]] [[text editor]] [[Emacs]]. 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 language|markup]] and manipulate hierarchy elements (expand/hide elements, move blocks of elements, check off to-do list items, etc.).
'''<span lang="en" dir="ltr">Org</span> Mode''' (also: ''org-mode'';<ref>[[Gmane]]: [http://thread.gmane.org/gmane.emacs.orgmode/56628/focus=56667 Org, Org-mode, Orgmode, Org Mode] {{Webarchive|url=https://web.archive.org/web/20170910221714/http://thread.gmane.org/gmane.emacs.orgmode/56628/focus=56667 |date=2017-09-10 }} - Carsten Dominik: Org, the system; Org-mode, the major mode</ref> {{IPAc-en|ˈ|ɔːr|ɡ|_|m|oʊ|d}}) is a mode for document editing, formatting, and organizing within the [[free software]] [[text editor]] [[GNU Emacs]] and its derivatives, designed for [[Note-taking|notes]], [[Project planning|planning]], and [[Markup language|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 language|markup]] and manipulate hierarchy elements (expand/hide elements, move blocks of elements, check off to-do list items, etc.).


Org-mode was created by Carsten Dominik in 2003, originally to organize his own life and work,<ref>{{Citation
Org Mode was created by Carsten Dominik in 2003, originally to organize his own life and work,<ref>{{Citation
|last=Dominik
|last=Dominik
|first=Carsten
|first=Carsten
Line 28: Line 25:
|url=https://vimeo.com/33725204
|url=https://vimeo.com/33725204
|date=2011-12-15
|date=2011-12-15
}}</ref> and since the first release numerous other users and developers have contributed to this [[free software]] package.<ref>{{Citation
}}</ref> and since the first release numerous other users and developers have contributed to this free software package.<ref>{{Citation
|title=Org Mode Manual: History and acknowledgments
|title=Org Mode Manual: History and acknowledgments
|publisher=[[Free Software Foundation]]
|publisher=[[Free Software Foundation]]
|url=http://orgmode.org/org.html#History-and-Acknowledgments
|url=http://orgmode.org/org.html#History-and-Acknowledgments
}}</ref> Emacs has included Org-mode<ref>{{Citation
}}</ref> Emacs has included Org Mode<ref>{{Citation
|last=Corbet
|last=Corbet
|first=Jonathan
|first=Jonathan
Line 42: Line 39:
|title=Org mode for Emacs – Community
|title=Org mode for Emacs – Community
|url=http://orgmode.org/community.html
|url=http://orgmode.org/community.html
|access-date=2012-12-04
}}</ref> Since its success in Emacs, some other systems now provide functions to work with org files.<ref>{{Cite web|url=https://pandoc.org/org.html|title=Pandoc - Org-mode features and differences|website=pandoc.org|access-date=2021-01-29}}</ref><ref>{{Cite web|url=https://gohugo.io/content-management/formats/|title=Content Formats \p Hugos|website=gohugo.io|access-date=2021-01-29}}</ref>
|archive-date=2016-05-06
|archive-url=https://web.archive.org/web/20160506134151/http://orgmode.org/community.html
|url-status=dead
}}</ref> Since its success in Emacs, some other systems now provide functions to work with org files.<ref>{{Cite web|url=https://pandoc.org/org.html|title=Pandoc - Org-mode features and differences|website=pandoc.org|access-date=2021-01-29}}</ref><ref>{{Cite web|url=https://gohugo.io/content-management/formats/|title=Content Formats \p Hugos|website=gohugo.io|date=10 January 2017 |access-date=2021-01-29}}</ref>


Almost orthogonally, Org-mode has functionalities aimed at executing code in various external languages; these functionalities form org-babel.<ref>{{Cite web|url=https://orgmode.org/worg/org-contrib/babel/|title=Babel: active code in Org-mode|website=orgmode.org|access-date=2020-01-09}}</ref><ref>{{Cite journal|last=Schulte|first=Eric|last2=Davison|first2=Dan|last3=Dye|first3=Thomas|last4=Dominik|first4=Carsten|date=2012-01-25|title=A Multi-Language Computing Environment for Literate Programming and Reproducible Research|journal=Journal of Statistical Software|language=en|volume=46|issue=1|pages=1–24|doi=10.18637/jss.v046.i03|issn=1548-7660|doi-access=free}}</ref>
Almost orthogonally, Org Mode has functionalities aimed at executing code in various external languages; these functionalities form org-babel.<ref>{{Cite web|url=https://orgmode.org/worg/org-contrib/babel/|title=Babel: active code in Org-mode|website=orgmode.org|access-date=2020-01-09}}</ref><ref>{{Cite journal|last1=Schulte|first1=Eric|last2=Davison|first2=Dan|last3=Dye|first3=Thomas|last4=Dominik|first4=Carsten|date=2012-01-25|title=A Multi-Language Computing Environment for Literate Programming and Reproducible Research|journal=Journal of Statistical Software|language=en|volume=46|issue=1|pages=1–24|doi=10.18637/jss.v046.i03|issn=1548-7660|doi-access=free}}</ref>


==System==
==System==


The Org-mode home page explains that "at its core, Org-mode is a simple outliner for note-taking and list management"<ref>{{Citation
The Org Mode home page explains that "at its core, Org Mode is a simple outliner for note-taking and list management".<ref>{{Citation
|last=O'Toole
|last=O'Toole
|first=David
|first=David
|title=Org tutorial
|title=Org tutorial
|url=http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html
|url=http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html
}}</ref> The Org system author Carsten Dominik explains that "Org-mode does [[outline (list)|outlining]], [[notetaking|note-taking]], [[hyperlink]]s, [[spreadsheet]]s, [[time management|TODO lists]], [[project planning]], [[Getting Things Done|GTD]], [[HTML]] and [[LaTeX]] authoring, all with [[plain text]] files in [[Emacs]]."<ref>{{Citation
}}</ref> The Org system author Carsten Dominik explains that "Org Mode does [[outline (list)|outlining]], [[notetaking|note-taking]], [[hyperlink]]s, [[spreadsheet]]s, [[time management|TODO lists]], [[project planning]], [[Getting Things Done|GTD]], [[HTML]] and [[LaTeX]] authoring, all with plain text files in Emacs."<ref>{{Citation
|last=Dominik
|last=Dominik
|first=Carsten
|first=Carsten
Line 60: Line 61:
}}</ref>
}}</ref>


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".<ref>The Linux Information Project: [http://www.linfo.org/plain_text.html What is plain text?]</ref>
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".<ref>The Linux Information Project: [http://www.linfo.org/plain_text.html What is plain text?]</ref>


The system includes a [[lightweight markup language]] for plain text files (similar in function to [[Markdown]], [[reStructuredText]], [[Textile (markup language)|Textile]], etc., with a different implementation), allowing lines or sections of plain text to be hierarchically divided, tagged, linked, and so on.
The system includes a [[lightweight markup language]] for plain text files (similar in function to [[Markdown]], [[reStructuredText]], [[Textile (markup language)|Textile]], etc., with a different implementation), allowing lines or sections of plain text to be hierarchically divided, tagged, linked, and so on.
Line 67: Line 68:


This section gives some sample uses for the hierarchical display and editing of plain text.
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 [[Divide and conquer algorithm|subdivided]] into simple steps (nested to-dos and/or [[checklist]]s), and given tags and properties such as priorities and deadlines. An [[Calendaring software|agenda]] for the items to be done this week or day can then be automatically generated from date tags.<ref>{{Citation
* To-do lists often have subtasks, and so lend themselves to a hierarchical system. Org Mode facilitates this by allowing items to be [[Divide and conquer algorithm|subdivided]] into simple steps (nested to-dos and/or [[checklist]]s), and given tags and properties such as priorities and deadlines. An [[Calendaring software|agenda]] for the items to be done this week or day can then be automatically generated from date tags.<ref>{{Citation
| last=Chavan
| last=Chavan
| first=Abhijeet
| first=Abhijeet
Line 87: Line 88:
* Org files as interconnected pages of a [[personal wiki]], using the markup for links.
* 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]].
* Tracking bugs in a project, by storing .org files in a [[distributed revision control]] system such as [[Git]].
* Extensive linking features, to web pages, within the same file, to other files, to emails, and also allows defining custom links
* 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.
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.
Line 95: Line 96:
[[File:Org Babel demonstration of basic features.png|thumb|Some of the basic features of Org-babel]]
[[File:Org Babel demonstration of basic features.png|thumb|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.
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.
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.
Line 101: Line 102:
Together with the markup facilities of org-mode, these two functionalities allow for
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
* [[Literate programming]], by decoupling the exposition of the functions of a program from its code structure, and
* [[Reproducibility#Reproducible_research|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.
* [[Reproducibility#Reproducible research|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.<ref>{{cite web |title=Babel: Languages |url=https://orgmode.org/worg/org-contrib/babel/languages/index.htm |access-date=7 June 2021}}</ref>
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.<ref>{{cite web |title=Babel: Languages |url=https://orgmode.org/worg/org-contrib/babel/languages/ |access-date=7 June 2021}}</ref>


==Integration==
==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.
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 language|markup format]] such as [[MediaWiki]] (org-export-generic, org-export), to [[flashcard]] learning systems implementing [[SuperMemo]]'s algorithms (org-drill, org-learn).<ref>[http://orgmode.org/worg/org-contrib/ Org-mode Contributed Packages], and many other hierarchical or list-oriented formats.</ref>
From org-mode, add-on packages export to other [[Markup language|markup format]] such as [[MediaWiki]] (org-export-generic, org-export), to [[flashcard]] learning systems implementing [[SuperMemo]]'s algorithms (org-drill, org-learn).<ref>[http://orgmode.org/worg/org-contrib/ Org-mode Contributed Packages], and many other hierarchical or list-oriented formats.</ref>


Outside of org-mode editors, org markup is supported by the [[GitLab]] and [[GitHub]] code repositories,<ref>{{Citation
Outside of org-mode editors, org markup is supported by the [[GitLab]], [[GitHub]]<ref>{{Citation
|title=GitHub Markup
|title=GitHub Markup
|url=https://github.com/github/markup
|url=https://github.com/github/markup
|date=2020-01-11
|date=2023-10-02
}}</ref> the [[Jira (software)|JIRA]] issue tracker,<ref>{{Citation
}}</ref> and [[Gitea]] code repositories, the [[Jira (software)|JIRA]] issue tracker,<ref>{{Citation
|last=Bao
|last=Bao
|first=Haojun
|first=Haojun
Line 121: Line 122:
|url=https://github.com/baohaojun/org-jira
|url=https://github.com/baohaojun/org-jira
|date=2019-12-02
|date=2019-12-02
}}</ref> [[Pandoc]], and others.
}}</ref> [[Pandoc]] and others.


==Export Examples==
==Export examples==


Org supports exporting to a variety of formats. Below you may find examples of Org fragments exported to a number of formats.
Org supports exporting to a variety of formats. Below you may find examples of Org fragments exported to a number of formats.
Line 132: Line 133:
! width="22%" | Structure
! width="22%" | Structure
! width="22%" | Text attributes
! width="22%" | Text attributes
! width="22%" | Lists
! width="22%" | Lists
! width="28%" | Images and blocks
! width="28%" | Images and blocks
|-valign="top"
|-valign="top"
|
|
Org
Org
|
|
<syntaxhighlight lang="text">
<syntaxhighlight lang="org">
* Heading
* Heading
** Sub heading
** Sub heading
Line 150: Line 151:
</syntaxhighlight>
</syntaxhighlight>
|
|
<syntaxhighlight lang="text">
<syntaxhighlight lang="org">
Simple markup produces *bold*
Simple markup produces *bold*
and /italic/ text. There's also
and /italic/ text. There's also
Line 159: Line 160:
</syntaxhighlight>
</syntaxhighlight>
|
|
<syntaxhighlight lang="md">
<syntaxhighlight lang="org">
An unordered list:
An unordered list:
+ apples
+ apples
Line 171: Line 172:
</syntaxhighlight>
</syntaxhighlight>
|
|
<syntaxhighlight lang="html">
<syntaxhighlight lang="org">
[[file:org-mode-unicorn.png]]
[[file:org-mode-unicorn.png]]


Line 282: Line 283:
|
|
<p>
<p>
Simple markup produces <b>bold</b>
Simple markup produces '''bold'''
and <i>italic</i> text. There's also
and ''italic'' text. There's also
<code>code</code>, and other markups.
<code>code</code>, and other markups.
</p>
</p>
Line 300: Line 301:
</ul>
</ul>


<p>
An ordered list:
An ordered list:

</p>
<ol class="org-ol">
<ol class="org-ol">
<li>lather</li>
<li>lather</li>
Line 319: Line 319:
</blockquote>
</blockquote>


<p>
You can also have format-specific markup, for some formats
You can also have format-specific markup, for some formats
like <abbr title="Hypertext Markup Language">HTML</abbr>
like <abbr title="Hypertext Markup Language">HTML</abbr>
.
.

</p>
|-valign="top"
|-valign="top"
|
|
Line 409: Line 408:
<text:span text:style-name="OrgCode">code</text:span>, and other markups.
<text:span text:style-name="OrgCode">code</text:span>, and other markups.
</text:p>
</text:p>



<text:p text:style-name="Text_20_body">Here is a link to the
<text:p text:style-name="Text_20_body">Here is a link to the
Line 473: Line 471:
ASCII
ASCII
|
|
<syntaxhighlight lang="text">
<syntaxhighlight lang="rest">
1 Heading
1 Heading
=========
=========
Line 492: Line 490:


Here is a link to the org [homepage].
Here is a link to the org [homepage].



[homepage] <https://orgmode.org/>
[homepage] <https://orgmode.org/>
</syntaxhighlight>
</syntaxhighlight>
|
|
<syntaxhighlight lang="text">
<syntaxhighlight lang="md">
An unordered list:
An unordered list:
+ apples
+ apples
Line 682: Line 679:
|pages=1–24
|pages=1–24
|publisher=[[American Statistical Association]]
|publisher=[[American Statistical Association]]
|doi=10.18637/jss.v046.i03
|issn=1548-7660
|issn=1548-7660
|url=http://www.jstatsoft.org/v46/i03
|url=http://www.jstatsoft.org/v46/i03
|doi-access=free
}}
}}
* {{cite journal
* {{cite journal
Line 701: Line 700:
|citeseerx=10.1.1.226.2202
|citeseerx=10.1.1.226.2202
|bibcode=2011CSE....13c..66S
|bibcode=2011CSE....13c..66S
|s2cid=38470377
}}
}}



Latest revision as of 17:00, 1 August 2024

Org Mode
Original author(s)Carsten Dominik
Developer(s)Carsten Dominik, Bastien Guerry, et al.
Initial release2003
Stable release
9.7.6[1] Edit this on Wikidata / 28 June 2024; 2 months ago (28 June 2024)
Repository
Written inEmacs Lisp
TypePersonal information management, Notetaking, Outlining, Literate programming, Reproducibility
LicenseGPL-3.0-or-later
Websiteorgmode.org

Org Mode (also: org-mode;[2] /ˈɔːrɡ md/) 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.).

Org Mode was created by Carsten Dominik in 2003, originally to organize his own life and work,[3] and since the first release numerous other users and developers have contributed to this free software package.[4] Emacs has included Org Mode[5] as a major mode by default since 2006. Bastien Guerry is the current maintainer, in cooperation with an active development community.[6] Since its success in Emacs, some other systems now provide functions to work with org files.[7][8]

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

System

[edit]

The Org Mode home page explains that "at its core, Org Mode is a simple outliner for note-taking and list management".[11] 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."[12]

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".[13]

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

[edit]

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.[14]
  • Plain text outlines.[15]
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

[edit]
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.[16]

Integration

[edit]

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).[17]

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

Export examples

[edit]

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 <abbr title="Hypertext Markup Language">HTML</abbr>@@
@@latex:like \LaTeX@@.

HTML

<div id="outline-container-org75efe15" class="outline-2">
<h2 id="org75efe15"><span class="section-number-2">1</span> heading</h2>
<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.1</span> Sub heading</h3>
<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>bold</b>
and <i>italic</i> text. There's also
<code>code</code>, and other markups.
</p>

<p>
Here is a link to the
org <a href="https://orgmode.org/">homepage</a>.
</p>
<p>
An unordered list:
</p>
<ul class="org-ul">
<li>apples</li>
<li>oranges</li>
<li>pears</li>
</ul>

<p>
An ordered list:
</p>
<ol class="org-ol">
<li>lather</li>
<li>rinse</li>
<li>repeat</li>
</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>BLOCK</sub>
and end with #+end<sub>BLOCK</sub>.
This is a quote block.
</p>
</blockquote>

<p>
You can also have format-specific markup, for some formats
like <abbr title="Hypertext Markup Language">HTML</abbr>
.
</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 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:h text:style-name="Heading_20_1" text:outline-level="1" text:is-list-header="false">
<text:bookmark-start text:name="OrgXref.org3c83460"/>
<text:bookmark text:name="org3c83460"/>Heading
<text:bookmark-end text:name="OrgXref.org3c83460"/></text:h>
<text:h text:style-name="Heading_20_2" text:outline-level="2" text:is-list-header="false">
<text:bookmark-start text:name="OrgXref.orgeb4e8ed"/>
<text:bookmark text:name="orgeb4e8ed"/>Sub heading
<text:bookmark-end text:name="OrgXref.orgeb4e8ed"/></text:h>
<text:p text:style-name="Text_20_body">Paragraphs are separated
by a blank line.
</text:p>

<text:p text:style-name="Horizontal_20_Line"></text:p>

<text:p text:style-name="Text_20_body">Five dashes is a horizontal rule.
</text:p>
<text:p text:style-name="Text_20_body">Simple markup produces <text:span text:style-name="Bold">bold</text:span>
and <text:span text:style-name="Emphasis">italic</text:span> text. There's also
<text:span text:style-name="OrgCode">code</text:span>, and other markups.
</text:p>

<text:p text:style-name="Text_20_body">Here is a link to the
org <text:a xlink:type="simple" xlink:href="https://orgmode.org/">homepage</text:a>.
</text:p>
<text:list text:style-name="OrgBulletedList" text:continue-numbering="false">

<text:list-item>
<text:p text:style-name="Text_20_body">apples
</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="Text_20_body">oranges
</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="Text_20_body">pears
</text:p>
</text:list-item>
</text:list>

<text:p text:style-name="Text_20_body">An ordered list:
</text:p>

<text:list text:style-name="OrgNumberedList" text:continue-numbering="false">
<text:list-item>
<text:p text:style-name="Text_20_body">lather
</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="Text_20_body">rinse
</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="Text_20_body">repeat
</text:p>
</text:list-item>
</text:list>
<text:p text:style-name="Text_20_body">
<draw:frame draw:style-name="OrgDisplayImage" svg:width="6.24cm" svg:height="6.88cm" text:anchor-type="paragraph" draw:name="Frame1">

<draw:image xlink:href="Images/0001.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</text:p>

<text:p text:style-name="Quotations">Org blocks start with #+begin<text:span text:style-name="OrgSubscript">BLOCK</text:span>
and end with #+end<text:span text:style-name="OrgSubscript">BLOCK</text:span>.
This is a quote block.
</text:p>

<text:p text:style-name="Text_20_body">You can also have format-specific markup, for some formats
.
</text:p>

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] <https://orgmode.org/>
An unordered list:
+ apples
+ oranges
+ pears

An ordered list:
1. lather
2. rinse
3. repeat
<file:org-mode-unicorn.png>

      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

<a id="orgfcf266c"></a>
# Heading

<a id="org6c11f38"></a>
## 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 #+begin<sub>BLOCK</sub>
> and end with #+end<sub>BLOCK</sub>.
> This is a quote block.

You can also have format-specific markup, for some formats
like <abbr title="Hypertext Markup Language">HTML</abbr>

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

[edit]

References

[edit]
  1. ^ "[GNU ELPA] Org version 9.7.6". 28 June 2024. Retrieved 3 July 2024.
  2. ^ Gmane: Org, Org-mode, Orgmode, Org Mode Archived 2017-09-10 at the Wayback Machine - Carsten Dominik: Org, the system; Org-mode, the major mode
  3. ^ Dominik, Carsten (2011-12-15), Emacs Org-mode: Organizing a Scientist's Life and Work (abstract and video), Max Planck Institute for Neurological Research
  4. ^ Org Mode Manual: History and acknowledgments, Free Software Foundation
  5. ^ Corbet, Jonathan (2006), "Pre-testing Emacs 22", LWN.net
  6. ^ Org mode for Emacs – Community, archived from the original on 2016-05-06, retrieved 2012-12-04
  7. ^ "Pandoc - Org-mode features and differences". pandoc.org. Retrieved 2021-01-29.
  8. ^ "Content Formats \p Hugos". gohugo.io. 10 January 2017. Retrieved 2021-01-29.
  9. ^ "Babel: active code in Org-mode". orgmode.org. Retrieved 2020-01-09.
  10. ^ Schulte, Eric; Davison, Dan; Dye, Thomas; Dominik, Carsten (2012-01-25). "A Multi-Language Computing Environment for Literate Programming and Reproducible Research". Journal of Statistical Software. 46 (1): 1–24. doi:10.18637/jss.v046.i03. ISSN 1548-7660.
  11. ^ O'Toole, David, Org tutorial
  12. ^ Dominik, Carsten, Technical description in 24 words
  13. ^ The Linux Information Project: What is plain text?
  14. ^ Chavan, Abhijeet (2007), "Get Organized with Emacs Org-mode", Linux Journal
  15. ^ Chua, Sacha, Outlining Your Notes with Org
  16. ^ "Babel: Languages". Retrieved 7 June 2021.
  17. ^ Org-mode Contributed Packages, and many other hierarchical or list-oriented formats.
  18. ^ GitHub Markup, 2023-10-02
  19. ^ Bao, Haojun (2019-12-02), org-jira

Further reading

[edit]

Books

[edit]

Journal articles

[edit]
[edit]