Как вы можете передать html-контекст cl-who в вызываемый subfn?

Я использую cl-кто для создания HTML. В основном я делаю что-то вроде: '' '

(defun main ()
  (with-html-output-to-string
   (*standard-output* nil :prologue t)
   (:html
    (:body
    ...

Любой вывод (в стандартный вывод), который я делаю в этой функции или в любом вызываемом subfn, корректно передается потоку HTML (строка). Тем не менее, я, очевидно, не могу использовать обычные (:......) теги внутри ниже fns. То есть я могу их использовать, но они ничего не генерируют. Например:

(defun main ()
  (with-html-output-to-string
   (*standard-output* nil :prologue t)
   (:html
    (:body
      (:table (:tr (:td (format t "left cell"))
                   (right-cell)))))))

(defun right-cell () 
   (format t "<td>Right cell</td>"))

Работает отлично:

"left cellRight cell"

[Я пытаюсь показать фактический вывод HTML выше, но не знаю, как его процитировать, чтобы он появился в моем вопросе. Если вы посмотрите на источник вопроса, вы увидите сгенерированный HTML]

Но это:

(defun right-cell () 
   (:td (format t "Right cell")))

get и undefined function:: tr... достаточно разумно. Но как мне это сделать?

Это компилирует:

 (defun right-cell ()                                                                                                       
  (with-html-output-to-string                                                                                                  
    (*standard-output* nil :prologue t)                                                                                         
       (htm (:td (format t "Right cell")))))

Но не работает (Примечание: нет правильной ячейки!):

"левая клетка"

[То же]

и я пробовал различные другие варианты. Итак, если не считать рукописного кода s и s, как я могу получить HTML-контекст CL-WHO в subfn?

Спасибо!

0 ответов

Другие вопросы по тегам