From fb94ad2fd4d31e773068533e6f94d4502a7e0d39 Mon Sep 17 00:00:00 2001
From: "zhangyu.0602" <975135274@qq.com>
Date: Tue, 27 Jun 2023 12:39:12 +0800
Subject: [PATCH] Reverse the order of html inline `setSpan`
---
.../markwon/app/samples/html/HtmlCssStyleParserSample.java | 5 +++--
.../java/io/noties/markwon/html/MarkwonHtmlParserImpl.java | 5 ++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/app-sample/src/main/java/io/noties/markwon/app/samples/html/HtmlCssStyleParserSample.java b/app-sample/src/main/java/io/noties/markwon/app/samples/html/HtmlCssStyleParserSample.java
index 5f7f896a..f4f3aa08 100644
--- a/app-sample/src/main/java/io/noties/markwon/app/samples/html/HtmlCssStyleParserSample.java
+++ b/app-sample/src/main/java/io/noties/markwon/app/samples/html/HtmlCssStyleParserSample.java
@@ -40,7 +40,8 @@ public class HtmlCssStyleParserSample extends MarkwonTextViewSample {
final String md = "# CSS\n\n" +
"this has red background and then\n\n" +
- "this is green";
+ "this is green\n\n" +
+ "A blue inside the red";
final Markwon markwon = Markwon.builder(context)
.usePlugin(HtmlPlugin.create(plugin -> plugin.addHandler(new SpanTagHandler())))
@@ -68,7 +69,7 @@ public class HtmlCssStyleParserSample extends MarkwonTextViewSample {
case "color":
color = Color.parseColor(property.value());
break;
-
+ case "background":
case "background-color":
backgroundColor = Color.parseColor(property.value());
break;
diff --git a/markwon-html/src/main/java/io/noties/markwon/html/MarkwonHtmlParserImpl.java b/markwon-html/src/main/java/io/noties/markwon/html/MarkwonHtmlParserImpl.java
index 3bf73419..910ba5eb 100644
--- a/markwon-html/src/main/java/io/noties/markwon/html/MarkwonHtmlParserImpl.java
+++ b/markwon-html/src/main/java/io/noties/markwon/html/MarkwonHtmlParserImpl.java
@@ -193,7 +193,10 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
}
}
- action.apply(Collections.unmodifiableList((List extends HtmlTag.Inline>) inlineTags));
+ List reverseOrder =
+ new ArrayList<>((List extends HtmlTag.Inline>) inlineTags);
+ Collections.reverse(reverseOrder);
+ action.apply(reverseOrder);
inlineTags.clear();
} else {
action.apply(Collections.emptyList());