发现一个掘金的bug,我给出了解决办法

60 阅读1分钟

大家好,我是 luckySnail ,最近在发文章的时候,发现一个 bug,当使用 markdown 链接格式[]() 的时候,如果链接中包含空格,就会出现下面这种情况。

image-20250108131542182

非常影响体验,但是链接中携带空格是非常常见的现象。于是打算解决一下

解决

项目使用 markdown渲染和编辑都是 bytemd 。于是看看掘金,发现也存在这种情况。

其实解决方法也很简单,就是把链接中的空格替换为:%20

 // 替换链接中的空格为 %20
  const encodedValue = value.replace(/[([^]]+)](([^)]+))/g, (match, text, url) => {
    const encodedUrl = url.replace(/ /g, '%20');
    return `[${text}](${encodedUrl})`;
  });

在 URL 中,空格是一个不安全的字符,所以我们需要进行编码。%20 是空格的 URL 编码形式。URL 编码(也称为百分号编码)是一种将 URL 中的特殊字符转换为安全格式的方式,这里我们使用正则表达式将 Markdown 链接中的空格替换为 %20,也就保证了链接在解析时不会因为空格而出现问题

原文:github.com/coderPerseu…

你可能感兴趣:

  1. 这样优化代码,年终奖有了:juejin.cn/post/745122…
  2. cursor使用经验:juejin.cn/post/744048…
  3. 好爱看土味视频,于是专门做了一个网站:juejin.cn/post/744640…