From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Clemente Subject: Function to get the title of a heading Date: Tue, 06 Jan 2009 19:53:20 +0100 Message-ID: <871vvgs1un.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LKH3L-0005SX-4K for emacs-orgmode@gnu.org; Tue, 06 Jan 2009 13:53:23 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LKH3K-0005SK-K8 for emacs-orgmode@gnu.org; Tue, 06 Jan 2009 13:53:22 -0500 Received: from [199.232.76.173] (port=51548 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LKH3K-0005SH-H6 for emacs-orgmode@gnu.org; Tue, 06 Jan 2009 13:53:22 -0500 Received: from mail-ew0-f13.google.com ([209.85.219.13]:33020) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LKH3K-0004wy-1o for emacs-orgmode@gnu.org; Tue, 06 Jan 2009 13:53:22 -0500 Received: by ewy6 with SMTP id 6so8919328ewy.18 for ; Tue, 06 Jan 2009 10:53:20 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode list Hi, I want to get the title of some entry in Elisp. That is, from this heading: *** TODO Do something! I want the "Do something!". I know no function to do this; although there is probably one. What I found is: - (org-entry-properties) returns the TODO keyword, the tags, and the category, but not the title. - (org-get-entry) has no useful documentation but it seems to return the content, not the heading. - (org-get-header HEADER) does something else related to mail; it seems to be unused and not much documented. - (org-get-heading t) seems to return the full line (even with keyword), but with properties: #("TODO Do something!" 0 4 (org-category "test1" fontified t face org-todo) 4 18 (org-category "test1" fontified t face org-level-3)) Based on this, I did a function to remove the TODO keyword and the properties. (defun org-get-heading-title () "Returns the heading of the current entry as a string, without the leading stars, the TODO keyword or the tags." (let ( (title-with-props (org-get-heading t)) (keyword (org-get-todo-state)) ) (substring-no-properties title-with-props (if keyword (1+ (length keyword)))) ) ) Suggestions: - This could also be implemented as a parameter to (org-get-heading). - Or the title returned in (org-entry-properties) - And (org-get-header HEADER) could be removed. - In any case, such a function can be included in Org-mode so that it is easy to find. Thanks, Daniel