From 012ff5182d526b3997c42f08b89553b40524b0d7 Mon Sep 17 00:00:00 2001 From: Lanius Trolling Date: Fri, 7 Oct 2022 15:20:05 -0400 Subject: [PATCH] Fix media sizing on mobile --- build.gradle.kts | 10 +++++----- src/main/kotlin/info/mechyrdia/Configuration.kt | 2 +- src/main/kotlin/info/mechyrdia/lore/parser_tags.kt | 2 +- src/main/kotlin/info/mechyrdia/lore/parser_toc.kt | 5 ++++- src/main/resources/static/style.css | 4 ++++ 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 75d369c..1dd99da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,9 +16,9 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.2") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.2") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.2") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.4") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.3") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3") @@ -27,8 +27,8 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5") - implementation("org.slf4j:slf4j-api:1.7.32") - implementation("ch.qos.logback:logback-classic:1.2.10") + implementation("org.slf4j:slf4j-api:1.7.36") + implementation("ch.qos.logback:logback-classic:1.2.11") } tasks.withType { diff --git a/src/main/kotlin/info/mechyrdia/Configuration.kt b/src/main/kotlin/info/mechyrdia/Configuration.kt index 427958e..8f5d51b 100644 --- a/src/main/kotlin/info/mechyrdia/Configuration.kt +++ b/src/main/kotlin/info/mechyrdia/Configuration.kt @@ -36,9 +36,9 @@ data class Configuration( return JsonConfigCodec.decodeFromString(serializer(), json).also { currentConfig = it } } - @OptIn(ExperimentalSerializationApi::class) val JsonConfigCodec = Json { prettyPrint = true + @OptIn(ExperimentalSerializationApi::class) prettyPrintIndent = "\t" useAlternativeNames = false diff --git a/src/main/kotlin/info/mechyrdia/lore/parser_tags.kt b/src/main/kotlin/info/mechyrdia/lore/parser_tags.kt index 63483f1..b9ac1f8 100644 --- a/src/main/kotlin/info/mechyrdia/lore/parser_tags.kt +++ b/src/main/kotlin/info/mechyrdia/lore/parser_tags.kt @@ -307,7 +307,7 @@ enum class TextParserFormattingTag(val type: TextParserTagType) { } ?: (null to null) fun getTableSizeAttributes(width: Int?, height: Int?) = (width?.let { " colspan=\"$it\"" } ?: "") + (height?.let { " rowspan=\"$it\"" } ?: "") - fun getImageSizeAttributes(width: Int?, height: Int?) = " style=\"" + (width?.let { "width: ${it * 0.025}vmin;" } ?: "") + (height?.let { "height: ${it * 0.025}vmin;" } ?: "") + "\"" + fun getImageSizeAttributes(width: Int?, height: Int?) = " style=\"" + (width?.let { "width: calc(var(--media-size-unit) * $it);" } ?: "") + (height?.let { "height: calc(var(--media-size-unit) * $it);" } ?: "") + "\"" } } diff --git a/src/main/kotlin/info/mechyrdia/lore/parser_toc.kt b/src/main/kotlin/info/mechyrdia/lore/parser_toc.kt index 9e17a38..9aad1df 100644 --- a/src/main/kotlin/info/mechyrdia/lore/parser_toc.kt +++ b/src/main/kotlin/info/mechyrdia/lore/parser_toc.kt @@ -7,6 +7,9 @@ class TableOfContentsBuilder { fun add(text: String, level: Int, toAnchor: String) { if (level == 0) { + if (title != null) + throw IllegalArgumentException("[h1] cannot appear multiple times in an article!") + title = text return } @@ -16,7 +19,7 @@ class TableOfContentsBuilder { levels.add(1) levels.joinToString(separator = ".") { it.toString() } } else - throw IllegalArgumentException("[h${level + 1}] cannot come after [h${levels.size + 1}]!") + throw IllegalArgumentException("[h${level + 1}] cannot appear after [h${levels.size + 1}]!") } else { levels.addAll(levels.take(level).also { levels.clear() }.mapIndexed { i, n -> if (i == level - 1) n + 1 else n }) levels.joinToString(separator = ".") { it.toString() } diff --git a/src/main/resources/static/style.css b/src/main/resources/static/style.css index fc410bb..aee6e40 100644 --- a/src/main/resources/static/style.css +++ b/src/main/resources/static/style.css @@ -11,6 +11,8 @@ html { --h2-size: 1.4em; --h3-size: 1.2em; + --media-size-unit: 0.035vw; + /*************** * color params * ***************/ @@ -332,6 +334,8 @@ aside.mobile img { --h1-size: 2.6em; --h2-size: 2.2em; --h3-size: 1.8em; + + --media-size-unit: 0.025vmin; } div#bg { -- 2.25.1