Skip to content

[Bug report] Markdown 中的内部链接渲染问题 #306

@BH4HPA

Description

@BH4HPA

Bug report

Description

你可以学到在五十一[吃喝](./吃.md)[玩乐](./玩.md),吃[穿](./穿.md)[住](./住.md)[行](./行.md)的方式。

如题,当我在 MD 中使用如上的文本建立内部链接后,点击链接会跳转到对应地址,但显示 404 错误,刷新后对应网页出现。

如果相对路径是从 docs 根文件夹出发的话,那么就可以正常链接。

推测问题应该是生成相对链接时部分情况可以完全被 url encode,部分情况则不行,详情见下文。

### [一、学校章程制度](../../规章制度/文件/一、学校章程制度/) <--正常

### [二、常规管理相关条例](../文件/二、常规管理相关条例/)  <--不正常

### [三、宿舍管理规定](./三、宿舍管理规定/)  <--不正常
└─ docs
   ├─ 规章制度
   │  ├─ 文件
   │  │  ├─ 一、学校章程制度
   │  │  ├─ 二、常规管理相关条例
   │  │  ├─ ...
   │  │  └─ 三、宿舍管理规定
   │  ├─ ...
   │  └─ README.md # 我在这
   ├─ ...
   └─ README.md

同理,我上文不正常文件,把链接改成从根目录出发就正常了:

你可以学到在五十一[吃喝](../学校生活/吃.md)[玩乐](../学校生活/玩.md),吃[穿](../学校生活/穿.md)[住](../学校生活/住.md)[行](../学校生活/行.md)的方式。

Steps to reproduce

我的项目已经用上文方法修改过了,所以如果需要复现,烦请用自己的项目。

  1. docs 内建立多级文件夹,可以如上文。
  2. 在子文件夹文件中 (例如 docs/规章制度/文件/README.md )中编入内部链接(例如 [一、学校章程制度](./一、学校章程制度/) )。
  3. 点击这个链接,复现问题:即点击后出现 404,刷新页面正常呈现。
  4. 试试把相对链接改为从根目录出发(例如: ./一、学校章程制度/ 换成 ../../规章制度/文件/一、学校章程制度/ )。
  5. 链接应该恢复正常,注意观察两次生成的 a 标签的 href 属性。

Expected behavior

预期的行为应是正常使用相对路径,生成的链接点击后直接进入,而不需要额外刷新。

Screenshots

直接出发渲染的超链接:

image.png

从根目录出发渲染的超链接:

image.png

复现动图:

202107241301.gif

Environment info

  • Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36
  • Output of vuepress info:
Environment Info:

  System:
    OS: Windows 10 10.0.19043
    CPU: (8) x64 Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz
  Binaries:
    Node: 14.14.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.10 - C:\Program Files\nodejs\yarn.CMD
    npm: 6.14.8 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: 44.19041.1023.0
  npmPackages:
    @vuepress/core:  2.0.0-beta.22
    @vuepress/theme-default:  2.0.0-beta.22
    vuepress: ^2.0.0-beta.22 => 2.0.0-beta.22
  npmGlobalPackages:
    vuepress: Not Found

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions