Add org-js
[worg.git] / org-tools / index.org
1 #+TITLE:      Org Mode tools!
2 #+AUTHOR:     Worg people
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)
7 #+LANGUAGE:   en
8 #+PRIORITIES: A C B
9 #+CATEGORY:   worg
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
11
12 This page lists external tools useful for handling Org files.
13
14 * Org-mode parsers
15
16 ** Orgile - a PHP Org parser
17
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]].
19
20 ** [[https://bitbucket.org/joebo/pico-org/src][pico-org]] - A PicoLisp parser
21
22 [[http://thread.gmane.org/gmane.lisp.picolisp.general/3679][Message]] from the developer Joe Bogner:
23
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.
28
29 ** [[http://common-lisp.net/project/cl-org-mode/][cl-org-mode]] - A Common lisp parser for org-mode outlines
30
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
34 org-mode
35
36 ** orgnode.py - python library for parsing Org files
37
38 - Author: Charles Cave
39 - Homepage: http://members.optusnet.com.au/~charles57/GTD/orgnode.html
40
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.
43
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.
46
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
51
52 - Author: Jonathan Bisson (on gmail : bissonjonathan)
53 - Homepage: https://github.com/bjonnh/PyOrgMode
54
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.
58
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.
61
62 : Current objects are : 
63 : - Schedule elements
64 : - Drawers
65 : - Tables
66 : - Nodes
67
68 : The project is contained in an unique tangle org-file which contains the
69 : documentation, the python files and the test suite.
70
71 ** NEO - No Emacs Org in Python
72
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
76
77 : Another Python tool for parsing org mode files
78
79 : Current features 
80 : ~~~~~~~~~~~~~~~~~
81 :   - Org file parser
82 :   - Agenda builder
83 :   - Todo-list builder
84 :   - Custom todo keywords
85 :   - Command line interface for agenda and todo-lists
86
87 ** Org::Parser - Perl module for parsing Org files
88
89 - Author: Steven Haryanto
90 - Homepage: http://search.cpan.org/dist/Org-Parser
91
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).
95
96 ** [[https://github.com/bdewey/org-ruby][org-ruby (used on github)]] by Brian Dewey
97
98 #+begin_quote
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
101 or textile.
102 #+end_quote
103
104 Read [[http://orgmode.org/worg/org-tutorials/org-ruby.html][the org-ruby tutorial for details.]]
105
106 ** [[https://github.com/mooz/org-js][org-js]] by Masafumi Oyamada
107
108 org-js is a javascript parser and converter for org-mode
109 (http://orgmode.org/) notation.
110
111 For a working example of an interactive editor, see
112 http://mooz.github.com/org-js/editor/.
113
114 * Specific purpose tools
115
116 ** nakkaya: a static site generator parsing Org's files (and MarkDown)
117
118 Static is a simple static site generator written in Clojure.  For a sample
119 site build using static see http://nakkaya.com
120
121 You can grab the latest version of nakkaya from [[https://github.com/nakkaya/static][its github repository]].
122
123 ** orgitdown - use Org keybindings in HTML text areas
124
125 [[https://github.com/gnowgi/orgitdown][orgitdown]] is based on [[http://markitup.jaysalvat.com/home/][markitup]] and allows to use Org keybindings in text
126 areas through some javascript magic.  The text inserted is using Org's
127 syntax, and can be further processed with Emacs in batch mode on the
128 server.
129
130 Check [[http://mid.gmane.org/CADSSMeg5BDkZMBWEhXF2K7kssrEsX6SkZE%2BOjvXFpHY5aTcgmQ@mail.gmail.com][Nagarjuna G announcement on the mailing list]].
131
132 ** Exporter for the Octopress blogging engine
133
134 #+BEGIN_QUOTE
135 Octopress is a framework designed by Brandon Mathis for Jekyll, the blog
136 aware static site generator powering Github Pages. To start blogging with
137 Jekyll, you have to write your own HTML templates, CSS, Javascripts and set
138 up your configuration. But with Octopress All of that is already taken care
139 of. Simply clone or fork Octopress, install dependencies and the theme, and
140 you’re set.
141 #+END_QUOTE
142
143 You can clone Octopress from [[https://github.com/imathis/octopress][the github repository]].
144
145 [[https://github.com/craftkiller/orgmode-octopress][orgmode-octopress]] is an exporter for Emacs Org-Mode to Octopress by
146 craftkiller.  For setup instructions, check [[http://blog.paphus.com/blog/2012/08/01/introducing-octopress-blogging-for-org-mode/][this blog entry]].  Note that
147 orgmode-octopress will not work with the new export engine in Org 8.0.
148
149 ** Export OmniFocus to Org-mode files
150
151 Jay McCarthy wrote [[https://github.com/jeapostrophe/exp/blob/master/of2org.rkt][this]], using [[http://racket-lang.org/][Racket]].
152
153 ** Convert from Planner to Org
154
155 See this message from [[http://mid.gmane.org/8ay5hehupe.fsf@faepop01.tu-graz.ac.at][Andreas Hirczy]]:
156
157 I have written yet another converter from planner to org:
158 <http://itp.tugraz.at/~ahi/Computer/SW/muse2org.html>
159 <http://itp.tugraz.at/~ahi/Computer/SW/muse2org>
160
161 ** Export vCard to org-mode entries
162
163 [[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.
164
165 ** ews-orgmode - Exchange calendar to orgmode
166
167 https://github.com/kautsig/ews-orgmode
168
169 See [[http://mid.gmane.org/50B78A90.3040609@kautsig.org][this message]] from Chris Raschl:
170
171 : I recently wrote a python script to fetch my calendar from the corporate
172 : exchange server into an orgmode file to view it in my agenda.
173 : It uses the exchange webservices (ews).
174
175 ** michel-orgmode - script for pushing to / pulling from Google-Tasks lists
176
177 - Authors: Mark Edgington, Christophe-Marie Duquesne
178 - Homepage: https://bitbucket.org/edgimar/michel-orgmode
179
180 Michel-orgmode is a python script which serves as a bridge between an
181 org-mode textfile and a Google-tasks task list.  It can pull the contents
182 of a Google-tasks list into an org-mode file, or push an org-mode file's
183 contents to a Google-tasks list.  It supports bidirectional sync.
184
185 ** Using GData API to import events in an Org file
186
187 Mon, 11 Jul 2011, Felix Geller wrote:
188
189 : I wrote a Python [[https://bitbucket.org/fgeller/gcal2org/src/8fa7d2b83ab3/gcal2org.py][script]] that uses the GData API to download events for your
190 : Google Calendar and prints them to a given org-file. It is a very tiny
191 : script, but perhaps it is of use to other people as well.
192 :
193 : Small disclaimer: I've tested this on Mac OS X only, using Python 2.7.2.
194
195 The script can be found here: [[https://bitbucket.org/fgeller/gcal2org/src/8fa7d2b83ab3/gcal2org.py][gcal2org.py]]
196
197 ** Migrating from Tomboy to Org
198
199 In [[http://article.gmane.org/gmane.emacs.orgmode/45239][this email]], Attila shared a script to move notes from Tomboy to
200 Org-mode -- see his message:
201
202 : I'm moving my note-taking from GNote (C++ rewrite of Tomboy Notes) to
203 : org-mode.  As I have a lot of notes all over the place, I wrote a script to
204 : convert from the XML format used by the Tomboy-style tools to org-mode.
205
206 You can find the script here: https://github.com/StAlphonsos/scriptologie
207
208 ** orgutil - TCL script to manipulate org files
209
210 - Author: Patrick Brennan
211 - Homepage: http://sourceforge.net/projects/orgutil/
212
213 : Script for converting files into and out of Org-mode, and for performing
214 : various analyses and conversions. The primary use case for this utility is
215 : to convert between Org-mode outline text and AbstractSpoon's ToDoList.
216
217 ** ical2org.awk - convert ics files to Org
218
219 - Author: Eric S Fraga
220 - Code: [[file:../code/awk/ical2org.awk][ical2org.awk]]
221
222 See [[file:../org-tutorials/org-google-sync.org][the org-google-sync tutorial]] for explanations on how to use this
223 script.
224
225 ** ical2org.rb - convert ics files to Org
226    - Author: Simon Thum
227    - Code: [[https://github.com/simonthum/ical2org][ical2org]]
228    - handles events and TODOs
229    - all sorts of repeating events
230    - and timezones!
231    - one-way only though
232      - except if you have a REST-capable ical server, see README
233 ** org2remind - perl script to convert org appointments to remind
234
235  - Author: Matt Lundin
236  - Code: [[file:../code/perl/org2remind.pl][org2remind]]
237
238 Remind is a command line calendar application for Unix/Linux that
239 can, among other things, spit out formatted plain text calendars and
240 agendas.
241
242 http://www.roaringpenguin.com/products/remind
243
244 : To convert org-mode appointments to remind data, simply call the
245 : script on one or more org files:
246
247 : perl org2remind.pl ~/org/*.org
248
249 : (Optionally, add the script to your path and make it executable.)
250
251 : The results of this script can saved in a file...
252
253 : perl org2remind.pl ~/org/*.org >> org.rem 
254
255 : ...or piped directly into a remind command...
256
257 : perl org2remind.pl ~/org/*.org | remind -
258
259 : For a nice calendar of the current month, use the following: 
260
261 : perl org2remind.pl ~/org/*.org | remind -c -
262
263 : This script is similar to org2rem.el (in the contrib directory of the
264 : org-mode repository), except that, instead of saving files from within
265 : org-mode, it allows for easier and faster access to org/remind data
266 : from the command line.
267
268 : Currently, the script supports appointments (i.e., active timestamps)
269 : and the org-diary-class sexp.
270
271 ** org-manage - locate and manage your org files
272     - Author: Daniel German
273     - Code:   [[http://github.com/dmgerman/org-manage][org-manage]] (based on [[https://github.com/yoshinari-nomura/org-octopress][org-octopress]])
274     - Lists all org files in a given directory and its subdirectories,
275       providing a table of org files, including their title and category.
276
277 #+begin_quote
278 This is a module to help managing a large collection of org files. It
279 is based on org-octopress by Yoshinari Nomura.
280
281 org-manage scans a given directory (recursively) looking for org
282 files. For each, an entry is created. The title is extracted from the
283 attribute #+TITLE: in the org file. The category is extracted from the
284 first #+CATEGORY in the file (I suggest you add a default category to
285 each file.
286 #+end_quote
287
288 ** vimwiki2org - convert vimwiki files to Org
289    - Author: Xu FaSheng
290    - Homepage: https://github.com/fasheng/vimwiki2org
291
292 ** Org Blog Wiki tools
293
294 See the page [[file:../org-blog-wiki.org][Org Blogs and Wikis]].
295