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) inlineTags)); + List reverseOrder = + new ArrayList<>((List) inlineTags); + Collections.reverse(reverseOrder); + action.apply(reverseOrder); inlineTags.clear(); } else { action.apply(Collections.emptyList());