From 877e4d8bf87bc03ebfed60e822a6ba1b7a6dbc01 Mon Sep 17 00:00:00 2001 From: colin Date: Mon, 12 Aug 2024 07:29:26 -0700 Subject: Add: html-string and pretty-print control --- src/hypnotisml.lisp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/hypnotisml.lisp') diff --git a/src/hypnotisml.lisp b/src/hypnotisml.lisp index 13e4bab..adbb14d 100644 --- a/src/hypnotisml.lisp +++ b/src/hypnotisml.lisp @@ -4,9 +4,11 @@ ;;; UTILITIES +(def:var *noindent* :init nil :doc "Turns off indentation") (def:var *indent* :doc "Current indentation" :init 0) (defun indent (stream &optional (indent *indent*)) - (loop :repeat indent :do (write-char #\space stream))) + (unless *noindent* + (loop :repeat indent :do (write-char #\space stream)))) (let ((counter 0) (hostid (sxhash (list (lisp-implementation-type) @@ -263,6 +265,11 @@ already present in the element." ;;; RENDERING +(defun html-string (elem &key (pretty t)) + (let ((*noindent* (not pretty))) + (with-output-to-string (out) + (html elem out)))) + (defgeneric html (elem stream) (:documentation "Renders an element as HTML")) -- cgit v1.2.3