From 0133f74b9168ad7cd360b2cc2bcc3bf1bd0e9031 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Thu, 31 Aug 2023 12:38:06 +0200
Subject: [PATCH] Implement HTML description lists

---
 .../briarproject/briar/desktop/blog/HtmlText.kt    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/HtmlText.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/HtmlText.kt
index b7871dd913..daa6901399 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/HtmlText.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/HtmlText.kt
@@ -97,9 +97,10 @@ fun HtmlText(
     //    "a", "b"/"strong", "i"/"em"/"cite", "u", "strike", "sub", "sup", "q", "small"
     //    "ul", "ol", "li"
     //    "br", "p", "blockquote", "pre",
+    //    "dd", "dl", "dt",
 
     // Elements from Jsoup's safelist we could still add support for:
-    //    "dd", "dl", "dt", "span"
+    //    "span"
 
     val h1 = MaterialTheme.typography.h1
     val h2 = MaterialTheme.typography.h2
@@ -298,7 +299,16 @@ fun HtmlText(
                         withinPre = false
                         pop()
                     }
-                )
+                ),
+                // Implementation for description lists. Ignore "dl" and just add indent for "dt" and "dd".
+                "dt" to HtmlNode(
+                    start = { pushIndent(0.sp) },
+                    end = { popIndent() }
+                ),
+                "dd" to HtmlNode(
+                    start = { pushIndent(20.sp) },
+                    end = { popIndent() }
+                ),
             )
 
             val doc = Jsoup.parse(html)
-- 
GitLab