move html tag into function
Signed-off-by: Superkooka <aymeric.gueracague@gmail.com>
This commit is contained in:
parent
9d01f74cd5
commit
842841acff
25
blog.janet
25
blog.janet
|
|
@ -65,29 +65,38 @@
|
||||||
(defn ast-to-html
|
(defn ast-to-html
|
||||||
"Convert an AST to html"
|
"Convert an AST to html"
|
||||||
[ast]
|
[ast]
|
||||||
|
(defn to-codeblock [lang value] (string "<pre><code>" (htmlspecialchars value) "</code></pre>"))
|
||||||
|
(defn to-codeline [value] (string "<code>" (ast-to-html value) "</code>"))
|
||||||
|
(defn to-heading [level value] (string "<h" level ">" (htmlspecialchars value) "</h" level ">"))
|
||||||
|
(defn to-quote [value] (string "<blockquote>" (ast-to-html value) "</blockquote>"))
|
||||||
|
(defn to-line [value] (string "<p>" (ast-to-html value) "</p>"))
|
||||||
|
(defn to-italic [value] (string "<em>" (ast-to-html value) "</em>"))
|
||||||
|
(defn to-bold [value] (string "<strong>" (ast-to-html value) "</strong>"))
|
||||||
|
(defn to-stroke [value] (string "<stroke>" (ast-to-html value) "</stroke>"))
|
||||||
|
|
||||||
(string/join
|
(string/join
|
||||||
(map
|
(map
|
||||||
|(match $0
|
|(match $0
|
||||||
[:code-block lang value]
|
[:code-block lang value]
|
||||||
(string "<pre><code>" (htmlspecialchars value) "</code></pre>")
|
(to-codeblock lang value)
|
||||||
[:heading level value]
|
[:heading level value]
|
||||||
(string "<h" level ">" (htmlspecialchars value) "</h" level ">")
|
(to-heading level value)
|
||||||
[:quote value]
|
[:quote value]
|
||||||
(string "<blockquote>" (ast-to-html value) "</blockquote>")
|
(to-quote value)
|
||||||
[:hr]
|
[:hr]
|
||||||
"<hr/>"
|
"<hr/>"
|
||||||
[:line value]
|
[:line value]
|
||||||
(string "<p>" (ast-to-html value) "</p>")
|
(to-line value)
|
||||||
[:text value]
|
[:text value]
|
||||||
(htmlspecialchars value)
|
(htmlspecialchars value)
|
||||||
[:italic value]
|
[:italic value]
|
||||||
(string "<em>" (ast-to-html value) "</em>")
|
(to-italic value)
|
||||||
[:stroke value]
|
[:stroke value]
|
||||||
(string "<stroke>" (ast-to-html value) "</stroke>")
|
(to-stroke value)
|
||||||
[:bold value]
|
[:bold value]
|
||||||
(string "<strong>" (ast-to-html value) "</strong>")
|
(to-bold value)
|
||||||
[:code-line value]
|
[:code-line value]
|
||||||
(string "<code>" (ast-to-html value) "</code>")
|
(to-codeline value)
|
||||||
_
|
_
|
||||||
(error (string "Invalid symbol: " (get $0 0))))
|
(error (string "Invalid symbol: " (get $0 0))))
|
||||||
ast)
|
ast)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue