In a thread on the ongoing update of the Worg org-protocol page,
Charles Choi <kickingve...@gmail.com> wrote:
> - A historical account of Org protocol is needed.
>   - As I was not an Org user at the time of Org protocol’s inception,
> I do not consider myself qualified to account on it.

(Copying in Bastien, who was very much there at the inception.)

This was the outcome of a discussion on what to do with Worg materials
that were obsolete as instructions, but seemed to have some historical
interest. 

I've drafted a history section, attached here as a patch. Comments and
corrections welcome!

If it works out well here, we might think about eventually adding
history sections to other pages where it makes sense as well.

(One thing I haven't managed to pin down: org-protocol must have started
out in the contrib directory, as it's still in the org-contrib section
for historical reasons, but I think it must have been moved into core
right away in 2009 ... ?)

Regards,
Christian

>From 1427cb8cdabc76664e4c602d6346de35351bb6fb Mon Sep 17 00:00:00 2001
From: Christian Moe <m...@christianmoe.com>
Date: Tue, 15 Jul 2025 13:54:37 +0200
Subject: [PATCH] org-protocol.org: Add history section

* org-contrib/org-protocol.org (*History of Org protocol): Add
historical narrative.  Integrate old screencast.
(*Screencast): Delete as separate section.
(*Deprecated URL Styles): Add custom ID.
---
 org-contrib/org-protocol.org | 89 +++++++++++++++++++++++-------------
 1 file changed, 56 insertions(+), 33 deletions(-)

diff --git a/org-contrib/org-protocol.org b/org-contrib/org-protocol.org
index 77a3176f..0d73ac2e 100644
--- a/org-contrib/org-protocol.org
+++ b/org-contrib/org-protocol.org
@@ -552,17 +552,69 @@ request.
 
 Firefox users can follow the steps documented on https://kb.mozillazine.org/Register_protocol.
 
------
+
 * History of Org protocol
+:PROPERTIES:
+:CUSTOM_ID: history
+:END:
+
+Org protocol was originally [[https://list.orgmode.org/20071106154907.5d68b019@dhcp-296-6/][inspired]] by Geert Kloosterman's setup for
+passing a URL and page title from a browser to Planner mode with
+custom =remember://= and =annotate://= protocols, using a bookmarklet,
+a bash script, emacsclient, and =remember.el=. [[https://list.orgmode.org/874pfyre0g....@bzg.ath.cx][Bastien Guerry adapted
+it]] into the =org-annotation-helper.el= module in 2007. Daniel M German
+[[https://list.orgmode.org/87mymppyx1....@uvic.ca/][updated]] the module the following year, when it was [[https://list.orgmode.org/70800982-ff12-4587-afb9-36ddf3373...@uva.nl/][included]] into the
+Org =contrib= directory. Taking a different approach, [[https://list.orgmode.org/878wrax5qf....@transitory.lefae.org/][Ross Patterson
+contributed]] =org-browse-url.el=, for storing a link from the browser
+without relying on Remember templates or inserting it into a buffer.
+Inspired by these libraries, [[https://list.orgmode.org/87d4d3oqln.fsf@kassiopeya.MSHEIMNETZ/][Sebastian Rose published]] a setup to open
+the source of a published Worg file in 2009, and soon generalized it to
+other "worglets."
+
+These packages were [[../org-release-notes.org::#v6.25][superseded in Org version 6.25 (April 2009) by
+Sebastian Rose's =org-protocol.el=]]. Org protocol provided a more
+abstracted interface: Only one protocol had to be configured with
+external applications or the operating system. The three approaches
+above became the =remember= (now =capture=), =store-link=, and
+=open-source= schemes.  The following screencast by Bastien Guerry
+(2009) showcases Org protocol as it looked at the time, using Firefox
+and emacsclient.
 
 #+begin_warningbox
-A historical account of Org protocol is needed here.
+This video is obsolete. Retained for historical purposes.
 #+end_warningbox
 
-=org-protocol.el= is based on code and ideas from
-[[file:../archive/org-contrib/org-annotation-helper.org][org-annotation-helper.el]] and =org-browser-url.el=.
+#+begin_export html
+<video controls
+       <source src="https://bzg.fr/uploads/store-links-in-emacs-org-using-org-protocol.mp4"; type="video/webm">
+       <source src="https://bzg.fr/uploads/store-links-in-emacs-org-using-org-protocol.mp4"; type="video/mp4">
+<p>
+  Your browser does not support HTML video.
+</p>
+</video>
+#+end_export
+
+During these developments, Org mode relied on [[info:remember#Top][John Wiegley's Remember
+mode]] for capturing information with the =org-remember.el= module. To
+make the code easier to maintain and offer more options, Carsten
+Dominik [[https://list.orgmode.org/orgmode/c46f10dc-de51-43d4-affe-f71e440d1...@gmail.com/][rewrote and renamed it]] as the independent =org-capture.el=
+module (Org version [[https://list.orgmode.org/87bolcr957....@altern.org/][7.8.11]], 2010). Accordingly, the Org protocol
+=remember= scheme was renamed as =capture=. Parallel support for the
+now partly incompatible Remember in Org protocol was finally dropped
+with the major update in [[https://list.orgmode.org/87ehe7yenk....@bzg.ath.cx][version 8.0]] (2013).
+
+The Org protocol URL schemes originally used positional parameters
+separated by slashes. They were replaced by HTTP query-style
+=?key=value= parameters in version 9.0. Since version 9.5, Org
+protocol has also understood such parameters constructed with the
+=URLSearchParams= Javascript class, which makes for more readable
+bookmarklets. As of 2025, Org protocol still supports "old-style
+links" (see [[*Deprecated URL Styles]]), but raises a warning.
 
 *** Deprecated URL Styles
+:PROPERTIES:
+:CUSTOM_ID: deprecated-url-styles
+:END:
 
 The =store-link=, =capture=, and =open-source= URL styles have been
 changed to largely conform to the [[https://datatracker.ietf.org/doc/html/rfc1738#section-3.1][common internet scheme syntax]] of RFC
@@ -598,35 +650,6 @@ styles. Migrating from the old style to new is recommended.
 The ~remember~ protocol is /removed/. Users should migrate any
 configuration relying on it to the =capture= protocol.
 
-*** Screencast: small introduction to org-protocol.el
-
-#+begin_warningbox
-This video is obsolete. Retained for archival purposes.
-#+end_warningbox
-
-  #+begin_export html
-  <video controls
-  <source src="https://bzg.fr/uploads/store-links-in-emacs-org-using-org-protocol.mp4"; type="video/webm">
-  <source src="https://bzg.fr/uploads/store-links-in-emacs-org-using-org-protocol.mp4"; type="video/mp4">
-  <p>
-  Your browser does not support HTML video.
-  </p>
-  </video>
-  #+end_export
-
-  This screencast shows off some nice things you can do with Firefox,
-  Emacs, Org-mode and org-protocol.el.
-
-  It first shows how to create two bookmarklets, =org-capture= and
-  =org-store-link=. These bookmarklets enable your Firefox to talk to
-  emacsclient via a new protocol (=org-protocol://=); emacsclient then
-  parses the request and tells Emacs to capture or store stuff at the
-  relevant places in your Org files.
-
-  At the end of the screencast, we create two ubiquity commands from
-  these bookmarklets.  Now in Firefox =ALT-SPC org-capture RET= creates
-  a note in my Org files.
-
 * Footnotes
 
 [fn:scrim-captee-disclaimer] Disclaimer: author of this section,
-- 
2.43.0

Reply via email to