Я не уверен, является ли это проблемой с моим использованием cl-who
(в частности with-html-output-to-string
и with-html-output
) или проблемой с моим пониманием Common Lisp (так как это мой первый проект с использованием Lisp).
Я создал функцию для создания полей формы:
(defun form-field (type name label)
(cl-who:with-html-output (*standard-output* nil)
(:div :class "field"
(:label :for name label)
(:input :type type :name name))))
При использовании этой функции, например: (form-field "text" "username" "Username")
параметр label
, похоже, игнорируется ... вывод HTML:
<div class="field"><label for="username"></label>
<input type="text" name="username"/></div>
вместо ожидаемого результата:
<div class="field"><label for="username">Username</label>
<input type="text" name="username"/></div>
Если я изменю функцию и добавлю оператор печати:
(defun form-field (type name label)
(cl-who:with-html-output (*standard-output* nil)
(print label)
(:div :class "field"
(:label :for name label)
(:input :type type :name name))))
Строка «Имя пользователя»успешно выводится (но все еще игнорируется в HTML) ... есть идеи, что может вызвать это?
Имейте в виду, я вызываю эту функцию в cl-who:with-html-output-to-string
для использования с hunchentoot.