どんな記事があるかが気になるので適当に書いてみました
コード
curlコマンドと helmがあればたぶん動きます。
(defvar vac2012-url "http://atnd.org/events/33746") (defvar vac2012-entries-cache nil) (defvar vac2012-entry-regexp "【\\([0-9]+\\)日目】<a href=\"\\([^\"]+\\)\">\\([^>]+\\)</a>") (defun vac2012-collect-entries () (if (and vac2012-entries-cache (not current-prefix-arg)) vac2012-entries-cache (let ((cmd (format "curl %s" vac2012-url))) (with-temp-buffer (unless (zerop (call-process-shell-command cmd nil t)) (error "Failed: %s" cmd)) (goto-char (point-min)) (loop initially (goto-char (point-min)) while (re-search-forward vac2012-entry-regexp nil t) collect (cons t (list :date (string-to-number (match-string-no-properties 1)) :url (match-string-no-properties 2) :title (match-string-no-properties 3))) into entries finally return (setq vac2012-entries-cache (reverse entries))))))) (defun vac2012-transform-candidate (candidate) (format "%4d日目: %s" (plist-get candidate :date) (plist-get candidate :title))) (defun vac2012-jump-url (candidate) (browse-url (plist-get candidate :url))) (defvar helm-vac2012-source '((name . "Vim Advent Calendar 2012") (init . vac2012-collect-entries) (candidates . vac2012-entries-cache) (real-to-display . vac2012-transform-candidate) (action . vac2012-jump-url))) (defun helm-vim-advent-calender-2012 () (interactive) (helm :sources '(helm-vac2012-source) :buffer "*Vim Advent Calenader 2012*"))