diff --git a/src/components/ParserOpenRPC/DetailsBox/MDContent.tsx b/src/components/ParserOpenRPC/DetailsBox/MDContent.tsx
index 40bce9fe665..1cc4bc463ea 100644
--- a/src/components/ParserOpenRPC/DetailsBox/MDContent.tsx
+++ b/src/components/ParserOpenRPC/DetailsBox/MDContent.tsx
@@ -1,43 +1,48 @@
import React from "react";
-const parseLists = (content: string) => {
- const lines = content.split('\n');
+const parseLists = (text: string) => {
+ const lines = text.split('\n');
let result = '';
- let isFirstLevelOpen = false;
- let isSecondLevelOpen = false;
+ let inList = false;
+ let inSubList = false;
+
lines.forEach((line) => {
- if (line.match(/^ {2}-\s+/)) {
- if (!isSecondLevelOpen) {
- result += '
';
- isSecondLevelOpen = true;
- }
- result += `- ${line.trim().substring(4)}
`;
- } else if (line.match(/^ -\s+/)) {
- if (isSecondLevelOpen) {
- result += '
';
- isSecondLevelOpen = false;
+ const trimmed = line.trim();
+ const isListItem = trimmed.startsWith('- ');
+ const isSubListItem = line.startsWith(' - ');
+
+ if (isListItem && !isSubListItem) {
+ if (!inList) {
+ result += '\n';
+ inList = true;
+ } else if (inSubList) {
+ result += '
\n';
+ inSubList = false;
}
- if (!isFirstLevelOpen) {
- result += '';
- isFirstLevelOpen = true;
+ result += `- ${trimmed.slice(2).trim()}
\n`;
+ } else if (isSubListItem) {
+ if (!inSubList) {
+ result = result.replace(/<\/li>\n$/, '');
+ result += '\n';
+ inSubList = true;
}
- result += `- ${line.trim().substring(2)}
`;
+ result += `- ${trimmed.slice(4).trim()}
\n`;
} else {
- if (isSecondLevelOpen) {
- result += '
';
- isSecondLevelOpen = false;
+ if (inSubList) {
+ result += '
\n';
+ inSubList = false;
}
- if (isFirstLevelOpen) {
- result += '';
- isFirstLevelOpen = false;
+ if (inList) {
+ result += '\n';
+ inList = false;
}
- result += line;
+ result += `${line}\n`;
}
});
- if (isSecondLevelOpen) result += '';
- if (isFirstLevelOpen) result += '';
+ if (inSubList) result += '\n';
+ if (inList) result += '\n';
return result;
-};
+}
const parseMarkdown = (content: string) => {
return parseLists(