emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Org-mode versus Taskpaper - now for real


From: Carsten Dominik
Subject: Re: [Orgmode] Org-mode versus Taskpaper - now for real
Date: Mon, 7 Apr 2008 17:14:56 +0200

Hmmmm no more entries. :-(

Anyway, here is my entry, just to prove that N is 8 (at least for now),
and also to show that perl can function as a write-only language.

- Carsten

#!/usr/bin/perl -p
# taskpaper-to-org converter including #+TAGS setup in 239 bytes
/^(\t*)-(.*?)((@\w+ *)*)$/;
@u=grep{$_ ne'@done'}(@t=split/ +/,$3);
@address@hidden('',@u,''):();
address@hidden;
$_="*"x(2+length$1).(@address@hidden" TODO":" DONE").$2.join(":",@v)."\n"if$&;
s/^\w.*:\s*$/* $&/;
END{printf "* Setup\n#+TAGS: %s\n",join' ',keys%t}




On Apr 4, 2008, at 11:12 AM, Carsten Dominik wrote:

Well, indeed not exactly the same, but very close.  A way to measure
the distance between two formats is using a discrete p-N metric.
The distance between two formats is said to be N if there is
perl program with less than 2^N (2 to the power N) significant
characters that will turn this test taskpaper file

/----------------------------------------------------
| Project 1:
| - Task 1 @home
| - Task 2 @work @boss
|       - Subtask 2.1 @done
|       - Subtask 2.2 @Alice
|     More text belonging to subtask 2.2
| - Task 3
| This is not a project, but text belonging to task 3
|
| Project 2:
| - Task 4
| - Task 5 @done
\----------------------------------------------------

into this equivalent Org file:

/----------------------------------------------------
| * Project 1:
| ** TODO Task 1 :@home:
| ** TODO Task 2 :@work:@boss:
| *** DONE Subtask 2.1
| *** TODO Subtask 2.2 :@Alice:
|     More text belonging to subtask 2.2
| ** TODO Task 3
| This is not a project, but text belonging to task 3
|
| * Project 2:
| ** TODO Task 4
| ** DONE Task 5
\----------------------------------------------------

Anyone wants to take up the challenge?  What N can be achieved?

Bonus points if the program also adds

/---------------------------------
| #+TAGS: @Alice @boss @work @home
\---------------------------------

somewhere, but that is not required for a valid entry.

No more than 2^N *significant* characters means that
after stripping the line invoking the perl interpreter

#+/usr/bin/perl -p

and after stripping newlines and other insignificant whitespace,
the program may have at most 2^N bytes.

In fact, any other language is also allowed - however, usually
perl makes the smallest converters and is therefore the best
measure for distance in p_N space.

- Carsten



_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode





reply via email to

[Prev in Thread] Current Thread [Next in Thread]