Я не писал никаких CGI-скриптов, но использовал xmlgen
для генерации xml. Скорее всего, это будет проще, чем то, что у вас там было - поскольку в Emacs легко создавать списки и автоматически конвертировать их в xml / html.
Этот код генерирует ту же строку:
(require 'xmlgen)
(princ "Content-type: text/html; charset=utf-8\n\n")
(princ (xmlgen '(html (body (h1 :style "text-align: center" "Elisp CGI Programming")
(table :style "border: 1px solid"
(tr (th "One")
(th "Two"))
(tr (th "A")
(th "B")))))))