anchor.diff:        (:+ (:not "]")
             (:char-push text)))
     "]"
  -  (:render external-link! proto href text))
  +  (:render external-link! proto-prefix href text))
   
   (defmacro define-text-rule (fn element renderer)
     `(defrule ,fn (&aux text) ()
  
positive.code:   "]]"
    (:render internal-link! label text))
  
  (defrule external-link? (&aux proto href text) ()
    "["
    (:or (:and "http://" (:assign proto 'http))
         (:and "https://" (:assign proto 'https))
         (:and "ftp://" (:assign proto 'ftp)))
    (:assign href (make-char-accum))
    (:+ (:not (:or "]" (:type space? newline?)))
        (:char-push href))
  
negative.code:         (push (wiki-path-to :label path)
                (context-attachment-links attachment)))))
  
  (define-html-renderer external-link! (proto-prefix href text) (attachment)
    (let ((href (format nil "~a~a" proto-prefix href)))
      (htm
       (:a :class "external"
           :href (escape-string-minimal href)
  