diff --git a/web/src/labs/marked/parser/DoneList.tsx b/web/src/labs/marked/parser/DoneList.tsx index b3b1c10b..52f3a0f9 100644 --- a/web/src/labs/marked/parser/DoneList.tsx +++ b/web/src/labs/marked/parser/DoneList.tsx @@ -2,17 +2,18 @@ import { inlineElementParserList } from "."; import { marked } from ".."; import { matcher } from "../matcher"; -export const DONE_LIST_REG = /^- \[[xX]\] ([^\n]+)/; +export const DONE_LIST_REG = /^( *)- \[[xX]\] ([^\n]+)/; const renderer = (rawStr: string) => { const matchResult = matcher(rawStr, DONE_LIST_REG); if (!matchResult) { return rawStr; } - - const parsedContent = marked(matchResult[1], [], inlineElementParserList); + const space = matchResult[1]; + const parsedContent = marked(matchResult[2], [], inlineElementParserList); return (
+ {space} ✓ diff --git a/web/src/labs/marked/parser/Emphasis.tsx b/web/src/labs/marked/parser/Emphasis.tsx index 20c2ece1..3a92437e 100644 --- a/web/src/labs/marked/parser/Emphasis.tsx +++ b/web/src/labs/marked/parser/Emphasis.tsx @@ -1,6 +1,7 @@ import { marked } from ".."; import { matcher } from "../matcher"; import Link from "./Link"; +import PlainLink from "./PlainLink"; import PlainText from "./PlainText"; export const EMPHASIS_REG = /\*(.+?)\*/; @@ -11,7 +12,7 @@ const renderer = (rawStr: string) => { return rawStr; } - const parsedContent = marked(matchResult[1], [], [Link, PlainText]); + const parsedContent = marked(matchResult[1], [], [Link, PlainLink, PlainText]); return {parsedContent}; }; diff --git a/web/src/labs/marked/parser/Heading.tsx b/web/src/labs/marked/parser/Heading.tsx index aadfa408..2f4e0568 100644 --- a/web/src/labs/marked/parser/Heading.tsx +++ b/web/src/labs/marked/parser/Heading.tsx @@ -1,4 +1,8 @@ +import { marked } from ".."; import { matcher } from "../matcher"; +import Link from "./Link"; +import PlainLink from "./PlainLink"; +import PlainText from "./PlainText"; export const HEADING_REG = /^(#+) ([^\n]+)/; @@ -9,16 +13,17 @@ const renderer = (rawStr: string) => { } const level = matchResult[1].length; + const parsedContent = marked(matchResult[2], [], [Link, PlainLink, PlainText]); if (level === 1) { - return
- {matchResult[1]}. + {space} + {matchResult[2]}. {parsedContent}
); diff --git a/web/src/labs/marked/parser/TodoList.tsx b/web/src/labs/marked/parser/TodoList.tsx index 10aa4ffb..c7b6d9d5 100644 --- a/web/src/labs/marked/parser/TodoList.tsx +++ b/web/src/labs/marked/parser/TodoList.tsx @@ -2,17 +2,18 @@ import { inlineElementParserList } from "."; import { marked } from ".."; import { matcher } from "../matcher"; -export const TODO_LIST_REG = /^- \[ \] ([^\n]+)/; +export const TODO_LIST_REG = /^( *)- \[ \] ([^\n]+)/; const renderer = (rawStr: string) => { const matchResult = matcher(rawStr, TODO_LIST_REG); if (!matchResult) { return rawStr; } - - const parsedContent = marked(matchResult[1], [], inlineElementParserList); + const space = matchResult[1]; + const parsedContent = marked(matchResult[2], [], inlineElementParserList); return (+ {space} {parsedContent}
diff --git a/web/src/labs/marked/parser/UnorderedList.tsx b/web/src/labs/marked/parser/UnorderedList.tsx index bd7ff76c..ebd41e62 100644 --- a/web/src/labs/marked/parser/UnorderedList.tsx +++ b/web/src/labs/marked/parser/UnorderedList.tsx @@ -2,17 +2,18 @@ import { inlineElementParserList } from "."; import { marked } from ".."; import { matcher } from "../matcher"; -export const UNORDERED_LIST_REG = /^[*-] ([^\n]+)/; +export const UNORDERED_LIST_REG = /^( *)[*-] ([^\n]+)/; const renderer = (rawStr: string) => { const matchResult = matcher(rawStr, UNORDERED_LIST_REG); if (!matchResult) { return rawStr; } - - const parsedContent = marked(matchResult[1], [], inlineElementParserList); + const space = matchResult[1]; + const parsedContent = marked(matchResult[2], [], inlineElementParserList); return (+ {space} • {parsedContent}