emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Okular Metadata to Org
@ 2010-11-20  0:51 Ross Glover
  2010-11-22  9:13 ` Rainer M Krug
  0 siblings, 1 reply; 3+ messages in thread
From: Ross Glover @ 2010-11-20  0:51 UTC (permalink / raw)
  To: emacs-orgmode

Hi All,

My first post to the list.  I've been working on this python script to
extract Okular metadata and insert it into an org-mode file.  I like
using Okular to read and take notes, but accessing those notes is a
total pain.  This script takes care of that problem.

You can get the code  here: 
    git clone git://lair.fifthhorseman.net/~rossg/okutorg.git

What the script does is read the xml and creates a .org file with this
structure:

* [[/home/USER/articles/feminism/aronson-Feminism_or_Post-feminism.pdf]]
** [[bibnotes:1 /home/USER/articles/feminism/aronson-Feminism_or_Post-feminism.pdf][Young women no longer]]
Young women no longer concern themselves with discrimination.

By adding the following lisp to my .emacs files, each 'bibnotes' link
type will open the file to the page on which the note was taken.
Unfortunately, Okular has no switch for opening on a specified
annotation, but the page is not a bad result.

{{{
;; Open okular from org bibnotes to correct page.
(org-add-link-type "bibnotes" 'org-follow-bibnotes-link)
(defun org-follow-bibnotes-link (link)
  "Follow links of the type 'pagenumber path/to/file"
  (when (string-match "\\([0-9]+\\)\\([[:blank:]]+\\)\\(\/.*\.pdf\\)" link)
       (start-process "okular" nil "okular" "-p"
                      (match-string 1 link)
                      (match-string 3 link))))
}}}


The overall code is not great, as I am not a great coder by any
stretch.  Nor is the script feature rich, currently it just does a
recursive dump of all the okular metadata files that have
annotations.  It does check the .org file for duplicate entries, but in
a rudamentary fashion.

I wanted to integrate this with pymacs or do the import with
lisp, but both of those things are beyond me at the moment.

Any thoughts are welcome.  You're welcome to flame me about feminism,
but please not about the code (I know it's weak).  This is the first
thing I've ever made public.  Help don't hate ;) .

Hopefully someone else will find this useful,

Ross

-- 


Sent from an Emacs buffer.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Okular Metadata to Org
  2010-11-20  0:51 Okular Metadata to Org Ross Glover
@ 2010-11-22  9:13 ` Rainer M Krug
  2010-11-22 12:53   ` Ross Glover
  0 siblings, 1 reply; 3+ messages in thread
From: Rainer M Krug @ 2010-11-22  9:13 UTC (permalink / raw)
  To: Ross Glover; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/20/2010 01:51 AM, Ross Glover wrote:
> Hi All,
> 
> My first post to the list.  I've been working on this python script to
> extract Okular metadata and insert it into an org-mode file.  I like
> using Okular to read and take notes, but accessing those notes is a
> total pain.  This script takes care of that problem.
> 
> You can get the code  here: 
>     git clone git://lair.fifthhorseman.net/~rossg/okutorg.git
> 
> What the script does is read the xml and creates a .org file with this
> structure:
> 
> * [[/home/USER/articles/feminism/aronson-Feminism_or_Post-feminism.pdf]]
> ** [[bibnotes:1 /home/USER/articles/feminism/aronson-Feminism_or_Post-feminism.pdf][Young women no longer]]
> Young women no longer concern themselves with discrimination.
> 
> By adding the following lisp to my .emacs files, each 'bibnotes' link
> type will open the file to the page on which the note was taken.
> Unfortunately, Okular has no switch for opening on a specified
> annotation, but the page is not a bad result.
> 
> {{{
> ;; Open okular from org bibnotes to correct page.
> (org-add-link-type "bibnotes" 'org-follow-bibnotes-link)
> (defun org-follow-bibnotes-link (link)
>   "Follow links of the type 'pagenumber path/to/file"
>   (when (string-match "\\([0-9]+\\)\\([[:blank:]]+\\)\\(\/.*\.pdf\\)" link)
>        (start-process "okular" nil "okular" "-p"
>                       (match-string 1 link)
>                       (match-string 3 link))))
> }}}
> 
> 
> The overall code is not great, as I am not a great coder by any
> stretch.  Nor is the script feature rich, currently it just does a
> recursive dump of all the okular metadata files that have
> annotations.  It does check the .org file for duplicate entries, but in
> a rudamentary fashion.
> 
> I wanted to integrate this with pymacs or do the import with
> lisp, but both of those things are beyond me at the moment.
> 
> Any thoughts are welcome.  You're welcome to flame me about feminism,
> but please not about the code (I know it's weak).  This is the first
> thing I've ever made public.  Help don't hate ;) .

I like it - it looks really nice. I liked okular as well, but reluctant
to use as the comments and notes were for me locked into okular, which I
did not like. So with this script, I can at least extract them to be
readable from org.

1) Are you planning to also include the edits (new text, ...) into the
org file, as it would be useful to have all those in it.

2) Would it be possible to re-use an existing okular instance? it is a
little bit annoying to have several instances open, when browsing
through notes.

As I said, I like the script, and I am thinking about running this as a
batch job each time I start emacs.

Now we just need the opposite: click in a pdf at a certain location and
org opens with the link to there to add the note - am I dreaming here?

Cheers,

Rainer

> 
> Hopefully someone else will find this useful,
> 
> Ross
> 


- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa

Tel:        +33 - (0)9 53 10 27 44
Cell:       +27 - (0)8 39 47 90 42
Fax (SA):   +27 - (0)8 65 16 27 82
Fax (D) :   +49 - (0)3 21 21 25 22 44
Fax (FR):   +33 - (0)9 58 10 27 44
email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzqNDUACgkQoYgNqgF2egp9MwCfYracbYeqLz75q20SzrPY3MOv
wEQAn3Z5GIpyVhOBbAQz8ISJI4E4udGW
=/1s/
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Okular Metadata to Org
  2010-11-22  9:13 ` Rainer M Krug
