anchor.diff:          (push (wiki-path-to :label path)
                 (context-attachment-links attachment)))))
   
  -(define-html-renderer external-link! (proto href text) (attachment)
  -  (let ((href (format nil "~(~a~)://~a" (symbol-name proto) href)))
  +(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)
  
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:       (:+ (:not "]")
            (:char-push text)))
    "]"
    (:render external-link! proto-prefix href text))
  
  (defmacro define-text-rule (fn element renderer)
    `(defrule ,fn (&aux text) ()
  