在 Firefox 上使用 Org 協議捕獲 URL
介紹
作為一名 Emacs 人,我儘可能讓所有的工作流都在 Org 模式 上進行 —— 我比較喜歡文本。
我傾向於將書籤記錄在 Org 模式 代辦列表中,而 Org 協議 則允許外部進程利用 Org 模式 的某些功能。然而,要做到這一點配置起來很麻煩。(搜索引擎上)有很多教程,Firefox 也有這類 擴展,然而我對它們都不太滿意。
因此我決定將我現在的配置記錄在這篇博客中,方便其他有需要的人使用。
配置 Emacs Org 模式
啟用 Org 協議:
(require 'org-protocol)
添加一個 捕獲模板 —— 我的配置是這樣的:
(setq org-capture-templates
(quote (...
("w" "org-protocol" entry (file "~/org/refile.org")
"* TODO Review %an%Un%:initialn" :immediate-finish)
...)))
設置默認使用的模板:
(setq org-protocol-default-template-key "w")
執行這些新增配置讓它們在當前 Emacs 會話中生效。
快速測試
在下一步開始前,最好測試一下配置:
emacsclient -n "org-protocol:///capture?url=http%3a%2f%2fduckduckgo%2ecom&title=DuckDuckGo"
基於的配置的模板,可能會彈出一個捕獲窗口。請確保正常工作,否則後面的操作沒有任何意義。如果工作不正常,檢查剛才的配置並且確保你執行了這些代碼塊。
如果你的 Org 模式 版本比較老(老於 7 版本),測試的格式會有點不同:這種 URL 編碼後的格式需要改成用斜杠來分割 url 和標題。在網上搜一下很容易找出這兩者的不同。
Firefox 協議
現在開始設置 Firefox。瀏覽 about:config
。右擊配置項列表,選擇 「New -> Boolean」,然後輸入 network.protocol-handler.expose.org-protocol
作為名字並且將值設置為 true
。
有些教程說這一步是可以省略的 —— 配不配因人而異。
添加 Desktop 文件
大多數的教程都有這一步:
增加一個文件 ~/.local/share/applications/org-protocol.desktop
:
[Desktop Entry]
Name=org-protocol
Exec=/path/to/emacsclient -n %u
Type=Application
Terminal=false
Categories=System;
MimeType=x-scheme-handler/org-protocol;
然後運行更新器。對於 i3 窗口管理器我使用下面命令(跟 gnome 一樣):
update-desktop-database ~/.local/share/applications/
KDE 的方法不太一樣……你可以查詢其他相關教程。
在 FireFox 中設置捕獲按鈕
創建一個書籤(我是在工具欄上創建這個書籤的),地址欄輸入下面內容:
javascript:location.href="org-protocol:///capture?url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(document.title||"[untitled page]")
保存該書籤後,再次編輯該書籤,你應該會看到其中的所有空格都被替換成了 %20
—— 也就是空格的 URL 編碼形式。
現在當你點擊該書籤,你就會在某個 Emacs 框架中,可能是一個任意的框架中,打開一個窗口,顯示你預定的模板。
via: http://www.mediaonfire.com/blog/2017_07_21_org_protocol_firefox.html
作者:Andreas Viklund 選題:lujun9972 譯者:lujun9972 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive