emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Matt Price <moptop99@gmail.com>
Cc: Org Mode <emacs-orgmode@gnu.org>
Subject: Re: generating org headings from a source block
Date: Tue, 10 Nov 2015 09:28:53 -0500	[thread overview]
Message-ID: <CAN_Dec_y9Xk=FFOcRBMVCBEmQdg5-JATmF6BfBAwPehicSO7nA@mail.gmail.com> (raw)
In-Reply-To: <87wptqg7k5.fsf@alphaville.usersys.redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3073 bytes --]

On Mon, Nov 9, 2015 at 4:57 PM, Nick Dokos <ndokos@gmail.com> wrote:

> Matt Price <moptop99@gmail.com> 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
>
>
>
>
>

[-- Attachment #2: Type: text/html, Size: 4590 bytes --]

  reply	other threads:[~2015-11-10 14:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-09 20:29 generating org headings from a source block Matt Price
2015-11-09 21:57 ` Nick Dokos
2015-11-10 14:28   ` Matt Price [this message]
2015-11-10 16:16     ` Nick Dokos
2015-11-10 16:31       ` Matt Price

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAN_Dec_y9Xk=FFOcRBMVCBEmQdg5-JATmF6BfBAwPehicSO7nA@mail.gmail.com' \
    --to=moptop99@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).