emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] generating org headings from a source block


From: Matt Price
Subject: Re: [O] generating org headings from a source block
Date: Tue, 10 Nov 2015 09:28:53 -0500



On Mon, Nov 9, 2015 at 4:57 PM, Nick Dokos <address@hidden> wrote:
Matt Price <address@hidden> writes:

> I would like to be able to insert into an org-buffer the text extracted from a pdf file. PDF-Tools (
> https://github.com/politza/pdf-tools/) provides some excellent tools for doing this.  I've written
> (well, msotly stolen) a defun that finds all my highlights and returns them in the form of an org
> heading:
>
> (defun pdf-annot-export-as-org-heading (pdfpath)
>   ...)
> -------------
>
> I'm sure it is very clumsy, but it sort of works.  I would like to be able to call this function from a
> source block:
>
> #+BEGIN_SRC elisp
> (pdf-annot-export-as-org-heading "/home/matt/HackingHistory/readings/latour-pandoras-hope.pdf")
> (pdf-annot-export-as-org-heading "/home/matt/HackingHistory/readings/historical-authority-hampton.pdf")
> #+END_SRC
>
> The results are close to, but not precisely, what I want:
>
> #+RESULTS:
> #+begin_example
> ** historical-authority-hampton
>
>  ([[file:///home/matt/HackingHistory/readings/historical-authority-hampton.pdf]
> [historical-authority-hampton]], 1)
>
> In the Tudor palace at Hampton Court, there is a....
> ...
> #+end_example
>
> (a) I only get the last command, because I guess :results value only reports the final returned value.
> But :results output gets me nothing.  What should I be doing?

Have two source blocks? Or use :results output and output the string with (princ string)?

I ended up with this.  It's not so bad, Though I use it enough that I should probably just define another function. Also, I'm interested in how 2 source blocks would have worked...

#+BEGIN_SRC elisp :results output raw
  (let ((sources '(
                   "/home/matt/HackingHistory/readings/Troper-becoming-immigrant-city.pdf"  "/home/matt/HackingHistory/readings/historical-authority-hampton.pdf"))
        (output ""))
    (dolist (thispdf sources)
      (message "this pdf is: %s" thispdf)
      (setq output (concat output (pdf-annot-markups-as-org-text thispdf ))))
    (princ output))
#+END_SRC
 

> (b) the whole output is wrapped in an example block, which I don't want.  Can I do something to fix
> this?

Maybe :results value raw  or :results value verbatim - untested. I can
never remember the right combo off the top of my head.

:results value raw works -- thank you!

> also, (c): I'd rather set the level of the org heading based on context. Can I do that when I call from
> a source block? Should I maybe be doing this some other way (e.g., jsut write an interactive function
> and call it with M-x? But I like being able to assemble all the readings at one go, if possible. 
>

Pass the level as a parameter?

Can I pass the level of the current heading as a parameter, e.g.:
 #+BEGIN_SRC elisp :results output raw :var level=(1+ CURRENT-ORG-LEVEL)

where obviously CURRENT-ORG-LEVEL is some function I don't know how to access?

Many thanks for your help, Nick!

--
Nick






reply via email to

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