(in-package :html-jen) (defun başlık-bul (node) (loop :for çocuk :in (children node) :do (when (eq :h1 (tag çocuk)) (return (value çocuk))))) (defun şablon-yap (node) (ebeveyn-node! :html (list (ebeveyn-node! :head (list (çocuk-node! :title (başlık-bul node)) ;;; geçici hack çünkü /> ile biten tagleri düzgün basamıyorum " ")) (ebeveyn-node! :body (list node))))) (defun şablonlu-yazdır (node &optional (stream *standard-output*)) (format stream "~%~%") (node->html (şablon-yap node) stream)) (defun markdown->html (kaynak hedef) (let ((okur (okur! kaynak))) (let ((root (markdown-ayrıştır okur)) (*print-case* :downcase)) (with-open-file (dış hedef :direction :output :if-does-not-exist :create :if-exists :supersede) (şablonlu-yazdır root dış))))) (defun ana () (let ((args sb-ext:*posix-argv*)) (assert (= 3 (length args))) (let ((kaynak (nth 1 args)) (hedef (nth 2 args))) (markdown->html kaynak hedef))))