emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] Fireforg, a Firefox extension for Org mode interaction


From: Andreas Burtzlaff
Subject: [Orgmode] Fireforg, a Firefox extension for Org mode interaction
Date: Fri, 7 Aug 2009 06:54:32 +0200

Hello all,

I am developing a Firefox extension for interaction with org-mode that
goes by the name "Fireforg".

It shows the number of occurrences of the currently viewed url in
the agenda files as well as the associated tags in the status bar.
A left click on the status bar entry displays a popup menu, where all
associated headings are shown and a click on one of them lets emacs
visit it.

Furthermore, it alters the style of links that occur in the agenda files
when viewing a website. Their tooltip is set to contain the associated
headers.

A right click on the status bar entry lets the user choose
from predefined actions, currently org-protocol's "store-link" and
"remember".

Although the functionality mentioned above is usable, the code should
still be considered experimental, so don't expect anything and backup
your data. This is not a release but rather a call for testing and
ideas.

* Try it out
To try it out you need to have org-protocol installed as described here:
http://orgmode.org/worg/org-contrib/org-protocol.php

Download org-registry.el and org-fireforg.el from the lisp directory in the
repository: http://repo.or.cz/w/org-fireforg.git

(org-registry.el is supposed to replace the contributed package, but is
still lacking some of its functions (see section below)).
Put the two files in the load-path and initialize by evaluating:

(require 'org-registry) ;; Be sure the downloaded file is used here, not the 
one in contrib
(org-registry-insinuate)
(require 'org-fireforg)
;; When putting the following into .emacs it might fail, if 
;; org-agenda-files has not been initialized yet.
(org-registry-initialize t) 

Finally, click on the file build/fireforg.xpi in the latest tree in the
repository at: http://repo.or.cz/w/org-fireforg.git
confirm the installation of the extension and reload firefox.

(Windows users might have to adjust: org-registry-file-xml  in Emacs
and "registry-file" in Fireforgs preferences.)

* Ideas/Discussion

- Add an optional search string to external links, so that
individual text passages in a website can be referenced and highlighted
in the site itself when it is revisited.

- Show a bookmark tree in firefox that is generated from the header
structure of an org file/a set of org files by filtering those with
url's in them. Together with store-link this would completely replace
firefox's bookmark functionality.
The tree could be shown either using menu popups or better as html
rendered using org's publishing capabilities. As I have no experience
with the later, could someone write such a function?

- Weaker url matching criteria. Match all parent urls, ...

- The registry is currently only updated for files in the agenda to
prevent pollution from temporary org files, possibly containing
org-fstrees. Maybe we could extend the set with
org-agenda-text-search-extra-files? Or rather make it customizable on
its own?

- I hope no one takes offence at the rewrite of org-registry without
renaming or prior discussion. I'd like to add the missing functions, but
can't get org-registry-show to work in Bastien's original version.

- Is the use of the org logo ok for the purpose of the extension?

- The logo and name are also subject to discussion. I'm still wondering
what crossbreeding a firefox and a green unicorn would yield...

* How it works
The rewritten org-registry generates an xml file (customizable through
org-registry-file-xml) that is read and searched by the extension.
An org-protocol subprotocol is used to let emacs visit an occurence.

I also have almost finished code that uses a temporary file to pass
response data from emacs to the extension. Kind of Emacs as a database
server... (probably existed though).

Hope you enjoy it,

Andreas




reply via email to

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