Coverage Summary for Class: HighlightExtensionKt (io.heapy.kotmark.ext.highlight)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| HighlightExtensionKt |
0%
(0/1)
|
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/4)
|
package io.heapy.kotmark.ext.highlight
import io.heapy.kotmark.Extension
import io.heapy.kotmark.ExtensionsBuilder
import io.heapy.kotmark.ext.highlight.internal.HighlightDelimiterProcessor
import io.heapy.kotmark.ext.highlight.internal.HighlightHtmlNodeRenderer
import io.heapy.kotmark.ext.highlight.internal.HighlightMarkdownNodeRenderer
import io.heapy.kotmark.ext.highlight.internal.HighlightTextContentNodeRenderer
import io.heapy.kotmark.parser.Parser
import io.heapy.kotmark.renderer.NodeRenderer
import io.heapy.kotmark.renderer.html.HtmlRenderer
import io.heapy.kotmark.renderer.markdown.MarkdownNodeRendererContext
import io.heapy.kotmark.renderer.markdown.MarkdownNodeRendererFactory
import io.heapy.kotmark.renderer.markdown.MarkdownRenderer
import io.heapy.kotmark.renderer.text.TextContentRenderer
import kotlin.jvm.JvmStatic
class HighlightExtension private constructor() :
Parser.ParserExtension,
HtmlRenderer.HtmlRendererExtension,
TextContentRenderer.TextContentRendererExtension,
MarkdownRenderer.MarkdownRendererExtension {
override fun extend(parserConfiguration: Parser.Configuration) {
parserConfiguration.customDelimiterProcessor(HighlightDelimiterProcessor())
}
override fun extend(rendererConfiguration: HtmlRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(::HighlightHtmlNodeRenderer)
}
override fun extend(rendererConfiguration: TextContentRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(::HighlightTextContentNodeRenderer)
}
override fun extend(rendererConfiguration: MarkdownRenderer.Configuration) {
rendererConfiguration.nodeRendererFactory(
object : MarkdownNodeRendererFactory {
override val specialCharacters: Set<Char> = setOf('=')
override fun create(context: MarkdownNodeRendererContext): NodeRenderer =
HighlightMarkdownNodeRenderer(context)
},
)
}
companion object {
@JvmStatic
fun create(): Extension = HighlightExtension()
}
}
/** Creates and appends [HighlightExtension]. */
fun ExtensionsBuilder.highlight() {
add(HighlightExtension.create())
}