Inline SVG images
authorLanius Trolling <lanius@laniustrolling.dev>
Mon, 5 Sep 2022 16:55:49 +0000 (12:55 -0400)
committerLanius Trolling <lanius@laniustrolling.dev>
Mon, 5 Sep 2022 16:55:49 +0000 (12:55 -0400)
src/main/kotlin/info/mechyrdia/lore/parser_tags.kt

index c209ed418737ab9dbf3b7a61b24ce50e64a46ed4..2ca56d1d2c32a9ee4581a4c668891ebbd15c6e60 100644 (file)
@@ -1,5 +1,8 @@
 package info.mechyrdia.lore
 
+import info.mechyrdia.Configuration
+import java.io.File
+
 sealed class TextParserTagType<TContext> {
        data class Direct<TContext>(val beginFunc: (String?, TContext) -> String, val endFunc: (TContext) -> String) : TextParserTagType<TContext>() {
                fun begin(param: String?, context: TContext) = beginFunc(param, context)
@@ -145,7 +148,13 @@ enum class TextParserFormattingTag(val type: TextParserTagType<Unit>) {
                        val (width, height) = getSizeParam(tagParam)
                        val sizeAttrs = getImageSizeAttributes(width, height)
                        
-                       "<a href=\"/assets/images/$imageUrl\" title=\"Click to view full size\"><img src=\"/assets/images/$imageUrl\"$sizeAttrs/></a>"
+                       if (imageUrl.endsWith(".svg")) {
+                               val imageFile = File(Configuration.CurrentConfiguration.assetDir, "images/$imageUrl")
+                               val imageSvg = imageFile.readText().replace("<svg", "<svg$sizeAttrs")
+                               
+                               imageSvg
+                       } else
+                               "<a href=\"/assets/images/$imageUrl\" title=\"Click to view full size\"><img src=\"/assets/images/$imageUrl\"$sizeAttrs/></a>"
                }
        ),
        MODEL(