anything-books.el ver 1.1 アップデート、機能追加など

参考:anythingでPDFファイルをプレビューしながら高速に選びたい

以下の点をアップデートしました。

  • バグ修正:サブディレクトリをうまく扱えない問題の修正(id:authorNariさん)、JPEGではなくPNGファイルが生成されていた問題の修正
  • 改善:qlmanagerによるMac対応(id:peccuさん)
  • 改善:anything-books-actionsを独立させた

Macでの設定

id:peccuさんからのパッチで Quick Look のプログラムである qlmanager を使う設定が出来ました。 qlmanager は何でも使えるみたいなのでPDF意外でも便利そうですね。

;; 共通の設定例
(require 'anything-books)
(setq abks:books-dir "/home/foo/bar/pdf-files") ; PDFファイルのあるディレクトリ(★必須)
(global-set-key (kbd "M-8") 'anything-books-command) ; key bind example

;; Macでの設定例
(setq abks:cache-pixel "600")
(setq abks:mkcover-cmd '("qlmanage" "-t" pdf "-s" size "-o" dir))
(setq abks:mkcover-image-ext ".png")
(setq abks:open-command "open") ; 標準のプログラムを使う

追加アクション

今回 anything-books-actions を独立させたことにより、皆さんが自由に本選択のアクションを追加しやすくなるのではないかと思っています。

デフォルトでは以下のように定義されています。

(defvar anything-books-actions
  '(("Open" 
     . (lambda (x) (abks:open-file x)))
    ("Add the book title to kill-ring" 
     . (lambda (x) (kill-new (abks:file-to-title x))))))

アクションのタイトルと関数の対のリストです。

関数の引数(ここではx)にPDFのフルパスが渡ってきます。タイトル(というかファイル名)が必要な場合は abks:file-to-title を使うとタイトルになります。

手元では howm と連携するようにしてみました。

(eval-after-load "howm"
  '(progn

     (defvar abks:howm-title-format   '("BOOK " title))
     (defvar abks:howm-content-format '(">>>" file))

     (defun abks:howm-open (file)
       (let* ((data `((title . ,(abks:file-to-title file)) (file . ,file)))
              (howm-title (apply 'concat (abks:list-template abks:howm-title-format data)))
              (howm-content (apply 'concat (abks:list-template abks:howm-content-format data)))
              (howm-items (howm-folder-grep howm-directory (regexp-quote howm-title))))
         (cond
          ((null howm-items) ; create
           (howm-create-file-with-title howm-title nil nil nil howm-content))
          ((eql 1 (length howm-items)) ; open
           (howm-view-open-item (car howm-items)))
          (t ; list
           (howm-view-summary "Anything Books" howm-items)))))

     ;; register howm action
     (setq anything-books-actions 
           (append anything-books-actions
                   '(("Open a howm item" . (lambda (f) (abks:howm-open f))))))
     ))

本のタイトルを含むメモを追加したり、既にあれば開いたりします。org-modeとかEvernoteでも応用できるかもしれません。

皆さんのPDF管理(自炊)生活が快適になれば幸いです。