From 98667028505d227280095807a00679de9da297a5 Mon Sep 17 00:00:00 2001 From: boojack Date: Thu, 10 Nov 2022 20:38:14 +0800 Subject: [PATCH] fix: parser regexp for special character (#439) --- web/src/labs/marked/marked.test.ts | 14 ++++++++++++++ web/src/labs/marked/parser/Blockquote.ts | 2 +- web/src/labs/marked/parser/Bold.ts | 2 +- web/src/labs/marked/parser/BoldEmphasis.ts | 2 +- web/src/labs/marked/parser/DoneList.ts | 2 +- web/src/labs/marked/parser/Emphasis.ts | 2 +- web/src/labs/marked/parser/InlineCode.ts | 2 +- web/src/labs/marked/parser/Mark.ts | 2 +- web/src/labs/marked/parser/OrderedList.ts | 2 +- web/src/labs/marked/parser/Paragraph.ts | 2 +- web/src/labs/marked/parser/PlainText.ts | 2 +- web/src/labs/marked/parser/TodoList.ts | 2 +- web/src/labs/marked/parser/UnorderedList.ts | 2 +- 13 files changed, 26 insertions(+), 12 deletions(-) diff --git a/web/src/labs/marked/marked.test.ts b/web/src/labs/marked/marked.test.ts index 03140322..c8d9c849 100644 --- a/web/src/labs/marked/marked.test.ts +++ b/web/src/labs/marked/marked.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-irregular-whitespace */ import { describe, expect, test } from "@jest/globals"; import { unescape } from "lodash-es"; import { marked } from "."; @@ -170,4 +171,17 @@ text below the table expect(unescape(marked(t.markdown))).toBe(t.want); } }); + test("parse full width space", () => { + const tests = [ + { + markdown: `  line1 +  line2`, + want: `

  line1

+

  line2

`, + }, + ]; + for (const t of tests) { + expect(unescape(marked(t.markdown))).toBe(t.want); + } + }); }); diff --git a/web/src/labs/marked/parser/Blockquote.ts b/web/src/labs/marked/parser/Blockquote.ts index a30fe6f1..6b172f5d 100644 --- a/web/src/labs/marked/parser/Blockquote.ts +++ b/web/src/labs/marked/parser/Blockquote.ts @@ -1,6 +1,6 @@ import { escape } from "lodash"; -export const BLOCKQUOTE_REG = /^>\s+([\S ]+)(\n?)/; +export const BLOCKQUOTE_REG = /^>\s+(.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(BLOCKQUOTE_REG); diff --git a/web/src/labs/marked/parser/Bold.ts b/web/src/labs/marked/parser/Bold.ts index 2667bac8..1a4083a9 100644 --- a/web/src/labs/marked/parser/Bold.ts +++ b/web/src/labs/marked/parser/Bold.ts @@ -1,7 +1,7 @@ import { marked } from ".."; import Link from "./Link"; -export const BOLD_REG = /\*\*([\S ]+?)\*\*/; +export const BOLD_REG = /\*\*(.+?)\*\*/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(BOLD_REG); diff --git a/web/src/labs/marked/parser/BoldEmphasis.ts b/web/src/labs/marked/parser/BoldEmphasis.ts index 08d0c401..6d5e7361 100644 --- a/web/src/labs/marked/parser/BoldEmphasis.ts +++ b/web/src/labs/marked/parser/BoldEmphasis.ts @@ -1,7 +1,7 @@ import { marked } from ".."; import Link from "./Link"; -export const BOLD_EMPHASIS_REG = /\*\*\*([\S ]+?)\*\*\*/; +export const BOLD_EMPHASIS_REG = /\*\*\*(.+?)\*\*\*/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(BOLD_EMPHASIS_REG); diff --git a/web/src/labs/marked/parser/DoneList.ts b/web/src/labs/marked/parser/DoneList.ts index 88a3eeb5..e366f3ab 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\] ([\S ]+)(\n?)/; +export const DONE_LIST_REG = /^- \[x\] (.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(DONE_LIST_REG); diff --git a/web/src/labs/marked/parser/Emphasis.ts b/web/src/labs/marked/parser/Emphasis.ts index 9b052fc6..f51e7c63 100644 --- a/web/src/labs/marked/parser/Emphasis.ts +++ b/web/src/labs/marked/parser/Emphasis.ts @@ -1,7 +1,7 @@ import { marked } from ".."; import Link from "./Link"; -export const EMPHASIS_REG = /\*([\S ]+?)\*/; +export const EMPHASIS_REG = /\*(.+?)\*/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(EMPHASIS_REG); diff --git a/web/src/labs/marked/parser/InlineCode.ts b/web/src/labs/marked/parser/InlineCode.ts index 5eda57e3..4c40fbe8 100644 --- a/web/src/labs/marked/parser/InlineCode.ts +++ b/web/src/labs/marked/parser/InlineCode.ts @@ -1,6 +1,6 @@ import { escape } from "lodash-es"; -export const INLINE_CODE_REG = /`([\S ]+?)`/; +export const INLINE_CODE_REG = /`(.+?)`/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(INLINE_CODE_REG); diff --git a/web/src/labs/marked/parser/Mark.ts b/web/src/labs/marked/parser/Mark.ts index f8cbaccb..3b30ce23 100644 --- a/web/src/labs/marked/parser/Mark.ts +++ b/web/src/labs/marked/parser/Mark.ts @@ -1,6 +1,6 @@ import { escape } from "lodash-es"; -export const MARK_REG = /@\[([\S ]+?)\]\((\S+?)\)/; +export const MARK_REG = /@\[(.+?)\]\((\S+?)\)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(MARK_REG); diff --git a/web/src/labs/marked/parser/OrderedList.ts b/web/src/labs/marked/parser/OrderedList.ts index 8b27097d..fdc658ce 100644 --- a/web/src/labs/marked/parser/OrderedList.ts +++ b/web/src/labs/marked/parser/OrderedList.ts @@ -1,7 +1,7 @@ import { inlineElementParserList } from "."; import { marked } from ".."; -export const ORDERED_LIST_REG = /^(\d+)\. ([\S ]+)(\n?)/; +export const ORDERED_LIST_REG = /^(\d+)\. (.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(ORDERED_LIST_REG); diff --git a/web/src/labs/marked/parser/Paragraph.ts b/web/src/labs/marked/parser/Paragraph.ts index 67626057..a4e7b0f7 100644 --- a/web/src/labs/marked/parser/Paragraph.ts +++ b/web/src/labs/marked/parser/Paragraph.ts @@ -1,7 +1,7 @@ import { inlineElementParserList } from "."; import { marked } from ".."; -export const PARAGRAPH_REG = /^([\S ]*)(\n?)/; +export const PARAGRAPH_REG = /^(.*)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(PARAGRAPH_REG); diff --git a/web/src/labs/marked/parser/PlainText.ts b/web/src/labs/marked/parser/PlainText.ts index df90bf99..bb3fba3e 100644 --- a/web/src/labs/marked/parser/PlainText.ts +++ b/web/src/labs/marked/parser/PlainText.ts @@ -1,6 +1,6 @@ import { escape } from "lodash-es"; -export const PLAIN_TEXT_REG = /([\S ]+)/; +export const PLAIN_TEXT_REG = /(.+)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(PLAIN_TEXT_REG); diff --git a/web/src/labs/marked/parser/TodoList.ts b/web/src/labs/marked/parser/TodoList.ts index 159ae2f0..06302576 100644 --- a/web/src/labs/marked/parser/TodoList.ts +++ b/web/src/labs/marked/parser/TodoList.ts @@ -2,7 +2,7 @@ import { escape } from "lodash-es"; import { inlineElementParserList } from "."; import { marked } from ".."; -export const TODO_LIST_REG = /^- \[ \] ([\S ]+)(\n?)/; +export const TODO_LIST_REG = /^- \[ \] (.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(TODO_LIST_REG); diff --git a/web/src/labs/marked/parser/UnorderedList.ts b/web/src/labs/marked/parser/UnorderedList.ts index aaaa6cf9..185979d9 100644 --- a/web/src/labs/marked/parser/UnorderedList.ts +++ b/web/src/labs/marked/parser/UnorderedList.ts @@ -2,7 +2,7 @@ import { escape } from "lodash-es"; import { inlineElementParserList } from "."; import { marked } from ".."; -export const UNORDERED_LIST_REG = /^[*-] ([\S ]+)(\n?)/; +export const UNORDERED_LIST_REG = /^[*-] (.+)(\n?)/; const renderer = (rawStr: string): string => { const matchResult = rawStr.match(UNORDERED_LIST_REG);