(setf *print-case* :downcase)
((tag-name :initarg :tag-name :accessor tag-name :initform nil)
(text :initarg :text :accessor text :initform nil)
(classes :initarg :classes :accessor classes :initform nil)
(children :initarg :children :accessor children :initform nil)
(father :initarg :father :accessor father :initform nil)))
(defun father-child (father child)
(setf (father child) father)
(push child (children father)))
(defparameter root (make-instance 'dom-element :tag-name 'html))
(defparameter body (make-instance 'dom-element))
(defparameter div (make-instance 'dom-element))
(setf (tag-name div) 'div)
(setf (tag-name body) 'body)
(setf (text div) "oh my cat is nice")
(format t "~vt <~a" nesting-value (tag-name element))
(format t " class=\"~{~a ~}\"" (classes element)))
(format t "~vt ~a~%" (+ nesting-value 3) (text element)))
(dolist (current (children element))
(format t "~vt </~a>~%" nesting-value (tag-name element))
(format t "<!DOCTYPE html>~%")