diff --git a/chicken-doc-html.scm b/chicken-doc-html.scm index 65e47c6..1baf0a2 100644 --- a/chicken-doc-html.scm +++ b/chicken-doc-html.scm @@ -211,23 +211,26 @@ (lambda (s) (match s ((type sig . alist) - (let ((defid (->string ;; wasteful - (or (signature->identifier - sig type) - sig)))) + (let* ((defid (cond ((assq 'id alist) => cadr) + (else (signature->identifier sig type)))) + (defid (and defid (->string defid)))) `("
identifier defid)) + ,(if defid + `(" id=\"" + ,(quote-identifier + (definition->identifier defid)) #\") - ">" + '()) + #\> ;; Link to underlying node. - ,(list "href defid) + ,(if defid + `("href defid) #\" #\>) + '()) "" ,(quote-html sig) "" - "" + ,(if defid "" '()) " " "" ,(quote-html (->string type))