Unability to link to an internal non-SPA link
See original GitHub issue🐛 Bug Report
Related to https://github.com/facebook/docusaurus/issues/3303#issuecomment-676541070
Imagine you have /static/javadoc/index.html
You should be able to link to this page that is not managed by Docusaurus, using:
<Link to="/javadoc">Javadoc</Link>
or
[javadoc](/javadoc)
Yet, the link uses history.push()
as it thinks it’s an SPA internal link, and we end up with the 404 as no SPA route is found.
It works after a refresh though, or if we use an URL with the http/https protocol.
Not sure how to solve this problem,
Maybe we should read the routes file directly on link, and when we press, only use history.push()
if the link is a known internal SPA link, else fallback to a regular non-SPA navigation?
I don’t think there is a std way to provide additional link infos in Markdown, nor if MDX supports that. Another option would be to use a special protocol so that we force the link to consider it as a non-SPA link:
[javadoc](external:///javadoc)
Another solution would be to provide a remark plugin so that user can tell which URLs are to be considered as external. It may be overwhelming for a site user to write a remark plugin, so we could just ship a default one in MDX loader, that would read a list of paths to consider external in site config? Inspiration => https://github.com/remarkjs/remark-external-links
Issue Analytics
- State:
- Created 3 years ago
- Reactions:5
- Comments:25
great @colriot 😃
the Sass fix is not published to npm yet, so you can use this workaround in the meantime: https://github.com/rlamana/docusaurus-plugin-sass/pull/5#issuecomment-685099274
it would be great to add the
pathname:///
trick to the docs. i just needed to do this for the sidebar and needed to go hunting for this issue.