Org-mode: Difference between revisions
Junnu.wiki (talk | contribs) m org mode 9.3 released |
→Integration: fix - WP:EL --> inline-references, rmv - WP:NOTDIRECTORY |
||
Line 44: | Line 44: | ||
}}</ref> Since its success in Emacs, some other systems have also begun providing functions to work with org files. |
}}</ref> Since its success in Emacs, some other systems have also begun providing functions to work with org files. |
||
Almost orthogonally, Org-mode has functionalities aimed at executing code in various external languages ; these functionalities form |
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|url=https://www.jstatsoft.org/index.php/jss/article/view/v046i03|journal=Journal of Statistical Software|language=en|volume=46|issue=1|pages=1–24|doi=10.18637/jss.v046.i03|issn=1548-7660}}</ref> |
||
==System== |
==System== |
||
Line 89: | Line 89: | ||
* Extensive linking features, to web pages, within the same file, to other files, to emails, and also allows defining custom links |
* Extensive linking features, to web pages, within the same file, to other files, to emails, and also allows defining custom links |
||
An org-mode document can also be |
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-babel== |
||
Line 118: | Line 118: | ||
|url=https://github.com/baohaojun/org-jira |
|url=https://github.com/baohaojun/org-jira |
||
}}</ref> [[Pandoc]], and others. |
}}</ref> [[Pandoc]], and others. |
||
Other than Emacs, systems that handle org files include: |
|||
* Mobile apps:<ref>Org mobile apps: [http://beorgapp.com/ BeOrg for iOS], [http://mobileorg.ncogni.to/ MobileOrg for iOS] {{webarchive|url=https://web.archive.org/web/20100323140800/http://mobileorg.ncogni.to/ |date=2010-03-23 }}, [https://github.com/matburt/mobileorg-android/wiki MobileOrg for Android], [https://github.com/kvj/mobileorg-android MobileOrgNG for Android], [http://www.orgzly.com/ Orgzly for Android]</ref> |
|||
** BeOrg for iOS |
|||
** MobileOrg for iOS |
|||
** MobileOrg for Android |
|||
** MobileOrgNG for Android |
|||
** Orgzly for Android |
|||
* The [[Vim (text editor)|Vim]] text editor, via plugins:<ref>Vim plugins for Org-mode functionality: [http://www.vim.org/scripts/script.php?script_id=3342 VimOrganizer], [http://www.vim.org/scripts/script.php?script_id=3642 vim-orgmode], [http://www.vim.org/scripts/script.php?script_id=2657 VOoM], [http://www.vim.org/scripts/script.php?script_id=3004 vxfold.vim]</ref> |
|||
** VimOrganizer - An Emacs Org-mode clone for Vim |
|||
** vim-orgmode - Text outlining and task management for Vim based on Emacs Org-mode |
|||
** VOoM - Outliner including an Org markup mode |
|||
** vxfold.vim - Fold cycling similar to Emacs Org-mode |
|||
* [[Sublime Text]] editor, with Org syntax and features using its orgmode plugin<ref>{{Citation |
|||
|last=Magnusson |
|||
|first=Daniel |
|||
|title=orgmode |
|||
|url=https://github.com/danielmagnussons/orgmode |
|||
}}</ref> |
|||
==See also== |
==See also== |
Revision as of 13:23, 9 January 2020
![]() | |
Original author(s) | Carsten Dominik |
---|---|
Developer(s) | Carsten Dominik et al. |
Stable release | 9.3
/ December 3, 2019[1] |
Repository | |
Written in | Emacs lisp |
Type | Personal information management, Notetaking, Outlining, Literate programming, Reproducibility |
License | GPL |
Website | orgmode |
Org-mode (also: Org mode;[2] /ˈɔːrɡ moʊd/) is a document editing, formatting, and organizing mode, designed for notes, planning, and 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 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 includes Org-mode[5] as a major mode by default. Bastien Guerry is the current maintainer, in cooperation with an active development community.[6] Since its success in Emacs, some other systems have also begun providing 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.[7][8]
System
The Org-mode home page explains that "at its core, Org-mode is a simple outliner for note-taking and list management"[9] 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."[10]
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".[11]
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.[12]
- Plain text outlines.[13]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Org-mode-show-all.png/300px-Org-mode-show-all.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Org-mode-overview.png/300px-Org-mode-overview.png)
- 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, to web pages, within the same file, to other files, 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 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 November 2018, org-babel directly supports more than 50 programming languages or programmable facilities, more than 20 other tools being usable via contributed packages or drivers[14].
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 flashcard learning systems implementing SuperMemo's algorithms (org-drill, org-learn).[15]
Outside of org-mode editors, org markup is supported by the GitLab and GitHub code repositories,[16] the JIRA issue tracker,[17] Pandoc, and others.
See also
- Lightweight markup language
- Comparison of notetaking software
- Comparison of document markup languages
- List of personal information managers
- Outliner
References
- ^ "Org mode for Emacs – Your Life in Plain Text". orgmode.org. OrgMode team. Retrieved 2018-12-27.
- ^ Gmane: Org, Org-mode, Orgmode, Org Mode - Carsten Dominik: Org, the system; Org-mode, the major mode
- ^ Dominik, Carsten, Emacs Org-mode: Organizing a Scientist's Life and Work (abstract and video), Max Planck Institute for Neurological Research
- ^ Org Mode Manual: History and acknowledgments, Free Software Foundation
- ^ Corbet, Jonathan (2006), "Pre-testing Emacs 22", LWN.net
- ^ Org mode for Emacs – Community
- ^ "Babel: active code in Org-mode". orgmode.org. Retrieved 2020-01-09.
- ^ 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.
- ^ O'Toole, David, Org tutorial
- ^ Dominik, Carsten, Technical description in 24 words
- ^ The Linux Information Project: What is plain text?
- ^ Chavan, Abhijeet (2007), "Get Organized with Emacs Org-mode", Linux Journal
- ^ Chua, Sacha, Outlining Your Notes with Org
- ^ "Babel: Languages". Retrieved 25 November 2018.
- ^ Org-mode Contributed Packages, and many other hierarchical or list-oriented formats.
- ^ GitHub Markup
- ^ Bao, Haojun, org-jira
Further reading
Books
- Dominik, Carsten (2010). The Org Mode 7 Reference Manual: Organize your life with GNU Emacs. With contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and Thomas Dye. UK: Network Theory. p. 282. ISBN 978-1-906966-08-9.
Journal articles
- Schulte, Eric; Davison, Dan; Dye, Thomas; Dominik, Carsten (Jan 2012). "A Multi-Language Computing Environment for Literate Programming and Reproducible Research". Journal of Statistical Software. 46 (3). American Statistical Association: 1–24. ISSN 1548-7660.
- Schulte, E.; Davison, D. (May–June 2011). "Active Documents with Org-Mode". Computing in Science Engineering. 13 (3). American Institute of Physics, and IEEE Computer Society: 66–73. CiteSeerX 10.1.1.226.2202. doi:10.1109/MCSE.2011.41. ISSN 1521-9615.