From 9a61f49ac110a3e1e7ecaf6493655b8747d593fa Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Wed, 22 Dec 2021 20:03:17 +0300 Subject: Fix css bugs wih link and table row (#2284) * Remove extra top margin in paragraph * Remove margin-bottom from platform-hinted * Fix link underlining in table and anchor icon * Make breakable names of constructors * Add test for breakable name of constructor --- .../src/main/kotlin/renderers/html/HtmlRenderer.kt | 4 +- .../documentables/DefaultPageCreator.kt | 2 +- .../base/src/main/resources/dokka/styles/style.css | 6 +-- .../content/functions/ContentForConstructors.kt | 48 ++++++++++++++++++++++ 4 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 plugins/base/src/test/kotlin/content/functions/ContentForConstructors.kt diff --git a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt index c3b15738..6b30fc12 100644 --- a/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt +++ b/plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt @@ -450,7 +450,9 @@ open class HtmlRenderer( it.filter { sourceSetRestriction == null || it.sourceSets.any { s -> s in sourceSetRestriction } } .forEach { span("inline-flex") { - it.build(this, pageContext, sourceSetRestriction) + div { + it.build(this, pageContext, sourceSetRestriction) + } if (it is ContentLink && !anchorDestination.isNullOrBlank()) buildAnchorCopyButton( anchorDestination ) diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 1b581355..06bc550b 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -261,7 +261,7 @@ open class DefaultPageCreator( needsAnchors = true, extra = PropertyContainer.empty() + SimpleAttr.header("Constructors") ) { - link(it.name, it.dri, kind = ContentKind.Main) + link(it.name, it.dri, kind = ContentKind.Main, styles = setOf(ContentStyle.RowTitle)) sourceSetDependentHint( it.dri, it.sourceSets.toSet(), diff --git a/plugins/base/src/main/resources/dokka/styles/style.css b/plugins/base/src/main/resources/dokka/styles/style.css index 4954215f..7ebf675e 100644 --- a/plugins/base/src/main/resources/dokka/styles/style.css +++ b/plugins/base/src/main/resources/dokka/styles/style.css @@ -228,6 +228,7 @@ html ::-webkit-scrollbar-thumb { margin-top: 8px; } +p.paragraph:first-child, .brief p.paragraph { margin-top: 0; } @@ -746,7 +747,6 @@ td.content { } .main-subrow .anchor-icon { - padding: 0 8px; opacity: 0; transition: 0.2s 0.5s; } @@ -765,8 +765,9 @@ td.content { .main-subrow .anchor-wrapper { position: relative; - width: 16px; + width: 24px; height: 16px; + margin-left: 3px; } .inline-flex { @@ -776,7 +777,6 @@ td.content { .platform-hinted { flex: auto; display: block; - margin-bottom: 5px; } .platform-hinted > .platform-bookmarks-row > .platform-bookmark { diff --git a/plugins/base/src/test/kotlin/content/functions/ContentForConstructors.kt b/plugins/base/src/test/kotlin/content/functions/ContentForConstructors.kt new file mode 100644 index 00000000..832fa6f6 --- /dev/null +++ b/plugins/base/src/test/kotlin/content/functions/ContentForConstructors.kt @@ -0,0 +1,48 @@ +package content.functions + +import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest +import org.jetbrains.dokka.model.DClass +import org.jetbrains.dokka.model.dfs +import org.jetbrains.dokka.pages.* +import org.junit.jupiter.api.Test +import utils.assertNotNull +import kotlin.test.assertEquals + +class ContentForConstructors : BaseAbstractTest() { + private val testConfiguration = dokkaConfiguration { + sourceSets { + sourceSet { + sourceRoots = listOf("src/") + analysisPlatform = "jvm" + } + } + } + + @Test + fun `constructor name should have RowTitle style`() { + testInline(""" + |/src/main/kotlin/test/source.kt + |package test + | + |/** + | * Dummy text. + | */ + |class Example(val exampleParameter: Int) { + |} + """.trimIndent(), testConfiguration) { + pagesTransformationStage = { module -> + val classPage = + module.dfs { it.name == "Example" && (it as ContentPage).documentable is DClass } as ContentPage + val constructorsTable = + classPage.content.dfs { it is ContentTable && it.dci.kind == ContentKind.Constructors } as ContentTable + + assertEquals(1, constructorsTable.children.size) + val primary = constructorsTable.children.first() + val constructorName = + primary.dfs { (it as? ContentText)?.text == "Example" }.assertNotNull("constructorName") + + assert(ContentStyle.RowTitle in constructorName.style) + } + } + } +} \ No newline at end of file -- cgit