Org Mode tools
This page lists external tools useful for handling Org files.
Org-mode parsers
Name | Language | Author | Annoncement/info |
---|---|---|---|
org-parser | JavaScript/Java/Clojure/BNF | 200ok | homepage |
Orgile | PHP | mashdot | this blog entry |
pico-org | PicoLisp | Joe Bogner | Message |
cl-org-mode | Common Lisp | ||
orgnode.py | Python | Charles Cave | |
org-mode-parser | nodejs | ||
PyOrgMode | Python | Jonathan Bisson | |
neo | ? | Olivier Schwander | Announcement |
Org::Parser | Perl | ||
org-ruby | Ruby | Brian Dewey | org-ruby tutorial |
org-js | JavaScript | Masafumi Oyamada | working example |
orga | ? | Xiaoxing Hu | |
ascii | R | ascii on CRAN | |
orgajs | JavaScript | ||
org-rs | Rust | ||
swift-org | Swift | ||
organum | Clojure | ||
clj-org | Clojure | ||
orgmode-parse | ? | ||
org-mode | Haskell | ||
orgize | Rust | ||
go-org | Go | Niklas Fasching | |
OrgMode.jl | Julia | Timothy | Message |
Org-mode exporters and importers
See org-translators for various tools to import data to Org-mode and export Org-mode data.
Specific purpose tools
pandoc
Pandoc is the Swiss-army knife to convert files from one markup format into another, it can convert documents from many source format, including Org, to many other.
orgutils R package
- Author: Enrico Schumann
- Homepage: https://cran.r-project.org/web/packages/orgutils/
Helper functions for Org files (http://orgmode.org/): a generic function 'toOrg' for transforming R objects into Org markup (most useful for data frames; there are also methods for Dates/POSIXt) and a function to read Org tables into data frames.
- Description and examples
Convert data.frames into org tables.
library(orgutils)
toOrg(head(mtcars))
ascii R package
- Authors: David Hajage [aut], Mark Clements [cre, ctb], Seth Falcon [ctb], Terry Therneau [ctb], Matti Pastell [ctb], Friedrich Leisch [ctb]
- Homepage: https://cran.r-project.org/web/packages/ascii/, https://github.com/mclements/ascii
Coerce R object to 'asciidoc', 'txt2tags', 'restructuredText', 'org', 'textile' or 'pandoc' syntax. Package comes with a set of drivers for 'Sweave'.
- Description and examples
Convert several R objects like tables, data.frame matrices into org tables
library(ascii) print(ascii(head(mtcars)),type='org')
print(ascii(table(mtcars$am,mtcars$gear)),type='org')
print(ascii(as.matrix(head(mtcars))),type='org')
org-webring - generate webrings for Org-based sites / blogs
- Read the announcement and the message sent to the Org-mode list
- Browse the project page and source code
- Participate in the mailing list
org-pandoc-import - leverage Pandoc to convert selected file types to org
el2org - convert an emacs-lisp file to an org file
El Gantt - A Gantt chart/calendar for Orgmode
org-web.org - org mode on the web
organice - organice organizes Org files nicely!
organice is an implementation of Org mode without the dependency of Emacs. It is built for mobile and desktop browsers and syncs with Dropbox, Google Drive and WebDAV.
orgmode for Drupal
Orgmode for drupal import org files into drupal nodes.
nakkaya - a static site generator parsing Org's files (and MarkDown)
Static is a simple static site generator written in Clojure. For a sample site build using static see http://nakkaya.com
You can grab the latest version of nakkaya from its github repository.
orgitdown - use Org keybindings in HTML text areas
Exporter for the Octopress blogging engine
Octopress is a framework designed by Brandon Mathis for Jekyll, the blog aware static site generator powering Github Pages. To start blogging with Jekyll, you have to write your own HTML templates, CSS, Javascripts and set up your configuration. But with Octopress All of that is already taken care of. Simply clone or fork Octopress, install dependencies and the theme, and you’re set.
You can clone Octopress from the github repository.
orgmode-octopress is an exporter for Emacs Org-Mode to Octopress by craftkiller. For setup instructions, check this blog entry. Note that orgmode-octopress will not work with the new export engine in Org 8.0.
Convert from Planner to Org
See this message from Andreas Hirczy:
I have written yet another converter from planner to org: http://itp.tugraz.at/~ahi/Computer/SW/muse2org.html http://itp.tugraz.at/~ahi/Computer/SW/muse2org
Export vCard to org-mode entries
Simon Thum shared some Ruby code to export vCards to Org-mode entries.
ews-orgmode - Exchange calendar to orgmode
https://github.com/kautsig/ews-orgmode
See this message from Chris Raschl:
I recently wrote a python script to fetch my calendar from the corporate exchange server into an orgmode file to view it in my agenda. It uses the exchange webservices (ews).
michel-orgmode - script for pushing to / pulling from Google-Tasks lists
- Authors: Mark Edgington, Christophe-Marie Duquesne
- Homepage: https://bitbucket.org/edgimar/michel-orgmode
Michel-orgmode is a python script which serves as a bridge between an org-mode textfile and a Google-tasks task list. It can pull the contents of a Google-tasks list into an org-mode file, or push an org-mode file's contents to a Google-tasks list. It supports bidirectional sync.
Using GData API to import events in an Org file
Mon, 11 Jul 2011, Felix Geller wrote:
I wrote a Python [[https://bitbucket.org/fgeller/gcal2org/src/8fa7d2b83ab3/gcal2org.py][script]] that uses the GData API to download events for your Google Calendar and prints them to a given org-file. It is a very tiny script, but perhaps it is of use to other people as well. Small disclaimer: I've tested this on Mac OS X only, using Python 2.7.2.
The script can be found here: gcal2org.py
Migrating from Tomboy to Org
In this email, Attila shared a script to move notes from Tomboy to Org-mode – see his message:
I'm moving my note-taking from GNote (C++ rewrite of Tomboy Notes) to org-mode. As I have a lot of notes all over the place, I wrote a script to convert from the XML format used by the Tomboy-style tools to org-mode.
You can find the script here: https://github.com/StAlphonsos/scriptologie
orgutil - TCL script to manipulate org files
- Author: Patrick Brennan
- Homepage: http://sourceforge.net/projects/orgutil/
Script for converting files into and out of Org-mode, and for performing various analyses and conversions. The primary use case for this utility is to convert between Org-mode outline text and AbstractSpoon's ToDoList.
org2remind - perl script to convert org appointments to remind
- Author: Matt Lundin
- Code: org2remind
Remind is a command line calendar application for Unix/Linux that can, among other things, spit out formatted plain text calendars and agendas.
http://www.roaringpenguin.com/products/remind
To convert org-mode appointments to remind data, simply call the script on one or more org files: perl org2remind.pl ~/org/*.org (Optionally, add the script to your path and make it executable.) The results of this script can saved in a file... perl org2remind.pl ~/org/*.org >> org.rem ...or piped directly into a remind command... perl org2remind.pl ~/org/*.org | remind - For a nice calendar of the current month, use the following: perl org2remind.pl ~/org/*.org | remind -c - This script is similar to org2rem.el (in the contrib directory of the org-mode repository), except that, instead of saving files from within org-mode, it allows for easier and faster access to org/remind data from the command line. Currently, the script supports appointments (i.e., active timestamps) and the org-diary-class sexp.
ical2org.awk - convert ics files to Org
- Author: Eric S Fraga
- Code: ical2org.awk
See the org-google-sync tutorial for explanations on how to use this script.
ical2org.rb - convert ics files to Org
- Author: Simon Thum
- Code: ical2org
- handles events and TODOs
- all sorts of repeating events
- and timezones!
- one-way only though
- except if you have a REST-capable ical server, see README
org-manage - locate and manage your org files
- Author: Daniel German
- Code: org-manage (based on org-octopress)
- Lists all org files in a given directory and its subdirectories, providing a table of org files, including their title and category.
This is a module to help managing a large collection of org files. It is based on org-octopress by Yoshinari Nomura.
org-manage scans a given directory (recursively) looking for org files. For each, an entry is created. The title is extracted from the attribute #+TITLE: in the org file. The category is extracted from the first #+CATEGORY in the file (I suggest you add a default category to each file.
vimwiki2org - convert vimwiki files to Org
- Author: Xu FaSheng
- Homepage: https://github.com/fasheng/vimwiki2org
Org Blog Wiki tools
See the page Org Blogs and Wikis.
orgFixLinks.py - a Python command-line utility for repairing broken links to local files
- Author: GitHub user cashTangoTangoCash
- website: https://github.com/cashTangoTangoCash/orgFixLinks
- repairs broken links in org files
- currently Linux-only, but probably straighforward to port to Win/Mac?
A stand-alone Python script designed to interactively repair broken links to local files in one, many, or all of your org files. OK, it's an amateur command line script that likely needs more refinement, and it chooses to do things that not everyone desires, but you can fork it on GitHub, and adapt it to your own purposes. If you are frustrated by broken links to the degree that you are ready to debug a lengthy Python script, why not play with it. The GitHub wiki https://github.com/cashTangoTangoCash/orgFixLinks/wiki provides a degree of documentation.
orgformat - Utility library for providing functions to generate and modify Org mode syntax elements
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/orgformat
- License: GPL 3.0
- Technology: Python 3
- Bugs and feature requests: https://github.com/novoid/orgformat/issues
- State of development: 2023-04-09 actively used by the author in his other org-related projects
The orgformat library contains handy Python 3 functions to process Org-mode sytntax elements like links, time-stamps, or date-stamps. If you're developing Org-related tools in Python, you should check out this library first.
This library was developed using test-driven-development and is implemented using Python type annotations for mypy checks in order to make sure that there aren't many hidden bugs.
If you want to contribute further functions, please do send pull requests via GitHub.
org-contacts2vcard - Converting Emacs Org-mode org-contacts contact information to VCard
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/org-contacts2vcard
- License: GPL 3.0
- Technology: Python 3
- Bugs and feature requests: https://github.com/novoid/org-contacts2vcard/issues
- State of development: 2023-04-09 used by the author to convert his contacts for being imported to Android.
This workflow works great with one disadvantage: there is a weird issue where (random) contact images aren't imported since many Android versions. Karl gave up analyzing it because he ran out of ideas. However, for the contact information without images, it's working flawlessly so far.
appendorgheading - Append a new Orgdown heading to an existing Orgdown file
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/appendorgheading
- License: GPL 3.0
- Technology: Python 3
- Bugs and feature requests: https://github.com/novoid/appendorgheading/issues
- State of development: 2023-04-09 used by the author on a daily basis; seems stable.
This small tool is very handy to be used, e.g., in shell scripts to get error messages and so forth onto your Org-mode agenda.
org-du - Visualizing Emacs Org-mode heading lines using xdu
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/org-du
- License: GPL 3.0
- Technology: Python 3
- Bugs and feature requests: https://github.com/novoid/org-du/issues
- State of development: 2023-04-09 stable
This fine trick is (mis-)using xdu to get a graphical overview on the structure of an Orgdown file. See the screenshot in the README to get an idea.
postprocess_Org-mode_iCal_export - Post-processing iCal export files
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/postprocess_Org-mode_iCal_export
- License: GPL 3.0
- Technology: Python 3
- Bugs and feature requests: https://github.com/novoid/postprocess_Org-mode_iCal_export/issues
- State of development: 2023-04-09 not used by the author for a couple of years.
This tool post-processes iCal export results such taht you can hide some data for privacy reasons or add reminder alarms defined as Org-mode tags.
orgmode-balance - feedback on how you are doing with your Org-mode tasks
- Author: Karl Voit (publicvoit)
- Website: https://github.com/novoid/orgmode-balance
- License: -
- Technology: Shell script
- Bugs and feature requests: https://github.com/novoid/orgmode-balance/issues
- State of development: 2023-04-09 stable.
This is a more or less quick hack that analyzes Orgdown files and gives feedback on how you are doing today (or at a given day).
The script lists:
- closed items,
- created items and
- items still due
The metrics are clearly subjective and should be improved. Please do fork and send improvements via merge requests!
Example output:
----=== 2012-03-03 ===---- closed: work.org-**** DONE thanked administrators for great work work.org-**** DONE submitted project report work.org-**** DONE successfully ignored coffee machine work.org-**** DONE volunteered for WORG project 0 created (& still open) - 4 done = -4 sum Congratulations! Not more tasks generated than solved! Still 21 deadlines due tough!
Org in other text editors
- Vim : orgmode.nvim, vim-orgmode, and org.vim
- VSCodium : vscode-org-mode
- Sublime : OrgExtended