EmacsでReadabilityに置いてある記事を読める Readability.el

Readability.el for Emacs

github.com/ShingoFukuyama/emacs-readability

必要なもの

Melpa経由なら後ろ3つは自動でインストールされます。

手順

(add-to-list 'load-path "/your/path/to/emacs-readability")
    (require 'readability)
  • 1. `M-x readability-get-reading-list` を実行。
  • 2. 標準ブラウザが自動で開くのでログインする。
  • 3. 認証画面が出るのでこのアプリ(readability.el)を認証する。
  • 4. 画面にリクエストトークンが出るのでこれをコピーする。
  • 5. Emacsにもどり、下のmini-bufferでRETキーを押してからペースト、再度RETキーを押す。
  • 6. 記事リストの取得が始まる。
  • 7. 記事リストが取得できたらタイトルの上でRETキーを押すとコンテンツを見られる。

ショートカットキー

     
  • `RET`(記事リストアイコン上): お気に入り、アーカイブなどを変更。
  • `RET`(記事リストタイトル上): 内容を表示。
  • `o, O`(記事リストタイトル上): 内容を別のウィンドウで表示。
  • `C-o`(記事リストタイトル上): 内容を別のウィンドウで表示(移動なし)。
  • `+,-`(記事バッファ上): 文字のサイズを変更。
  • `F`(記事バッファ上): フォントを切り替え(英数字のみ)。
  • `f,b,n,p`(記事バッファ上): カーソル移動。
  • `h,l,j,k`(記事バッファ上): カーソル移動(vi風)。

カスタマイズ

;; ファイルパスの変更
(setq readability-file-location "~/.emacs.d/my_readability_token")


;; 記事バッファの行間を指定
(setq readability-line-height-for-article 1.15)
;; 記事バッファの行の長さ割り出す関数を指定
(setq readability--line-width-for-article (lambda () (- (window-width) 10)))


;; 記事リスト所得のパラメータ 詳細は以下のページ
;; https://www.readability.com/developers/api/reader#idm301959944144
(setq readability-parameters
      '(("archive"  . nil)  ;; "0", "1"
        ("favorite" . nil)  ;; "0", "1"
        ("order"    . nil)  ;; "-date_added", "date_added", "-date_updated", "date_updated"
        ("page"     . nil)  ;; "1" ~
        ("per_page" . "50") ;; "1" ~ "50"
        ("domain"   . nil)  ;; string
        ("tags"     . nil)  ;; string
        ))
;; 例: アーカイブしていない記事だけ見たい。一度に20記事取得したい。
;; (setq readability-parameters '(("archive" . "0")
;;                                ("per_page" . "20")))


;; フォントの変更 英数字のみ変わり日本語文字は影響を受けません
(setq readability-font-list
      '("Default" ;; "Default"は現在使用中のフォントに置き換わる
        "Georgia"
        "Arial"
        "Verdana"))

感想

Readabilityによって見やすくなっている記事をEmacsで表示するということで相性は良いと思います。最初はw3mを使おうとしていましたが、Emacs 24.3に標準で入っていたshr.elを呼び出して使うとhtmlの書かれたバッファをいい感じに見やすくしてくれて画像の表示も非同期でいい感じです。

現時点の課題としては、非同期リクエスト、ページング機能、ショートカットキー追加、日本語フォント切り替え機能です。オーバーレイでのフォント変更は日本語が対応していないようなので勇者が現れて実装してくれるまで放置します。

プルリクエスト歓迎です。

github.com/ShingoFukuyama/emacs-readability