[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] creating new #+KEYWORD: variables
From: |
Nicolas Goaziou |
Subject: |
Re: [O] creating new #+KEYWORD: variables |
Date: |
Sat, 10 Nov 2018 19:58:41 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hello,
John Kitchin <address@hidden> writes:
> You can retrieve keywords in the org-file like this:
>
> (defun get-keyword (key)
> (org-element-map (org-element-parse-buffer) 'keyword
> (lambda (k)
> (when (string= key (org-element-property :key k))
> (org-element-property :value k)))
> nil t))
As a minor addendum,
(org-element-parse-buffer 'element)
is more efficient in this case.
An even more efficient way to retrieve keywords, assuming buffer is not
already parsed, would be:
(org-with-point-at 1
(let ((case-fold-search t)
(regexp (format "^[ \t]*#\\+%s:" key))
(result nil))
(while (re-search-forward regexp nil t)
(let ((element (org-element-at-point)))
(when (eq 'keyword (org-element-type element))
(push (org-element-property :value element) result))))
result))
Regards,
--
Nicolas Goaziou
Re: [O] creating new #+KEYWORD: variables, Diego Zamboni, 2018/11/12