dumi
dumi copied to clipboard
bug: 相对路径解析错误
Versions
- dumi: 1.0.33
- node:14.5.0
- npm: 6.14.5
- OS:MacOS
- Browser:
Steps to reproduce
在多级目录中使用相对路径, 无法正确解析.
如有以下目录:
docs
├── index.md
├── main
│ ├── 01.md
│ └── 02.md
在01.md
中连接到02.md
正常会这样使用:
[跳转到02文章](./02.md)
但是实际解析出来的路径是基于根目录的绝对路径
<a href="/02">跳转到02文章</a>
, 导致跳转错误
What is Expected?
正常应该是解析成: <a href="/main/02">跳转到02文章</a>
从md文件的解析来看, 解析过后的Link
组件也是相对路径:
<Link to="./02">跳转到02文章</Link>
最终在运行时被渲染成了<a href="/02">跳转到02文章</a>
, 而不是<a href="./02">跳转到02文章</a>
.
这是否可能是react-router-dom
的问题?
dumi 没对直接链接 md 文件的用法做处理,客观上是不支持的,建议直接使用最终确定的链接进行配置
假设为了满足了dumi, 就应该配置成
[跳转到02文章](/main/02.md)
别的浏览工具, 比如直接在github上浏览, 就会造成链接404.
如果要解决的话, 是否可以在将md转换成<Link/>
组件的时候将相对路径转成绝对路径.
我是指『配文件路径链接到另一个 md』的用法目前是不支持的,如果要链接到另一个 md 的页面,需要配置最终生成的链接地址,比如 /main/02
。
GitHub 上 md 之间的相互跳转确实是一个常见的场景,后续会进行支持,关键点并非相对路径转换,还需要根据 group 和 nav 的配置去处理链接,如果有时间的话,欢迎给 dumi 提个 PR :D
关键点并非相对路径转换,还需要根据 group 和 nav 的配置去处理链接,如果有时间的话,欢迎给 dumi 提个 PR :D
思路可以再详细一点吗, 上面这一点没有理解透彻.
我理解group 和 nav 是dumi的逻辑分组, 每个分组下的页面, 都对应一个绝对路径.
按理说应该可以不用管dumi逻辑如何分组, 相对路径转换只要解析成<Link to="/xxx"/>
绝对路径是正确的, 就不会破坏dumi的路由匹配.
比如 src/a.md 的 group.path 配置是 b,那它的最终链接就是 /b/a,如果转换路径不考虑 group 配置、转换成 /a 的话,就访问不到了
dumi v2 已支持 md 相对路径引用,欢迎升级:https://d.umijs.org/guide/upgrading