diff --git a/packages/markdown/src/plugins/assetsPlugin/resolveLink.ts b/packages/markdown/src/plugins/assetsPlugin/resolveLink.ts
index e42da2a9ca..c490a0df0a 100644
--- a/packages/markdown/src/plugins/assetsPlugin/resolveLink.ts
+++ b/packages/markdown/src/plugins/assetsPlugin/resolveLink.ts
@@ -8,6 +8,9 @@ export const resolveLink = (
env: MarkdownEnv,
strict = false,
): string => {
+ // do not resolve data uri
+ if (link.startsWith('data:')) return link
+
// decode link to ensure bundler can find the file correctly
let resolvedLink = decode(link)
diff --git a/packages/markdown/tests/plugins/assetsPlugin.spec.ts b/packages/markdown/tests/plugins/assetsPlugin.spec.ts
index 7626b5ef92..6c8c81f008 100644
--- a/packages/markdown/tests/plugins/assetsPlugin.spec.ts
+++ b/packages/markdown/tests/plugins/assetsPlugin.spec.ts
@@ -34,6 +34,8 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'![invalid](.../invalid.png)',
'![汉字](.../汉字.png)',
'![100%](.../100%.png)',
+ // data uri
+ '![data-uri](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wr4H/wAAAABJRU5ErkJggg==)',
]
const testCases: {
@@ -77,6 +79,8 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
'',
'',
+ // data uri
+ '',
],
},
{
@@ -116,6 +120,8 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
'',
'',
+ // data uri
+ '',
],
},
{
@@ -152,6 +158,8 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
'',
'',
+ // data uri
+ '',
],
},
]
@@ -236,6 +244,9 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
// keep as is
'',
+
+ /* data uri */
+ '',
]
const testCases: {
@@ -319,6 +330,9 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
// keep as is
'',
+
+ /* data uri */
+ '',
],
},
{
@@ -398,6 +412,9 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
// keep as is
'',
+
+ /* data uri */
+ '',
],
},
{
@@ -474,6 +491,9 @@ describe('@vuepress/markdown > plugins > assetsPlugin', () => {
'',
// keep as is
'',
+
+ /* data uri */
+ '',
],
},
]