From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joost Kremers Subject: Re: Programmatically handling org files Date: Mon, 12 Sep 2016 23:59:05 +0200 Message-ID: <87poo8dbkm.fsf@fastmail.fm> References: <87twdlcpg8.fsf@fastmail.fm> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33892) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjZG5-0006As-Nn for emacs-orgmode@gnu.org; Mon, 12 Sep 2016 17:59:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bjZG2-0006R7-J3 for emacs-orgmode@gnu.org; Mon, 12 Sep 2016 17:59:21 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:46515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjZG0-0006OI-9t for emacs-orgmode@gnu.org; Mon, 12 Sep 2016 17:59:18 -0400 In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: John Kitchin Cc: org mode On Mon, Sep 12 2016, John Kitchin wrote: >> 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. As you've already realised, I was asking about Elisp code that's not part of or intended to extend orgmode. >> 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. Great, thanks! I looked at the source of `org-store-link', but this wasn't obvious to me. :-/ -- Joost Kremers Life has its moments