Categories

Developer

Titan-C

Org Web Capture v0.3.3

  • rating
  • rating
  • rating
  • rating
  • rating
5.00 (2 reviews)
A helper for capturing web pages via org-protocol in emacs and supporting org-roam captures.

1 Org Web Capture Extension
═══════════════════════════

This is an extension for Firefox (tm) which adds a “Capture” button,
sending the site address, title, and selected text (if any) to emacs
via org-protocol.

In case it’s a meetup.com event page it will perform an additional API
call to meetup.com and get the event details.


2 Detailed setup instructions
═════════════════════════════

2.1 Install the extension
─────────────────────────

Install from <https://addons.mozilla.org> website under the name [Org
Web Capture].


[Org Web Capture]
<https://addons.mozilla.org/en-US/firefox/addon/org-web-capture/>


2.2 Set up org-protocol
───────────────────────

The gist of it is to make your system recognize emacsclient as the
handler of `org-protocol://' links. In addition, one needs to set up
emacs to load org-protocol and to set up capture templates.


2.2.1 Register emacsclient as the ```org-protocol``` handler
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ 2.2.1.1 Under Linux (non-KDE)

┌────
│ mkdir -p "${HOME}/.local/share/applications/"
│ cat > "${HOME}/.local/share/applications/org-protocol.desktop" << EOF
│ [Desktop Entry]
│ Name=org-protocol
│ Exec=emacsclient %u
│ Type=Application
│ Terminal=false
│ Categories=System;
│ MimeType=x-scheme-handler/org-protocol;
│ EOF
└────

And then
┌────
│ update-desktop-database ~/.local/share/applications/
└────


2.2.2 Configure Emacs
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ 2.2.2.1 Init file

┌────
│ (server-start)
│ (require 'org-protocol)
└────


◊ 2.2.2.2 Capture templates

┌────
│ ("l" "Web site" entry (file+headline (lambda () (concat org-directory "/webnotes.org")) "Inbox")
│ "* %a\nCaptured On: %U\nWebsite: %l\n\n%i\n%?")

│ ("m" "meetup" entry (file "~/nextcloud/caldav.org") "* %?%:description \n%i\n%l")
└────


◊ 2.2.2.3 Org-roam `roam-ref' templates

`Org-roam' has special capture templates, and thus they are to be
configured differently. Read more org-roam [roam-ref protocol].
┌────
│ (setq org-roam-capture-ref-templates '(("l" "web" plain "%i\n%?"
│ :target (file+head "%<%Y%m%d>-${slug}.org"
│ "#+title: ${title}")
│ :unnarrowed t)))
└────


[roam-ref protocol]
<https://www.orgroam.com/manual.html#The-roam_002dref-protocol>


2.2.3 Configure extension
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

For some reason I need to configure the extension and save a change
before it works.

You can use the shortcut “Ctrl+Shift+L” to trigger the page capture.


3 Development
═════════════

Have nodejs installed and install the tool `web-ext'
┌────
│ npm install --save-dev web-ext
└────
To launch the dev instance an a clean browser use:
┌────
│ npm run start:dev
└────
To produce the release build
┌────
│ npm run build
└────


4 License
═════════

4.1 This is a fork of <https://github.com/sprig/org-capture-extension>
──────────────────────────────────────────────────────────────────────

This repository is licensed as MIT license, see the LICENSE file for
details.


5 Changes
═════════

5.1 v0.3.1
──────────

• Some code cleanup. Ship CSS instead of pulling tachyons from unpkg


5.2 v0.3.0
──────────

• Support capturing to org-roam roam-ref-templates. Just mark the
checkbox on the config and the standard web request will go to
`roam-ref' instead of capture.


5.3 v0.2.6
──────────

• Include the how to find information in meetup template