diff options
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers')
-rw-r--r-- | plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt | 3 | ||||
-rw-r--r-- | plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt | 32 |
2 files changed, 26 insertions, 9 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt index a6eec0b9..d63e8da6 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt @@ -714,13 +714,14 @@ open class HtmlRenderer( consumer.onTagContentEntity(Entities.nbsp) buildText(textNode, unappliedStyles - TextStyle.Indented) } - unappliedStyles.size == 1 && unappliedStyles.contains(TextStyle.Cover) -> buildBreakableText(textNode.text) unappliedStyles.isNotEmpty() -> { val styleToApply = unappliedStyles.first() applyStyle(styleToApply){ buildText(textNode, unappliedStyles - styleToApply) } } + textNode.hasStyle(ContentStyle.RowTitle) || textNode.hasStyle(TextStyle.Cover) -> + buildBreakableText(textNode.text) else -> text(textNode.text) } } diff --git a/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt b/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt index 65bf59fa..b9eab293 100644 --- a/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt +++ b/plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt @@ -13,7 +13,7 @@ fun FlowContent.buildTextBreakableAfterCapitalLetters(name: String) { buildBreakableText(withOutSpaces.last()) } else { val content = name.replace(Regex("(?!^)([A-Z])"), " $1").split(" ") - joinToHtml(content){ + joinToHtml(content) { it } } @@ -21,20 +21,36 @@ fun FlowContent.buildTextBreakableAfterCapitalLetters(name: String) { fun FlowContent.buildBreakableDotSeparatedHtml(name: String) { val phrases = name.split(".") - joinToHtml(phrases){ - "$it." + phrases.forEachIndexed { i, e -> + if (e.length > 10) { + buildBreakableText(e) + } else { + val elementWithOptionalDot = + if (i != phrases.lastIndex) { + "$e." + } else { + e + } + buildBreakableHtmlElement(elementWithOptionalDot) + } } } private fun FlowContent.joinToHtml(elements: List<String>, onEach: (String) -> String) { elements.dropLast(1).forEach { - span { - +onEach(it) - } - wbr { } + buildBreakableHtmlElement(onEach(it)) } span { - +elements.last() + buildBreakableHtmlElement(elements.last(), last = true) + } +} + +private fun FlowContent.buildBreakableHtmlElement(element: String, last: Boolean = false) { + span { + +element + } + if (!last) { + wbr { } } } |