NEW: For a prettier blog interface, see the Wordpress version!
Tasks
| A | X | Meet Maoi Arroyo for brunch @1000 in Greenbelt 1 (2005.06.18 social) |
| B | X | Write about book notes wiki idea (2005.06.18 writing) |
| B | X | Reflect on Cashflow lessons for today (2005.06.18 finance) |
| B | X | Follow up with Infoweapons regarding wiki (2005.06.18 lovecat) |
| B | X | Switch Entreplink to non-digest |
| B | X | Merge patch for planner-annotation-as-kill : E-Mail from Stefan Reichör (2005.06.18 planner feature) |
| B | X | Adapt action-lock code to allow Planner-style hyperlinks from anywhere (2005.06.18 planner help) |
| B | X | Track down lisp tag bug under XEmacs (2005.06.18 planner bug) |
| B | X | Add to http://www.emacswiki.org/cgi-bin/wiki/PlannerAndHowmComparison (2005.06.18 planner doc) |
Notes
1. Planner support for action-lock.el
action-lock.el is part of HOWM. The following code enables Planner-style links _anywhere_. Add it to your ~/.emacs and use M-x action-lock-mode to turn action locking on.
(add-to-list 'action-lock-default-rules
(list (with-planner emacs-wiki-url-or-name-regexp)
'planner-action-lock-follow-name-at-point))
(setq action-lock-rules action-lock-default-rules)
(defvar planner-action-lock-default-directory planner-directory "Expand files relative to this directory.")
(defun planner-action-lock-follow-name-at-point (&optional other-window)
(let ((link-name (match-string 0))
(base-buffer (current-buffer))
;; the name of the buffer that contains the link. check
;; whether buffer-name is a WikiName, else make it one
(parent-name (or (emacs-wiki-page-name)
(concat "[[" (buffer-name) "]]")))
(refresh-buffer nil))
(with-planner
(let ((link (emacs-wiki-wiki-link-target link-name)))
(if (emacs-wiki-wiki-url-p link)
(emacs-wiki-browse-url link other-window)
;; The name list is current since the last time the buffer was
;; highlighted
(let* ((base (emacs-wiki-wiki-base link-name))
(file (emacs-wiki-page-file base))
(tag (and (not (emacs-wiki-wiki-url-p link))
(emacs-wiki-wiki-tag link)))
(find-file-function (if other-window
'find-file-other-window
'find-file))
(parent-allowed-backlink-p
(not (string-match
emacs-wiki-exclude-backlink-parent-regexp
parent-name)))
(parent-backlink (and parent-allowed-backlink-p
(emacs-wiki-get-current-backlink)))
(newbuf
(funcall find-file-function
(or file
(expand-file-name
base
(or planner-action-lock-default-directory
(and (buffer-file-name)
(file-name-directory
(buffer-file-name)))
default-directory)))))
(emacs-wiki-create-backlinks
(and emacs-wiki-create-backlinks parent-allowed-backlink-p))
(make-link-p (and emacs-wiki-create-backlinks
;; insert backlink only in new files
(null file)
(not (string-match
emacs-wiki-exclude-backlink-regexp
(emacs-wiki-page-name
(buffer-file-name newbuf)))))))
(when tag
(goto-char (point-min))
(re-search-forward (concat "^\\.?#" tag) nil t))
(when refresh-buffer
(when make-link-p
(emacs-wiki-insert-backlink parent-name parent-backlink))
;; todo: is with-current-buffer necessary here?
(with-current-buffer newbuf
(add-hook 'after-save-hook
'emacs-wiki-refresh-buffers-once t t)
;; save the new file to avoid another backlink if the
;; buffer is visited again before being saved
(when (or make-link-p
(and (null file)
(not parent-allowed-backlink-p)))
;; set modified status to t: pages with excluded
;; parents may not be modified, but we want to save
;; anyway
(set-buffer-modified-p t)
(save-buffer))))))))))
コンピュータの知識はすべての科学」にとって基本である。 Knowledge of computers is basic to all sciences.
I'd love to hear about any questions, comments, suggestions or links that you might have. Your comments will not be posted on this website immediately, but will be e-mailed to me first. You can use this form to get in touch with me, or e-mail me at sacha@sachachua.com .