Coverage Summary for Class: AlertTextContentNodeRenderer (io.heapy.kotmark.ext.gfm.alerts.internal)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| AlertTextContentNodeRenderer |
100%
(1/1)
|
100%
(3/3)
|
62.5%
(5/8)
|
88.9%
(16/18)
|
81.9%
(59/72)
|
package io.heapy.kotmark.ext.gfm.alerts.internal
import io.heapy.kotmark.ext.gfm.alerts.Alert
import io.heapy.kotmark.ext.gfm.alerts.AlertTitle
import io.heapy.kotmark.node.Node
import io.heapy.kotmark.renderer.text.LineBreakRendering
import io.heapy.kotmark.renderer.text.TextContentNodeRendererContext
class AlertTextContentNodeRenderer(
private val context: TextContentNodeRendererContext,
private val allowedTypes: Map<String, String>,
) : AlertNodeRenderer() {
private val writer = context.writer
override fun renderAlert(alert: Alert) {
val defaultTitle =
allowedTypes[alert.type]
?: error("Unknown alert type: ${alert.type}")
val first = alert.firstChild
if (first is AlertTitle) {
renderChildren(first)
} else {
writer.write(defaultTitle)
}
if (alert.hasBody()) {
if (context.lineBreakRendering == LineBreakRendering.STRIP) {
writer.write(": ")
} else {
writer.block()
}
renderChildren(alert)
}
writer.block()
}
override fun renderNode(node: Node) {
context.render(node)
}
}