[Top][All Lists]

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

Re: [O] Programmatically handling org files

From: John Kitchin
Subject: Re: [O] Programmatically handling org files
Date: Mon, 12 Sep 2016 09:47:27 -0400
User-agent: mu4e 0.9.16; emacs

Joost Kremers writes:

> Hi all,
> I was wondering if there is some sort of (semi)official API for handling
> org files programmatically. That's to say, is there a documented way for
> non-org Emacs packages to manipulate (the contents of) org files?

None that I know of. A non-elisp lib would have to be able to parse the
org-files. The grammar of org-files is documented here:

There are libs that can parse org-mode, e.g.
http://orgmode.org/worg/org-tools/, some of them may also be able modify
the files. The elisp org libraries are light years ahead of them though
for what you describe.

> Specifically, I'm wondering about creating and deleting entries (by
> entries I mean headers with their contents), changing TODO state, moving
> entries, that sort of thing.
> Also, I was wondering if there's a way to hook into org-store-link. For
> a particular major mode, I would like to be able to define what kind of
> link is created when the user calls `org-store-link`. I looked at the
> source of `org-store-link` and it looks like the answer is no, but I
> thought I'd ask anyway. I could of course create the link myself and add
> it to `org-stored-links` but that feels rather hackish and I suspect
> will blow up in my face at some point in the future.

You want to add a function to org-store-link-functions. The function
should check if it is responsible for creating this link (for example by
looking at the major mode). If not, it must exit and return nil. If yes,
it should return a non-nil value after a calling `org-store-link-props'
with a list of properties and values.


Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213

reply via email to

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