From 91d8e3d91962a8c06b648bdadbe239be113d5d42 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Wed, 24 Jan 2024 16:59:46 +0800 Subject: [PATCH] fix(markdown): use non-greedy matching when parsing attributes #1469 --- packages/markdown/src/plugins/codePlugin/resolveAttr.ts | 2 +- packages/markdown/tests/plugins/codePlugin.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/markdown/src/plugins/codePlugin/resolveAttr.ts b/packages/markdown/src/plugins/codePlugin/resolveAttr.ts index fc4fe25199..4bb9fdcc56 100644 --- a/packages/markdown/src/plugins/codePlugin/resolveAttr.ts +++ b/packages/markdown/src/plugins/codePlugin/resolveAttr.ts @@ -3,7 +3,7 @@ */ export const resolveAttr = (info: string, attr: string): string | null => { // try to match specified attr mark - const pattern = `\\b${attr}\\s*=\\s*(?['"])(?.+)\\k(\\s|$)` + const pattern = `\\b${attr}\\s*=\\s*(?['"])(?.+?)\\k(\\s|$)` const regex = new RegExp(pattern, 'i') const match = info.match(regex) diff --git a/packages/markdown/tests/plugins/codePlugin.spec.ts b/packages/markdown/tests/plugins/codePlugin.spec.ts index 1e7b9ca104..2033a74072 100644 --- a/packages/markdown/tests/plugins/codePlugin.spec.ts +++ b/packages/markdown/tests/plugins/codePlugin.spec.ts @@ -27,7 +27,7 @@ function bar () { } ${codeFence} -${codeFence}ts title="config/foo.ts" {1,2-4,5-5} +${codeFence}ts title="config/foo.ts" foo="foo" {1,2-4,5-5} const foo = 'foo' function bar () { @@ -198,7 +198,7 @@ function bar () { } ${codeFence} -${codeFence}ts title="config/foo.ts" {1,2}:no-line-numbers +${codeFence}ts title="config/foo.ts" foo="foo" {1,2}:no-line-numbers const foo = 'foo' function bar () {