From 939d28ab1f76e94fc091b36993e3197d178bedf5 Mon Sep 17 00:00:00 2001 From: Lanius Trolling Date: Tue, 23 Jul 2024 14:15:03 -0400 Subject: [PATCH] Rework [code_block] tag --- .../kotlin/info/mechyrdia/data/Data.kt | 3 ++- .../info/mechyrdia/data/ViewsComment.kt | 22 +++++++++++++++++++ .../kotlin/info/mechyrdia/lore/Fonts.kt | 3 ++- .../info/mechyrdia/lore/ParserBuilder.kt | 3 ++- .../kotlin/info/mechyrdia/lore/ParserHtml.kt | 22 ++++++++++--------- .../kotlin/info/mechyrdia/lore/ViewsPrefs.kt | 6 +++-- .../kotlin/info/mechyrdia/lore/ViewsRobots.kt | 3 ++- 7 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/jvmMain/kotlin/info/mechyrdia/data/Data.kt b/src/jvmMain/kotlin/info/mechyrdia/data/Data.kt index bfc810e..b1f1b40 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/data/Data.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/data/Data.kt @@ -111,7 +111,8 @@ const val MONGODB_ID_KEY = "_id" enum class IndexSort { ASCENDING, - DESCENDING; + DESCENDING, + ; } typealias IndexSortProperty = Pair, IndexSort> diff --git a/src/jvmMain/kotlin/info/mechyrdia/data/ViewsComment.kt b/src/jvmMain/kotlin/info/mechyrdia/data/ViewsComment.kt index 788075c..bb2abc6 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/data/ViewsComment.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/data/ViewsComment.kt @@ -275,6 +275,15 @@ suspend fun ApplicationCall.commentHelpPage(): HTML.() -> Unit = page("Commentin +" text" } } + tr { + td { +"[code_block]Text goes here[/code_block]" } + td { + span { + style = "font-family:JetBrains Mono" + +"Marks a block of text as pre-formatted and puts it into monospaced font" + } + } + } tr { td { +"[align=(left, center, right, or justify)]Text goes here[/align]" } td { @@ -470,6 +479,19 @@ suspend fun ApplicationCall.commentHelpPage(): HTML.() -> Unit = page("Commentin } } } + tr { + td { +"[epoch]893078880000[/epoch]" } + td { + +"Takes an offset of " + strong { +"milliseconds" } + +" counted from " + a(href = "https://en.wikipedia.org/wiki/Unix_time") { + rel = "nofollow" + +"Unix time" + } + +", and converts it to a client-localized date-time." + } + } tr { td { +"[lang=tylan]Rheagda Tulasra[/lang]" } td { diff --git a/src/jvmMain/kotlin/info/mechyrdia/lore/Fonts.kt b/src/jvmMain/kotlin/info/mechyrdia/lore/Fonts.kt index 8baa193..72dc3bf 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/lore/Fonts.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/lore/Fonts.kt @@ -39,7 +39,8 @@ enum class TextAlignment { override fun processWidth(widthDiff: Int): Int { return widthDiff } - }; + }, + ; abstract fun processWidth(widthDiff: Int): Int } diff --git a/src/jvmMain/kotlin/info/mechyrdia/lore/ParserBuilder.kt b/src/jvmMain/kotlin/info/mechyrdia/lore/ParserBuilder.kt index 17ecfb4..70d8be5 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/lore/ParserBuilder.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/lore/ParserBuilder.kt @@ -147,7 +147,8 @@ enum class RepliesBuilderTag(val type: BuilderTag) { env.context.addReplyTag(Id(id)) } } - ); + ), + ; companion object { val asTags = LexerTags(entries.associate { it.name to it.type }) diff --git a/src/jvmMain/kotlin/info/mechyrdia/lore/ParserHtml.kt b/src/jvmMain/kotlin/info/mechyrdia/lore/ParserHtml.kt index 81e86a4..7eefe4c 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/lore/ParserHtml.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/lore/ParserHtml.kt @@ -250,7 +250,8 @@ enum class HtmlTagMode { INLINE, BLOCK, ITEM, - LAYOUT; + LAYOUT, + ; fun combine(env: LexerTagEnvironment, subNodes: ParserTree) = when (this) { INLINE -> HtmlLexerProcessor.combineInline(env, subNodes) @@ -405,14 +406,17 @@ enum class FactbookFormattingTag(val type: HtmlLexerTag) { COLOR(HtmlTagLexerTag(attributes = ::processColor, tagMode = HtmlTagMode.INLINE, tagCreator = TagConsumer<*>::span.toTagCreator())), IPA(HtmlTagLexerTag(attributes = mapOf("style" to "font-family:DejaVu Sans"), tagMode = HtmlTagMode.INLINE, tagCreator = TagConsumer<*>::span.toTagCreator())), CODE(HtmlTagLexerTag(attributes = mapOf("style" to "font-family:JetBrains Mono"), tagMode = HtmlTagMode.INLINE, tagCreator = TagConsumer<*>::span.toTagCreator())), - CODE_BLOCK(HtmlTagLexerTag(tagCreator = { block -> - div { - style = "font-family:JetBrains Mono" - pre { - block() + CODE_BLOCK(HtmlLexerTag { _, _, subNodes -> + val blockText = subNodes.unparse() + ({ + div { + style = "font-family:JetBrains Mono" + pre { + +blockText + } } - } - })), + }) + }), BLOCKQUOTE(HtmlTagLexerTag(tagCreator = TagConsumer<*>::blockQuote.toTagCreator())), ERROR(HtmlTagLexerTag(attributes = mapOf("style" to "color: #f00"), tagCreator = TagConsumer<*>::div.toTagCreator())), @@ -685,8 +689,6 @@ enum class CommentFormattingTag(val type: HtmlLexerTag) { CODE(FactbookFormattingTag.CODE.type), CODE_BLOCK(FactbookFormattingTag.CODE_BLOCK.type), - ERROR(HtmlTagLexerTag(attributes = mapOf("style" to "color: #f00"), tagCreator = TagConsumer<*>::div.toTagCreator())), - ALIGN(FactbookFormattingTag.ALIGN.type), ASIDE(FactbookFormattingTag.ASIDE.type), diff --git a/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsPrefs.kt b/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsPrefs.kt index faf41db..c098c31 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsPrefs.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsPrefs.kt @@ -11,7 +11,8 @@ import kotlinx.serialization.serializer enum class PageTheme(val attributeValue: String?) { SYSTEM(null), LIGHT("light"), - DARK("dark"); + DARK("dark"), + ; } object PageThemeSerializer : KeyedEnumSerializer(PageTheme.entries, PageTheme::attributeValue) @@ -36,7 +37,8 @@ enum class April1stMode { NEVER { override val isEnabled: Boolean get() = false - }; + }, + ; abstract val isEnabled: Boolean } diff --git a/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsRobots.kt b/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsRobots.kt index efd41e7..ad3b879 100644 --- a/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsRobots.kt +++ b/src/jvmMain/kotlin/info/mechyrdia/lore/ViewsRobots.kt @@ -18,7 +18,8 @@ enum class SitemapChangeFrequency { WEEKLY, DAILY, HOURLY, - ALWAYS; + ALWAYS, + ; } val SitemapChangeFrequency.xmlValue: String -- 2.25.1