emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Charles Cave <charles_cave@optusnet.com.au>
To: emacs-orgmode@gnu.org
Subject: My Python solution to generating unique Ids in headlines
Date: Thu, 05 Mar 2009 10:20:13 +1100	[thread overview]
Message-ID: <200903042320.n24NKDmD007471@mail11.syd.optusnet.com.au> (raw)

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:  charles_cave@optusnet.com.au
Follow me on Twitter:  www.twitter.com/ozcaveman
-------------------------------------------

             reply	other threads:[~2009-03-04 23:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-04 23:20 Charles Cave [this message]
2009-03-04 23:59 ` My Python solution to generating unique Ids in headlines Nick Dokos
2009-03-05  2:40   ` Charles Cave
2009-03-05  9:37     ` Carsten Dominik
2009-03-06  2:13       ` Samuel Wales
2009-03-05  8:39 ` Ian Barton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200903042320.n24NKDmD007471@mail11.syd.optusnet.com.au \
    --to=charles_cave@optusnet.com.au \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).