Google カレンダー連携して howm メニューに表示

Meadow/Emacs memo: メモを書こうに、homw menu に diary を表示する方法がある。

Google calendar と diary の連携は[emacs][google][calendar]Emacs の calendar と Google カレンダーを連携させるをすれば出来るので、この両方をやれば目的を達成できることになる。

が、そのままだと Status とか UID とかいらんものまで表示されてうざいので、howm-menu-diary を以下のように書き換える。

(defun howm-menu-diary ()
  (message "scanning diary...")
  (delete-region
   (match-beginning 0) (match-end 0))
  (require 'diary-lib)
  (let* ((now (decode-time (current-time)))
         (diary-date
          (list (nth 4 now) (nth 3 now) (nth 5 now)))
         (diary-display-hook 'ignore)
         (cbuf (current-buffer))
         (howm-diary-entry nil)
         (howm-diary-entry-day nil)
         (str nil))
    (unwind-protect
        (setq howm-diary-entry
              (list-diary-entries
               diary-date howm-menu-schedule-days))
      (save-excursion
        (set-buffer
         (find-buffer-visiting diary-file))
        (subst-char-in-region
         (point-min) (point-max) ?\^M ?\n t)
        (setq selective-display nil)))

    (while howm-diary-entry
      (setq howm-diary-entry-day (car howm-diary-entry))
      (setq mm (nth 0 (car howm-diary-entry-day)))
      (setq dd (nth 1 (car howm-diary-entry-day)))
      (setq yy (nth 2 (car howm-diary-entry-day)))
      (setq str
            (replace-regexp-in-string "[\n].*Status:.*$" "" (nth 1 howm-diary-entry-day)))
      (setq howm-diary-entry (cdr howm-diary-entry))
      (insert
       (format
        ">>d [%04d-%02d-%02d] %s\n" yy mm dd str))))
  (message "scanning diary...done")
  )

挿入する文字列を一部削除するようにしただけ。