When you have multiple instances of the same extension (with different arguments) on the same line, each instance repeats the first instance. If you trace the function call, each instance calls the function with the arguments of the first call.
If you put in a line break between the extension instances, markdown works correctly.
Below is some test code demonstrating the error
andy
(in-package :markdown)
(defextension (link-new :arguments ((text :required)
(href :required))
:insertp t)
(ecase phase
(:parse
;; no worries
)
(:render
(format nil "<a href=~s target=\"_blank\">~a</a>" href text))))
(defparameter *cliki*
(defparameter *google*
(defparameter *test-one-line*
(concatenate 'string
*cliki*
" "
*google*))
(defparameter *test-two-lines*
(concatenate 'string
*cliki*
(string #\Newline)
*google*))
(defun test-string (str)
(let ((*render-active-functions*
(append '(link-new) *render-active-functions*)))
(nth-value 1 (markdown str :stream nil))))