blob: 4b741697923b01382d5010803e67f4b0c054dd2b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
" <link href=\"index.css\" rel=\"stylesheet\">
"))
(ebeveyn-node! :body
(list node)))))
(defun şablonlu-yazdır (node &optional (stream *standard-output*))
(format stream "<!DOCTYPE html>~%~%")
(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))))
|