diff --git a/web/src/labs/marked/index.ts b/web/src/labs/marked/index.ts
index c7580be8..24473a96 100644
--- a/web/src/labs/marked/index.ts
+++ b/web/src/labs/marked/index.ts
@@ -26,7 +26,7 @@ export const marked = (markdownStr: string, blockParsers = blockElementParserLis
let matchedInlineParser = undefined;
let matchedIndex = -1;
- for (const parser of inlineElementParserList) {
+ for (const parser of inlineParsers) {
if (parser.name === "plain text" && matchedInlineParser !== undefined) {
continue;
}
diff --git a/web/src/labs/marked/marked.test.ts b/web/src/labs/marked/marked.test.ts
index 1dd0fda5..03140322 100644
--- a/web/src/labs/marked/marked.test.ts
+++ b/web/src/labs/marked/marked.test.ts
@@ -73,6 +73,18 @@ console.log("hello world!")
expect(unescape(marked(t.markdown))).toBe(t.want);
}
});
+ test("parse inline code within inline element", () => {
+ const tests = [
+ {
+ markdown: `Link: [\`baidu\`](https://baidu.com)`,
+ want: `
Link: baidu
`,
+ },
+ ];
+
+ for (const t of tests) {
+ expect(unescape(marked(t.markdown))).toBe(t.want);
+ }
+ });
test("parse plain link", () => {
const tests = [
{
diff --git a/web/src/labs/marked/parser/Link.ts b/web/src/labs/marked/parser/Link.ts
index 8ebd6aa5..52d58e8b 100644
--- a/web/src/labs/marked/parser/Link.ts
+++ b/web/src/labs/marked/parser/Link.ts
@@ -1,4 +1,8 @@
import { escape } from "lodash-es";
+import Emphasis from "./Emphasis";
+import Bold from "./Bold";
+import { marked } from "..";
+import InlineCode from "./InlineCode";
export const LINK_REG = /\[(.*?)\]\((.+?)\)/;
@@ -7,8 +11,8 @@ const renderer = (rawStr: string): string => {
if (!matchResult) {
return rawStr;
}
-
- return `${escape(matchResult[1])}`;
+ const parsedContent = marked(matchResult[1], [], [InlineCode, Emphasis, Bold]);
+ return `${parsedContent}`;
};
export default {
diff --git a/web/src/less/memo-content.less b/web/src/less/memo-content.less
index bfe9211f..3d85f063 100644
--- a/web/src/less/memo-content.less
+++ b/web/src/less/memo-content.less
@@ -31,7 +31,10 @@
}
.link {
- @apply text-blue-600 cursor-pointer underline break-all hover:opacity-80;
+ @apply text-blue-600 cursor-pointer underline break-all hover:opacity-80 decoration-1;
+ code {
+ @apply underline decoration-1;
+ }
}
.ol-block,