February 27, 2004

Bulk view

Better font-locking in emacs-wiki

If you’re having problems with emacs-wiki not highlighting the first
time you view a buffer, you’re probably set to use jit-lock or
lazy-lock. Don’t. Use (setq font-lock-support-mode nil) instead, so
full font-locking will always be performed. You may want to use the
list so that this is only done for planner-mode and emacs-wiki-mode. =)

Better!

Finally got emacs-wiki highlighting just the way I want it.
Apparently, it bypasses the normal font-lock thing. Changes: I made
the example tag remove all the properties from the bounded region.
Here’s the relevant snippet from my ../emacs/emacs-wiki-config.el:

(defun sacha/htmlfontify-insert-region (buffer begin end)
  "Insert into BUFFER the htmlified text between BEGIN and END."
  (save-excursion
    (let* ((hfy-optimisations (cons 'skip-refontification hfy-optimisations))
	   (input-text (buffer-substring begin end))
	   (temp-file (make-temp-file "html-input"))
	   output-buffer)
      (with-temp-buffer
	(insert input-text)
	(setq buffer-file-name temp-file)
	(save-excursion (setq output-buffer (htmlfontify-buffer nil nil)))
	(set-buffer-modified-p nil))
      (unwind-protect
	  (let (b e yanked-output)
	    (set-buffer output-buffer)
	    (goto-char (point-min))
	    (search-forward "
\n")
	    (setq b (line-beginning-position))
	    (goto-char (point-max))
	    (search-backward "

")
(forward-line -1)
(setq e (line-beginning-position))
(setq yanked-output (buffer-substring-no-properties b e))
(set-buffer buffer)
(insert yanked-output))
(set-buffer output-buffer)
(set-buffer-modified-p nil)
(delete-file temp-file)
(kill-buffer output-buffer)))))

(defun sacha/emacs-wiki-example-tag (beg end attrs highlight-p)
"Mark up text as an example with optional font-locking."
(if highlight-p
(progn
(remove-text-properties
beg end '(face nil font-lock-multiline nil
invisible nil intangible nil display nil
mouse-face nil keymap nil help-echo nil))
(goto-char end))
;; I don't know what would happen if you don't have
;; htmlfontify. I guess if you are installing this you
;; should have it...
(let ((end-marker (set-marker (make-marker) (1+ end))))
(save-restriction
(narrow-to-region beg end)
(let* ((mode (cdr (assoc "mode" attrs)))
(start (progn (forward-line) (point)))
(stop (progn (goto-char end) (beginning-of-line) (point)))
(text (buffer-substring-no-properties start stop))
(buffer (current-buffer)))
(delete-region beg end)
(with-temp-buffer
(insert text)
(when (and mode (and (stringp mode) (functionp (intern mode))))
(funcall (intern mode))
(font-lock-fontify-buffer))
(sacha/htmlfontify-insert-region buffer (point-min) (point-max)))
(goto-char (point-min))
(insert "

\n")
	  (goto-char (point-max))
	  (insert "

\n")
(add-text-properties (point-min) (point-max)
'(rear-nonsticky (read-only) read-only t))))
(goto-char end-marker))))

(add-hook 'emacs-wiki-mode-hook 'emacs-wiki-highlight-buffer t)

Bah, unrelated repositories

 * patching for this revision ([email protected]/emacs-wiki--dev--1.0--patch-1)
 star-merge: unable to merge unrelated trees.

Public key needed for XEmacs packages

I was getting “Couldn’t check signature” errors on XEmacs. I
uncommented the mailto keyserver in my ~/.gnupg/gpg.conf and now things work.
The public key needed is here:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP Key Server 0.9.5

mQGiBD5bymERBADX0PmDpRvw9a7D1M7gE/KA6ofrYFuy1+r9SzJ9vpdYC8B8B1ip
QDaTNA3F2euz5BkNal2m3MF7TLXItoojd0QEoIMZjpka17qtXpE5WPhdTa+sgN10
1o/uffHIkRCnjudY/lMtPrDtAVnNZsD7Yxs4zltw7ZCiwnJYkY7wuW6XEwCg97NY
N1N3bw8n214at/a6J4tAQt0D/1TEDSlpEoKuS2YJW+seZB7IoDiTeG/6IQwN5N34
XFrRbT00ttWsQSKUlnhkec0HXJr06GAsSP8+ZxI5ULRmHWB6FDvhE5bllmQyQ1VZ
1GaPhIcQcNTC7dpM6SVpG2JjTZ0IHxLGPUby20maFBwAmFSGHoa8rS/fAA0XOW/r
wWrwBACG5igwGBSt6U/yGdvrXM0B9Kg6oYj8KZNI2WNV/CpH+7R+rAuasvEGtFJ+
+2YwHr5rnhvLnCCJbsbkhvG0fjdZNnr1OVljgnR99sjmY9B2rzHwOXcDyM4exRxB
p5neVEF7nGbCh0oVcxUNr50qY+kmBfGdI3+tI9YUbbmjgk2QerRBTm9yYmVydCBL
b2NoIChYRW1hY3MgcGFja2FnZS1yZWxlYXNlIG1hbmFnZXIpIDx2aXRlbm9AeGVt
YWNzLm9yZz6IXwQTEQIAHwUCPlvKYQUJA8JnAAQLBwMCAxUCAwMWAgECHgECF4AA
CgkQgu3ywdHdhM3qmACgqWqMvO9wBKi5vGVp/uGKrIVoQqoAninfPKIii17/LeWC
D5I3CeD48ct5uQENBD5bymUQBACnFB0BchSQEQeQvEdXs45hxKlW39YqmnTmFClP
P2XJM/f9kWOL4e01/B+2tP/o8yrkS3C7OR1p8llIHUGnZTGW0sKn3/OLdw1c0eFY
8dCVHnoRnvqn67ffQ4Lqk56Tm96OtK78sJpy9Vj+UhwUdtdDNyNQiWREtsJDE2Qd
MpK++wADBQP+P1Pz1vJQUMj7OqdojcLCRO3hosx5En21hC3ZL3h0Mnh54yuJxlNl
Q1zRoiufzG1HSgBZLUsnXxDZSiWSNKnf4gWidrbnq0dQlci4knxB5FfmY3hDYkvR
KA6+TQs+8vASXnRWArLXAthpl+kv5iMCFBhIF7aNY12/PGIhtu4At7CITAQYEQIA
DAUCPlvKZQUJA8JnAAAKCRCC7fLB0d2EzYrGAKDdVoyugIlwLzHl4hzxLKzBkWR1
7wCgp9uaH8pfFUr70S2bALwPDdy/fXs=
=1HP3
-----END PGP PUBLIC KEY BLOCK-----

The mailto server returned the key to me as an attachment. I pressed
pipe on the MIME part and passed it to gpg —import.

E-Mail from Server Administrator

planner.el goodness

Andrew Laing wrote:

I think the work you put into Planner et al is fantastic. I have spent
quite a bit of time over the past week poring over your web page and .el
files and just wanted to take a second to say thank you for all your
work. I have recently switched to Emacs as my text-editor and sincerely
appreciate sites like yours which help me understand it better. Thank
you!

Awwwwwwww! =)

E-Mail from Andrew Laing