We want to be able to pass a URL, a document title and a selected region directly from a web browser to a running instance of Emacs.
You select a region on a web page, click a bookmarklet and a link to the web page, page title and selected region is saved in a designated Org file.
2.1. New protocols
We define a remember:// url handler in the browser and use a shell
script to handle the protocol. This script passes the information to
a running Emacs process (using
gnuclient). We use
bookmarklets to create the
remember:// urls dynamicly.
The protocol types currently recognized are:
- start `remember' with the url and title filled in
- similar to `planner-annotation-as-kill' (org?)
The urls used internally will have the following form:
remember://<the web page url>::remember::<the title>::remember::<selection>
The title will be url-hex-encoded.
2.2. The bookmarklets
2.3. The handler
#!/bin/sh # org-annotation-helper -- pass a remember-url to emacs # # Author: Geert Kloosterman <email@example.com> # Date: Sat Nov 19 22:33:18 2005 if [ -z "$1" ]; then echo "$0: Error: no arguments given!" 1>&2 exit 1 fi # To test uncomment following line #echo $1 >> /tmp/remember.out emacsclient --eval "(progn (bzg/org-annotation-helper \"$1\" ) nil)"
3.1. Install org-annotation-helper.el
Install this script and require it in your .emacs (or wherever you want to do it).
3.2. Install the remember script
3.2.1. Save the handler as a script, and make sure it is executable, i.e. remember
3.2.2. Try it:
- Make sure emacs is running and you have started its server mode using (server-start) in .emacs or M-x server-start.
Run this command from the command line:
$ remember 'remember://http%3A//orgmode.org/::remember::Org-Mode%20Homepage::remember::Notes'
- Emacs should now show a remember window with a URL to remember.org
3.3. Add two bookmarklets
- Right click on the bookmarks area of Firefox.
- Select new bookmark.
- Make sure "Load this bookmark in the sidebar is deselected
Try it. You should have now a url that starts with "remember://" and your browser will not know what do to with it.
3.4. Add the handler for the "remember://" URI
To add a protocol handler (eg: remember://) in Firefox, take the following steps:
- type in "about:config" in the location bar
- right click, select New –> String
- the name should be "network.protocol-handler.app.remember"
- the value should be the executable, eg. "org-annotation-helper".
At least under Linux this does not need to be the full path to the executable.
See http://kb.mozillazine.org/Register_protocol for more details.
In Opera add the protocol in the Preferences->Advanced->Programs dialog.
3.5. Configure a template
I personally use the following template for this mode (all as one line):
("Weblink" ?w "* %c\n :PROPERTIES:\n :CREATED: %U\n :END:\n - link: %:link\n - Quote:\n\n %?%:region\n\n - End Quote\n\n" "bookmarks.org" "WebLinks" )
- will be replaced with the hyperlink to the page, displaying the title of the page
- will be replaced with the address of the page
- will be replaced with the selected text from the browser
- will be replaced by the selected text from the web page (special characters will be in hex-code.)
- will be replaced by the current date
- the cursor will be placed here (you may also replace this
%&to make it completely non-interactive.)
By default the new remember notes are placed in the bookmarks.org file under the "Web links" section, but it can be easily overriden with C-u C-c C-c
3.6. Step 5