[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Extract source code /with/ captions
From: |
James Harkins |
Subject: |
Re: [O] Extract source code /with/ captions |
Date: |
Sat, 18 Jan 2014 02:20:27 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Nick Dokos <ndokos <at> gmail.com> writes:
> Try:
>
> --8<---------------cut here---------------start------------->8---
> (defun hjh-print-src-blocks ()
> "Iterate src blocks from org-element and print them to *Messages*."
> (interactive)
> (let ((tree (org-element-parse-buffer)))
> (org-element-map tree 'src-block
> (lambda (element)
> (message "\n\n\nELEMENT:")
> (print (substring-no-properties (plist-get (car (cdr element))
:caption)))))))
> --8<---------------cut here---------------end--------------->8---
Finally coming back to this.
It seems that the actual string-with-properties may be nested at different
levels within the :caption object. I tried Nick's version with a different
test file, and it failed with a wrong type error.
The "while" below seems to work, though I suppose it could throw an error
under some circumstances.
Is there an easier way to locate the real stringy-thingy in the middle of
the structure, when you can't predict exactly what the structure will be?
(defun hjh-print-src-blocks ()
"Iterate src blocks from org-element and print them to *Messages*."
(interactive)
(let ((tree (org-element-parse-buffer)))
(org-element-map tree 'src-block
(lambda (element)
(setq element (car (cdr element)))
(let ((caption (plist-get element :caption)))
(while (and caption (not (stringp caption)))
(setq caption (car caption)))
(message "\n\n\nCAPTION:")
(print (substring-no-properties caption)))))))
hjh
Re: [O] Extract source code /with/ captions, Charles Berry, 2014/01/12