Open CJY0208 opened 1 year ago
本应跳转至 host.com/#/docs-1#Test
这种其实也是不能工作的,在浏览器看来此时的 hash 是 #/docs-1#Test
,无法跳转至正确位置
这个问题要修复,应该只能和 dumi 1 一样封装 Link 组件、在 hash 模式下把锚点全部换成 query 参数再手动跳转,但改造成本比较高,且大部分项目都是 browser history,所以之前才没有支持的计划;你如果有兴趣帮 dumi 2 完善,可以考虑上面的思路拟个 RFC 我们讨论下
dumi 2.x hash history 模式下,标题锚点与 TOC 无法跳转至正确位置,
Versions
Steps to reproduce
例如
点击 Test 标题的锚点与对应 TOC
What is Expected?
本应跳转至
host.com/#/docs-1#Test
What is actually happening?
实际跳转至
host.com/#Test
,进入了 404 页面我看这个问题似乎在此 comment 有提到过,dumi 1x 中无此问题
修复建议
标题锚点:基于
rehype-autolink-headings
实现,没找到切入点,目前本地是用纯 js 改写锚点 href 临时修复TOC:此处 生成 link 的逻辑追加 useLocation().pathname
不过目前问题点在于不同主题包还没有对 TOC link 的统一处理方式,如果主题包改写了 TOC ,都可能需要额外处理 link,例如 dumi-theme-antd-style 对 TOC 的改写