1 #+TITLE: Org Mode tools!
3 #+EMAIL: mdl AT imapmail DOT org
4 #+STARTUP: align fold nodlcheck hidestars oddeven intestate
5 #+SEQ_TODO: TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
6 #+TAGS: Write(w) Update(u) Fix(f) Check(c)
10 #+OPTIONS: H:3 num:nil toc:t \n:nil ::t |:t ^:t -:t f:t *:t tex:t d:(HIDE) tags:not-in-toc
12 This page lists external tools useful for handling Org files.
16 ** Orgile - a PHP Org parser
18 See [[http://toshine.org/etc/orgile-emacs-org-mode-file-html-parser-php-publishing-tool/][this blog entry]] for details, the repo is on [[https://github.com/mashdot/orgile][github]].
20 ** [[https://bitbucket.org/joebo/pico-org/src][pico-org]] - A PicoLisp parser
22 [[http://thread.gmane.org/gmane.lisp.picolisp.general/3679][Message]] from the developer Joe Bogner:
24 : I've written a tiny org-mode parser and hooked it up with my mustache
25 : implementation to create a simple web page that dumps out the org
26 : structure. I'm not sure where I'm going to go next but figured I'd
27 : share it since I enjoy reading other's code as well.
29 ** [[http://common-lisp.net/project/cl-org-mode/][cl-org-mode]] - A Common lisp parser for org-mode outlines
31 Abstract: CL-ORG-MODE is a parser for org-mode files that uses an
32 extensible CLOS-based recursive descent parser to create a tree of org-mode
33 nodes. Also included is a (primitive) system for literate programming using
36 ** orgnode.py - python library for parsing Org files
38 - Author: Charles Cave
39 - Homepage: http://members.optusnet.com.au/~charles57/GTD/orgnode.html
41 : The Orgnode module contains one class, called Orgnode and a routine to read
42 : an org-mode file and create a list of Orgnode objects.
44 : The module is for reading an org-mode file. There are no methods for
45 : writing org-mode since since I have no need for this functionality.
47 : You are welcome to extend the functionality of the __repr__ method of the
48 : Orgnode class if you would like this functionality.
49 ** [[http://gioorgi.com/org-mode-parser/][org-mode-parser for nodejs]] by Giovanni Giorgi
50 ** PyOrgMode - python library for creating and parsing Org files
52 - Author: Jonathan Bisson (on gmail : bissonjonathan)
53 - Homepage: https://github.com/bjonnh/PyOrgMode
55 : This python module allows for the creation and parsing of org-files. The
56 : org-files are loaded into python objects allowing the modification of the
57 : different recognized elements.
59 : The objects are defined in a plug-in way, allowing the user of this
60 : module to add easily a new kind of data and the relative functions.
62 : Current objects are :
68 : The project is contained in an unique tangle org-file which contains the
69 : documentation, the python files and the test suite.
71 ** NEO - No Emacs Org in Python
73 - Author: Olivier Schwander
74 - Homepage: http://redmine.chadok.info/projects/neo
75 - Announcement: http://lists.gnu.org/archive/html/emacs-orgmode/2011-04/msg00598.html
77 : Another Python tool for parsing org mode files
84 : - Custom todo keywords
85 : - Command line interface for agenda and todo-lists
87 ** Org::Parser - Perl module for parsing Org files
89 - Author: Steven Haryanto
90 - Homepage: http://search.cpan.org/dist/Org-Parser
92 There are several other Org-related modules on CPAN at various development
93 stages, all utilizing Org::Parser: App::OrgUtils (some utilities for Org
94 documents), Org::To::* (convert Org mode to various other formats).
96 ** [[https://github.com/bdewey/org-ruby][org-ruby (used on github)]] by Brian Dewey
99 This gem contains Ruby routines for parsing org-mode files. The most
100 significant thing this library does today is convert org-mode files to HTML
104 Read [[https://orgmode.org/worg/org-tutorials/org-ruby.html][the org-ruby tutorial for details.]]
106 ** [[https://github.com/mooz/org-js][org-js]] by Masafumi Oyamada
108 org-js is a javascript parser and converter for org-mode
109 (https://orgmode.org/) notation.
111 For a working example of an interactive editor, see
112 http://mooz.github.com/org-js/editor/.
114 ** [[https://github.com//xiaoxinghu/orgajs][orga]] by Xiaoxing Hu
116 Orga is a flexible Org syntax parser. It parses Org content into AST
117 (Abstract Syntax Tree).
119 ** [[https://pandoc.org][pandoc]]
121 Pandoc is the Swiss-army knife to convert files from one markup format
122 into another, it can convert documents from many source format,
123 including Org, to many other.
128 - https://github.com/zzamboni/ox-leanpub
130 * Specific purpose tools
132 ** org-webring - generate webrings for Org-based sites / blogs
134 - Read [[https://brettgilio.ml/posts/2020-08-20-announcing-org-webring.html][the announcement]] and [[https://orgmode.org/list/875z9c4ltr.fsf@gnu.org/][the message sent to the Org-mode list]]
135 - Browse [[https://sr.ht/~brettgilio/org-webring/][the project page and source code]]
136 - Participate to [[https://sr.ht/~brettgilio/org-webring/lists][the mailing list]]
138 ** [[https://github.com/tecosaur/org-pandoc-import][org-pandoc-import]] : leverage Pandoc to convert selected file types to org
139 ** [[https://github.com/tumashu/el2org][el2org]] - convert an emacs-lisp file to an org file
140 ** [[https://github.com/legalnonsense/elgantt/][El Gantt]] - A Gantt chart/calendar for Orgmode
141 ** [[https://org-web.org/][org-web.org]] - - org mode on the web
143 See https://github.com/DanielDe/org-web
145 ** organice - organice organizes Org files nicely!
147 [[https://github.com/200ok-ch/organice][organice]] is an implementation of Org mode without the dependency of
148 Emacs. It is built for mobile and desktop browsers and syncs with
149 Dropbox, Google Drive and WebDAV.
151 ** orgmode for Drupal
153 [[https://www.drupal.org/project/orgmode][Orgmode for drupal]] import org files into drupal nodes.
155 ** nakkaya: a static site generator parsing Org's files (and MarkDown)
157 Static is a simple static site generator written in Clojure. For a
158 sample site build using static see http://nakkaya.com
160 You can grab the latest version of nakkaya from [[https://github.com/nakkaya/static][its github repository]].
162 ** orgitdown - use Org keybindings in HTML text areas
164 [[https://github.com/gnowgi/orgitdown][orgitdown]] is based on [[http://markitup.jaysalvat.com/home/][markitup]] and allows to use Org keybindings in
165 text areas through some javascript magic. The text inserted is using
166 Org's syntax, and can be further processed with Emacs in batch mode on
169 Check [[http://mid.gmane.org/CADSSMeg5BDkZMBWEhXF2K7kssrEsX6SkZE%2BOjvXFpHY5aTcgmQ@mail.gmail.com][Nagarjuna G announcement on the mailing list]].
171 ** Exporter for the Octopress blogging engine
174 Octopress is a framework designed by Brandon Mathis for Jekyll, the blog
175 aware static site generator powering Github Pages. To start blogging with
176 Jekyll, you have to write your own HTML templates, CSS, Javascripts and set
177 up your configuration. But with Octopress All of that is already taken care
178 of. Simply clone or fork Octopress, install dependencies and the theme, and
182 You can clone Octopress from [[https://github.com/imathis/octopress][the github repository]].
184 [[https://github.com/craftkiller/orgmode-octopress][orgmode-octopress]] is an exporter for Emacs Org-Mode to Octopress by
185 craftkiller. For setup instructions, check [[http://blog.paphus.com/blog/2012/08/01/introducing-octopress-blogging-for-org-mode/][this blog entry]]. Note that
186 orgmode-octopress will not work with the new export engine in Org 8.0.
188 ** Export OmniFocus to Org-mode files
190 Jay McCarthy wrote [[https://github.com/jeapostrophe/exp/blob/master/of2org.rkt][this]], using [[http://racket-lang.org/][Racket]].
192 ** Convert from Planner to Org
194 See this message from [[http://mid.gmane.org/8ay5hehupe.fsf@faepop01.tu-graz.ac.at][Andreas Hirczy]]:
196 I have written yet another converter from planner to org:
197 <http://itp.tugraz.at/~ahi/Computer/SW/muse2org.html>
198 <http://itp.tugraz.at/~ahi/Computer/SW/muse2org>
200 ** Export vCard to org-mode entries
202 [[http://mid.gmane.org/50B28EA7.6020900@gmx.de][Simon Thum]] shared some [[https://gist.github.com/4145201][Ruby code]] to export vCards to Org-mode entries.
204 ** ews-orgmode - Exchange calendar to orgmode
206 https://github.com/kautsig/ews-orgmode
208 See [[http://mid.gmane.org/50B78A90.3040609@kautsig.org][this message]] from Chris Raschl:
210 : I recently wrote a python script to fetch my calendar from the corporate
211 : exchange server into an orgmode file to view it in my agenda.
212 : It uses the exchange webservices (ews).
214 ** michel-orgmode - script for pushing to / pulling from Google-Tasks lists
216 - Authors: Mark Edgington, Christophe-Marie Duquesne
217 - Homepage: https://bitbucket.org/edgimar/michel-orgmode
219 Michel-orgmode is a python script which serves as a bridge between an
220 org-mode textfile and a Google-tasks task list. It can pull the contents
221 of a Google-tasks list into an org-mode file, or push an org-mode file's
222 contents to a Google-tasks list. It supports bidirectional sync.
224 ** Using GData API to import events in an Org file
226 Mon, 11 Jul 2011, Felix Geller wrote:
228 : I wrote a Python [[https://bitbucket.org/fgeller/gcal2org/src/8fa7d2b83ab3/gcal2org.py][script]] that uses the GData API to download events for your
229 : Google Calendar and prints them to a given org-file. It is a very tiny
230 : script, but perhaps it is of use to other people as well.
232 : Small disclaimer: I've tested this on Mac OS X only, using Python 2.7.2.
234 The script can be found here: [[https://bitbucket.org/fgeller/gcal2org/src/8fa7d2b83ab3/gcal2org.py][gcal2org.py]]
236 ** Migrating from Tomboy to Org
238 In [[https://orgmode.org/list/4E36EF1D.7000307@stalphonsos.com][this email]], Attila shared a script to move notes from Tomboy to
239 Org-mode -- see his message:
241 : I'm moving my note-taking from GNote (C++ rewrite of Tomboy Notes) to
242 : org-mode. As I have a lot of notes all over the place, I wrote a script to
243 : convert from the XML format used by the Tomboy-style tools to org-mode.
245 You can find the script here: https://github.com/StAlphonsos/scriptologie
247 ** orgutil - TCL script to manipulate org files
249 - Author: Patrick Brennan
250 - Homepage: http://sourceforge.net/projects/orgutil/
252 : Script for converting files into and out of Org-mode, and for performing
253 : various analyses and conversions. The primary use case for this utility is
254 : to convert between Org-mode outline text and AbstractSpoon's ToDoList.
256 ** org2remind - perl script to convert org appointments to remind
258 - Author: Matt Lundin
259 - Code: [[file:../code/perl/org2remind.pl][org2remind]]
261 Remind is a command line calendar application for Unix/Linux that
262 can, among other things, spit out formatted plain text calendars and
265 http://www.roaringpenguin.com/products/remind
267 : To convert org-mode appointments to remind data, simply call the
268 : script on one or more org files:
270 : perl org2remind.pl ~/org/*.org
272 : (Optionally, add the script to your path and make it executable.)
274 : The results of this script can saved in a file...
276 : perl org2remind.pl ~/org/*.org >> org.rem
278 : ...or piped directly into a remind command...
280 : perl org2remind.pl ~/org/*.org | remind -
282 : For a nice calendar of the current month, use the following:
284 : perl org2remind.pl ~/org/*.org | remind -c -
286 : This script is similar to org2rem.el (in the contrib directory of the
287 : org-mode repository), except that, instead of saving files from within
288 : org-mode, it allows for easier and faster access to org/remind data
289 : from the command line.
291 : Currently, the script supports appointments (i.e., active timestamps)
292 : and the org-diary-class sexp.
293 ** ical2org.awk - convert ics files to Org
295 - Author: Eric S Fraga
296 - Code: [[https://github.com/msherry/ical2org/blob/master/ical2org.awk][ical2org.awk]]
298 See [[file:../org-tutorials/org-google-sync.org][the org-google-sync tutorial]] for explanations on how to use this
301 ** ical2org.rb - convert ics files to Org
303 - Code: [[https://github.com/simonthum/ical2org][ical2org]]
304 - handles events and TODOs
305 - all sorts of repeating events
307 - one-way only though
308 - except if you have a REST-capable ical server, see README
309 ** org-manage - locate and manage your org files
310 - Author: Daniel German
311 - Code: [[http://github.com/dmgerman/org-manage][org-manage]] (based on [[https://github.com/yoshinari-nomura/org-octopress][org-octopress]])
312 - Lists all org files in a given directory and its subdirectories,
313 providing a table of org files, including their title and category.
316 This is a module to help managing a large collection of org files. It
317 is based on org-octopress by Yoshinari Nomura.
319 org-manage scans a given directory (recursively) looking for org
320 files. For each, an entry is created. The title is extracted from the
321 attribute #+TITLE: in the org file. The category is extracted from the
322 first #+CATEGORY in the file (I suggest you add a default category to
326 ** vimwiki2org - convert vimwiki files to Org
328 - Homepage: https://github.com/fasheng/vimwiki2org
330 ** Org Blog Wiki tools
332 See the page [[file:../org-blog-wiki.org][Org Blogs and Wikis]].
334 ** orgFixLinks.py: a Python command-line utility for repairing broken links to local files
336 :CUSTOM_ID: fix-links
339 - Author: GitHub user cashTangoTangoCash
340 - website: https://github.com/cashTangoTangoCash/orgFixLinks
341 - repairs broken links in org files
342 - currently Linux-only, but probably straighforward to port to Win/Mac?
345 A stand-alone Python script designed to interactively repair broken
346 links to local files in one, many, or all of your org files. OK, it's
347 an amateur command line script that likely needs more refinement, and
348 it chooses to do things that not everyone desires, but you can fork it
349 on GitHub, and adapt it to your own purposes. If you are frustrated
350 by broken links to the degree that you are ready to debug a lengthy
351 Python script, why not play with it. The GitHub wiki
352 https://github.com/cashTangoTangoCash/orgFixLinks/wiki provides a
353 degree of documentation.