From faf47869cdd01c0c2891334716bed8fbf0b90b73 Mon Sep 17 00:00:00 2001 From: neveler <55753029+neveler@users.noreply.github.com> Date: Sun, 5 Apr 2026 10:41:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=B5=8C=E5=A5=97?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java index a7dcc2643d..2956869ce5 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java @@ -59,6 +59,7 @@ private static URI resolveLink(Node linkNode) { private boolean highlight; private String headerLevel; private Node hyperlink; + private int indentLevel; private final Consumer onClickHyperlink; @@ -111,12 +112,20 @@ private void updateStyle() { } private void pushNode(Node node) { + String nodeName = node.nodeName(); + if ("li".equals(nodeName)) { + indentLevel++; + } stack.add(node); updateStyle(); } private void popNode() { - stack.remove(stack.size() - 1); + Node node = stack.remove(stack.size() - 1); + String nodeName = node.nodeName(); + if (indentLevel > 0 && "li".equals(nodeName)) { + indentLevel--; + } updateStyle(); } From fe06339970f2d8b60fe570f496b96ea472e116cc Mon Sep 17 00:00:00 2001 From: neveler <55753029+neveler@users.noreply.github.com> Date: Sun, 5 Apr 2026 10:46:31 +0800 Subject: [PATCH 2/3] Update HTMLRenderer.java --- HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java index 2956869ce5..6c6d2647ac 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java @@ -37,6 +37,7 @@ * @author Glavo */ public final class HTMLRenderer { + private static final String INDENT = " "; private static URI resolveLink(Node linkNode) { String href = linkNode.absUrl("href"); if (href.isEmpty()) @@ -227,7 +228,7 @@ public void appendNode(Node node) { appendImage(node); break; case "li": - appendText("\n \u2022 "); + appendText("\n" + INDENT.repeat(indentLevel) + " \u2022 "); break; case "dt": appendText(" "); From 1f7c4c516320c8e36f8a90331e693fed6323b932 Mon Sep 17 00:00:00 2001 From: neveler <55753029+neveler@users.noreply.github.com> Date: Sun, 5 Apr 2026 15:14:26 +0800 Subject: [PATCH 3/3] Update HTMLRenderer.java --- .../java/org/jackhuang/hmcl/ui/HTMLRenderer.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java index 6c6d2647ac..69423d49ad 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/HTMLRenderer.java @@ -58,9 +58,9 @@ private static URI resolveLink(Node linkNode) { private boolean underline; private boolean strike; private boolean highlight; + private int indentLevel; private String headerLevel; private Node hyperlink; - private int indentLevel; private final Consumer onClickHyperlink; @@ -113,20 +113,12 @@ private void updateStyle() { } private void pushNode(Node node) { - String nodeName = node.nodeName(); - if ("li".equals(nodeName)) { - indentLevel++; - } stack.add(node); updateStyle(); } private void popNode() { - Node node = stack.remove(stack.size() - 1); - String nodeName = node.nodeName(); - if (indentLevel > 0 && "li".equals(nodeName)) { - indentLevel--; - } + stack.remove(stack.size() - 1); updateStyle(); } @@ -247,11 +239,14 @@ public void appendNode(Node node) { } if (node.childNodeSize() > 0) { + boolean isLiNode = "li".equals(name); + if (isLiNode) indentLevel++; pushNode(node); for (Node childNode : node.childNodes()) { appendNode(childNode); } popNode(); + if (isLiNode) indentLevel--; } switch (name) {