@ 2010-11-22 12:53   ` Ross Glover
  0 siblings, 0 replies; 3+ messages in thread
From: Ross Glover @ 2010-11-22 12:53 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 2835 bytes --]


On Mon, 22 Nov 2010 10:13:25 +0100, Rainer M Krug <r.m.krug@gmail.com> wrote:

Hi Rainer,

Thanks for your feedback.  Your thoughts are quite helpful and give me
some ideas and motivation.

> 
> 1) Are you planning to also include the edits (new text, ...) into the
> org file, as it would be useful to have all those in it.

Yes, I've been working on this.  The difficulty I currently face is
getting the correct regex.  Because all of the data below the header is
a single string, my approach is to pull the string after the file
heading and then compare the okular string with the org-mode string.
Unfortunately, I've not yet figured out the correct regular expression.

> 
> 2) Would it be possible to re-use an existing okular instance? it is a
> little bit annoying to have several instances open, when browsing
> through notes.

This is an interesting question.  At the moment, I'm not sure that this
is possible.  Since okular doesn't run as a daemon, there's no way (that
I know of) to communicate with a given instance, but I agree it would be
nice.  I'll look into how okular manages opening files within an
instance and see if I can figure out a way.  

> 
> As I said, I like the script, and I am thinking about running this as a
> batch job each time I start emacs.

Sweet!  I'm glad you find it useful.
> 
> Now we just need the opposite: click in a pdf at a certain location and
> org opens with the link to there to add the note - am I dreaming here?
> 

Now that's bold.  I've been looking at this
http://orgmode.org/worg/org-contrib/org-protocol.php wondering if
there's a way to get more interaction.  By looking at, I mean I just
noticed it last week, I don't know how possible it is, but you're right,
such a thing would be a great interface.  Rule nothing out!

> Cheers,
> 
> Rainer
> 
> > 
> > Hopefully someone else will find this useful,
> > 
> > Ross
> > 
> 
> 
> - -- 
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
> Biology, UCT), Dipl. Phys. (Germany)
> 
> Centre of Excellence for Invasion Biology
> Natural Sciences Building
> Office Suite 2039
> Stellenbosch University
> Main Campus, Merriman Avenue
> Stellenbosch
> South Africa
> 
> Tel:        +33 - (0)9 53 10 27 44
> Cell:       +27 - (0)8 39 47 90 42
> Fax (SA):   +27 - (0)8 65 16 27 82
> Fax (D) :   +49 - (0)3 21 21 25 22 44
> Fax (FR):   +33 - (0)9 58 10 27 44
> email:      Rainer@krugs.de
> 
> Skype:      RMkrug
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAkzqNDUACgkQoYgNqgF2egp9MwCfYracbYeqLz75q20SzrPY3MOv
> wEQAn3Z5GIpyVhOBbAQz8ISJI4E4udGW
> =/1s/
> -----END PGP SIGNATURE-----

-- 


Sent from an Emacs buffer.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 489 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-22 12:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-20  0:51 Okular Metadata to Org Ross Glover
2010-11-22  9:13 ` Rainer M Krug
2010-11-22 12:53   ` Ross Glover

Code repositories for project(s) associated with this 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).