diff --git a/web/src/labs/marked/parser/DoneList.ts b/web/src/labs/marked/parser/DoneList.ts index e366f3ab..e27434db 100644 --- a/web/src/labs/marked/parser/DoneList.ts +++ b/web/src/labs/marked/parser/DoneList.ts @@ -1,7 +1,7 @@ import { inlineElementParserList } from "."; import { marked } from ".."; -export const DONE_LIST_REG = /^- \[x\] (.+)(\n?)/; +export const DONE_LIST_REG = /^- \[[xX]\] (.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(DONE_LIST_REG); diff --git a/web/src/labs/marked/parser/Strikethrough.ts b/web/src/labs/marked/parser/Strikethrough.ts new file mode 100644 index 00000000..db9b8e55 --- /dev/null +++ b/web/src/labs/marked/parser/Strikethrough.ts @@ -0,0 +1,19 @@ +import { marked } from ".."; + +export const STRIKETHROUGH_REG = /~~(.+?)~~/; + +const renderer = (rawStr: string): string => { + const matchResult = rawStr.match(STRIKETHROUGH_REG); + if (!matchResult) { + return rawStr; + } + + const parsedContent = marked(matchResult[1], [], []); + return `${parsedContent}`; +}; + +export default { + name: "Strikethrough", + regex: STRIKETHROUGH_REG, + renderer, +}; diff --git a/web/src/labs/marked/parser/index.ts b/web/src/labs/marked/parser/index.ts index 80ff1e2d..89434adf 100644 --- a/web/src/labs/marked/parser/index.ts +++ b/web/src/labs/marked/parser/index.ts @@ -16,6 +16,7 @@ import Table from "./Table"; import BoldEmphasis from "./BoldEmphasis"; import Blockquote from "./Blockquote"; import HorizontalRules from "./HorizontalRules"; +import Strikethrough from "./Strikethrough"; export { CODE_BLOCK_REG } from "./CodeBlock"; export { TODO_LIST_REG } from "./TodoList"; @@ -38,5 +39,5 @@ export const blockElementParserList = [ UnorderedList, Paragraph, ]; -export const inlineElementParserList = [Image, BoldEmphasis, Bold, Emphasis, Link, InlineCode, PlainLink, Tag, PlainText]; +export const inlineElementParserList = [Image, BoldEmphasis, Bold, Emphasis, Link, InlineCode, PlainLink, Strikethrough, Tag, PlainText]; export const parserList = [...blockElementParserList, ...inlineElementParserList];