diff options
| author | Linnea Gräf <nea@nea.moe> | 2024-05-02 23:32:11 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2024-05-02 23:42:15 +0200 |
| commit | 7e24b934bbd424669a1c935894dd8799d4db0348 (patch) | |
| tree | ea17a94215768ed6dea8a306a0bd58dfd936fb5f /src/main/kotlin/moe/nea/blog/gen | |
| parent | ebe41fbbd8b537b3008c5c52d2c9a496694ea281 (diff) | |
| download | blog-infra-7e24b934bbd424669a1c935894dd8799d4db0348.tar.gz blog-infra-7e24b934bbd424669a1c935894dd8799d4db0348.tar.bz2 blog-infra-7e24b934bbd424669a1c935894dd8799d4db0348.zip | |
Add note blocks and an integration test
Diffstat (limited to 'src/main/kotlin/moe/nea/blog/gen')
| -rw-r--r-- | src/main/kotlin/moe/nea/blog/gen/HtmlFragmentGenerator.kt | 10 | ||||
| -rw-r--r-- | src/main/kotlin/moe/nea/blog/gen/MD2HtmlGenerator.kt | 10 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/kotlin/moe/nea/blog/gen/HtmlFragmentGenerator.kt b/src/main/kotlin/moe/nea/blog/gen/HtmlFragmentGenerator.kt index 3ba4f79..7702b75 100644 --- a/src/main/kotlin/moe/nea/blog/gen/HtmlFragmentGenerator.kt +++ b/src/main/kotlin/moe/nea/blog/gen/HtmlFragmentGenerator.kt @@ -4,4 +4,12 @@ import moe.nea.blog.md.MarkdownElement fun interface HtmlFragmentGenerator<T : MarkdownElement> { fun generateHtml(htmlGenerator: MD2HtmlGenerator, node: T): HtmlFragment -}
\ No newline at end of file +} + +abstract class DefHtmlFragmentGenerator<T : MarkdownElement> : HtmlFragmentGenerator<T> { + override fun generateHtml(htmlGenerator: MD2HtmlGenerator, node: T): HtmlFragment { + return HtmlDsl().apply { makeHtml(htmlGenerator, node) }.intoFragment() + } + + abstract fun HtmlDsl.makeHtml(generator: MD2HtmlGenerator, node: T) +} diff --git a/src/main/kotlin/moe/nea/blog/gen/MD2HtmlGenerator.kt b/src/main/kotlin/moe/nea/blog/gen/MD2HtmlGenerator.kt index 0077469..9c9299e 100644 --- a/src/main/kotlin/moe/nea/blog/gen/MD2HtmlGenerator.kt +++ b/src/main/kotlin/moe/nea/blog/gen/MD2HtmlGenerator.kt @@ -8,6 +8,7 @@ import moe.nea.blog.md.FormatSequence import moe.nea.blog.md.Header import moe.nea.blog.md.Italics import moe.nea.blog.md.Link +import moe.nea.blog.md.MDList import moe.nea.blog.md.MarkdownElement import moe.nea.blog.md.Paragraph import moe.nea.blog.md.Whitespace @@ -49,6 +50,15 @@ class MD2HtmlGenerator { registerFragmentGenerator<Italics> { generator, node -> element("em", mapOf(), generator.generateHtml(node.inner)) } + registerFragmentGenerator<MDList> { generator, node -> + element("ul", mapOf()) { + for (item in node.elements) { + element("li", mapOf()) { + +generator.generateHtml(item) + } + } + } + } registerFragmentGenerator<Link> { generator, node -> element("a", mapOf("href" to node.target), generator.generateHtml(node.label ?: Begin())) } |
