閲覧中のウェブページを Org 形式で開く
今回は、EWWでウェブサイトを見ているときにすばやくページをOrg形式に変換して表示する、という方法を検討してみたいとおもいます。こちらが実装となります。
Elisp code to reopen EWW page in org
(defun my/eww-reopen-in-org (&optional level)
"Convert the current HTML page source into an org format, then open it with level LEVEL entries displayed."
(interactive "p")
(let ((source (plist-get eww-data :source))
(buffer (get-buffer-create "EWW page in org"))
(org-startup-folded t))
(with-current-buffer buffer
(insert source)
(shell-command-on-region (point-min) (point-max)
"pandoc - -f html -t org"
t t)
(org-mode)
(org-ctrl-c-tab level))
(switch-to-buffer buffer)))
(with-eval-after-load 'eww
(bind-keys :map eww-mode-map
("O" . my/eww-reopen-in-org)))
コードとしては至ってシンプルですね。ポイントとしてはファイルに書き出すことなくEmacsバッファ内で変換・表示を完結しているところでしょうか。変換エンジンとしてはおなじみpandocを使っております。キーバインドは Org で Open するから "O" にしました。
Happy Tinkering!