One nice org-mode feature is "Babel", the ability to embed snippets of code in documents, run them during export and insert the results (either values or stdout) into other parts of the document http://orgmode.org/worg/org-contrib/babel/
Since my blog is mostly about programming, this lets me write the code I'm talking about directly into the prose (using C-c ' to switch to the relevant Emacs mode for editing that language) and ensures that the code and results match up exactly (including graphs generated with GNUplot).
So I am trying to restart a blog using org-mode. I think it is the way forward. Right now, I meaning using it as one subset, a markup language to convert into other representations. I know org-mode is more featureful than that by a long shot. I am just curious for this use case for the reason below.
Having said that,I am more interested in why, despite the Church of Emacs and Its Holy Love of Parens (that is a joke from an admirer, btw), why pure sexpr is not the way forward for a markup language. I decided to look into them recently, including cl-who, Scribble (CL, Scheme, and now most popular Racket variants), and other sexpr markup languages. I did so thinking that, if you want to have a ground-up markup language to convert to anything, would not sexpr-based data be the best for the iconicity Lispers crave. Is it not that far removed from XML+XLST for this very reason.
Does anyone have full-bodied markup that uses sexpr as a source and translates to everything? I think this would be quite compelling, well maybe only to Lispers. Would there be a desire for such a thing?
The difference here is that we're not talking about describing data, like XML does (most of the time), where sexpr-based markup is pretty great. For actual markup, SGML wasn't all that bad (closing tags are useful if the start of the current section is a few screenfuls away), or the more "do what I mean" approach as commonly used by markdown, asciidoc, rst or org-mode. And while Emacs might be "in love" with lisp, it's also all about dwim.
But what are we describing then. I like to see org, HTML, asciidoc, and XML as taking any data, in a very moronic basic sense, and annotating it or reshaping it for different kinds of parsers to accept.
Isn't that a bit ad absurdum? Sure, in a sense this comment, the works of Shakespeare, the contents of this web page and the last 24 hours of stock trading exported as CSV are all just data/information. Go one step further and you could say that we might as well abolish English and instead write the content itself in some sexpr-structured Lojban.
But we don't operate in pure data structures, AST's, etc, so there has to be some kind of abstraction. Sexpr are one approach, but even die-hard lisp-heads usually don't contend that it's the only one. The aforementioned scribble isn't sexpr-based, either. Most markup languages these days really try to avoid spurious line noise for something as simple as paragraphs.
The working elements of your average program are much more complicated and varied than those of your average marked up document, and quite often much easier to heuristically derive -- significant line-ends being one prime example. Quite rarely is there a need for deep hierarchies, for example.
HTML these days isn't just about formating content, so there's a much higher signal/noise ratio, where something like sexpr markup could improve upon spurious end tags, attributes etc.
And this is even more true for most XML data.
So I'd see a use case for these kinds of complicated and generic scenarios. But for simple annotated content, outlines and the occasional date? Do you really want to write tables as nested s-expressions instead of just working automagically with a neat ascii-art representation?
Javascripters are beginning to rediscover some of these ideas in React.js.
I'm still waiting for them to rediscover continuations again. They have the "Callbacks aren't great" part down, but they still haven't pieced together the "Let's use continuations instead" part quite yet. Give it a year or two :)
Some Javascript developers would love to have support for first class continuations, but the Javascript engines would need to implement several changes to make them practical.
Is there a tutorial for using org-mode only for a simple TODO list that anyone can recommend? I had a brief look around, but don't have the time to read the entire manual at the moment.
As an indirect response to the OPs question the next step after that good intro tutorial is something like this, which is a medium level application of org mode once you get the basics down, in a well known format: (Edited to emphasize if you know the basics of GTD, and its not terribly complicated, this is a good example of applying org mode tools to a known problem, presumably this will help you in applying org mode to your individual problem, assuming its not just setting up GTD of course)
I actually used this, or many ideas strongly borrowed from this, for some time until I was kind of forced into evernote in order to inter operate both mobile and with some evernote users (OK specifically the other user is my wife). It turned out to be easier to implement something like GTD in evernote than to teach my (techie, pbx programmer) wife how to use emacs. But emacs org mode did work perfectly and was quite effective and fast while I used it.
The mobile client for evernote a couple years ago was far superior to the mobile org mode client. As of years ago. This may have changed. The big problem from memory with the mobile clients is the mobile app model is inherently windows-ish where all the worlds features are in one self contained app, so you gotta make a good gui and a good sync in one app, where as the unix-ish philosophy of using a suite of tools perfectly designed for individual jobs is not permitted in mobile, so its a hard fit. Although the evernote guys got it to work pretty well, so its obviously possible.
slightly irrelevant, but since you mentioned GTD I'd like to add that there is quite a nice open source project for that workflow. It's called Getting Things Gnome [0] (there is also a version for windows, mind you)
That might be a good idea for people who are not living in emacs. The only thing I dislike about it is the fact that it stores your tasks in a single xml-files.
For a simple TODO list just open a .org file (so org-mode is actually enabled). Make a new TODO item by pressing ctrl-shift-return. Clock in with C-c C-x C-i, mark it finished with C-c C-t d. That should be all you need to get started, and when you want to do something else scour the cheat sheet to see if it's there.
Since my blog is mostly about programming, this lets me write the code I'm talking about directly into the prose (using C-c ' to switch to the relevant Emacs mode for editing that language) and ensures that the code and results match up exactly (including graphs generated with GNUplot).