emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] My Python solution to generating unique Ids in headlines


From: Charles Cave
Subject: [Orgmode] My Python solution to generating unique Ids in headlines
Date: Thu, 05 Mar 2009 10:20:13 +1100

Recently I asked about a method of inserting a unique number in a
headline. My requirement is to be able to uniquely identify a
particular headline when exporting data to another system
(ListPro on Palm/Windows).     

I settled on using a small Python script, since I am not
a Lisp programmer.

1.  I created a text file todononum.txt which contains
the next number to use.

2.  I created the following script to read this file, return the
next available number formatted in a unique, easy to find string,
for example [#310].

# script next_todo.py 
import sys
nextnum_file = "C:/charles/gtd/todonum.txt"

try:
   f = open(nextnum_file, 'r')
except IOError:
   print "Unable to open %s. Program terminating." % nextnum_file
   sys.exit(1)

val = int(f.readline()) + 1
f.close()

of = open(nextnum_file, 'w')
of.write("%d\n"  % val)
of.close()

print "[#%s]" % val


3. I created a one line batch file nextnum.bat (I'm on Windows!) 
containing:

python c:/charles/gtd/next_todo.py


4. In org-mode I insert the  unique id by positioning the
cursor at the end of the headline text, then entering the command

ESC-1 ESC-! nextnum RET   Ctl-D

The Ctrl D is needed to remove a carriage return (not sure why it is
there.

Can someone give me Lisp code equivalent of
the command sequene above? I know it is something to do
with (shell command .... )


The end result now looks like 

*** Post  to org-mode list about next sequential [#315]  :COMPUTER:

Once I have  Lisp code to implement the command sequence I will have
a satisfactory solution to generating the unique id when I need it.


-------------------------------------------
Charles Cave
Sydney, NSW, Australia
Email:  address@hidden
Follow me on Twitter:  www.twitter.com/ozcaveman
-------------------------------------------




reply via email to

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