vscode Markdown渲染器反转义功能尚未完全修复,

8qgya5xd  于 4个月前  发布在  Vscode
关注(0)|答案(1)|浏览(163)

问题类型:Bug
我发现了关于Markdown渲染器转义的一个问题,本应该已经修复了,但发现了一个边缘情况仍然存在问题。
在代码中加载this repro,然后将鼠标悬停在data.jsonc中的"value"属性名上。你会发现链接以多余的字面反斜杠字符结尾,点击它会打开一个以%5C结尾的URL。
VS Code版本:Code 1.62.2(3a6960b,2021-11-11T20:56:38.428Z)
操作系统版本:Windows_NT x64 10.0.19043
受限模式:无
系统信息
| 项目 | 值 |
| ------------ | ------------ |
| CPUs | Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz (8 x 2112) |
| GPU状态 | 2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled |
| 平均负载(avg) | undefined |
| 内存(系统) | 15.92GB (2.87GB free) |
| 进程参数 | --crash-reporter-id 104bab69-2434-4424-a670-b65cf70439b5 |
| 屏幕阅读器 | 无 |
| VM | 0% |扩展(20)
| 扩展 | 作者(省略) | 版本 |
| ------------ | ------------ | ------------ |
| vscode-m3u | af4 | 1.0.0 |
| ng-template | Ang | 13.0.0 |
| npm-intellisense | chr | 1.4.0 |
| vscode-svgviewer | css | 2.0.0 |
| vscode-markdownlint | Dav | 0.45.0 |
| githistory | don | 0.6.19 |
| xml | Dot | 2.5.1 |
| EditorConfig | Edi | 0.16.4 |
| vscode-npm-script | eg2 | 0.3.23 |
| json-tools | eri | 1.0.2 |
| JasmineSnippets | jor | 0.1.0 |
| xml-format | mik | 1.1.2 |
| remote-ssh | ms- | 0.66.1 |
| remote-ssh-edit | ms- | 0.66.1 |
| powershell | ms- | 2021.10.2 |
| java | red | 1.0.0 |
| vscode-autohotkey | sle | 0.2.2 |
| vscode-hexdump | sle | 1.8.1 |
| vscodeintellicode

jtoj6r0c

jtoj6r0c1#

我尝试追踪问题,最终发现它出现在 markedjs 分词器上。
分词器捕获整个URL(即,https://example.com/page\.),但在进入下面的循环后(该循环应用了 _backpedal RexExp),尾随的句点字符被丢弃。
marked.js#L1177:

do {
    prevCapZero = cap[0];
    cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
} while (prevCapZero !== cap[0]);
  • markedjs* 的最新版本也具有相同的行为,因为正则表达式模式与我们的副本相同。

@mjbvz 所以,我不确定我们是否应该将这个修复提交给 markedjs 社区。也许这是设计上的一件事。你有什么看法?

相关问题