From 80152b609225285251a49d1532bf8746bfbab35d Mon Sep 17 00:00:00 2001 From: riton Date: Fri, 28 Mar 2025 21:52:26 +0300 Subject: =?UTF-8?q?kaynak=20dosyalar=20src=20dizinine=20ta=C5=9F=C4=B1nd?= =?UTF-8?q?=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ana.lisp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/ana.lisp (limited to 'src/ana.lisp') diff --git a/src/ana.lisp b/src/ana.lisp new file mode 100644 index 0000000..4b74169 --- /dev/null +++ b/src/ana.lisp @@ -0,0 +1,36 @@ +(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)))) -- cgit v1.2.3