mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-29 10:17:55 +02:00
fix(core): links with target "_blank" should no be checked by the broken link checker (#9788)
This commit is contained in:
parent
ebab8fc7db
commit
37ceeeb76a
2 changed files with 37 additions and 1 deletions
|
@ -143,8 +143,13 @@ function Link(
|
|||
// It is simple local anchor link targeting current page?
|
||||
const isAnchorLink = targetLink?.startsWith('#') ?? false;
|
||||
|
||||
// See also RR logic:
|
||||
// https://github.com/remix-run/react-router/blob/v5/packages/react-router-dom/modules/Link.js#L47
|
||||
const hasInternalTarget = !props.target || props.target === '_self';
|
||||
|
||||
// Should we use a regular <a> tag instead of React-Router Link component?
|
||||
const isRegularHtmlLink = !targetLink || !isInternal || isAnchorLink;
|
||||
const isRegularHtmlLink =
|
||||
!targetLink || !isInternal || !hasInternalTarget || isAnchorLink;
|
||||
|
||||
if (!noBrokenLinkCheck && (isAnchorLink || !isRegularHtmlLink)) {
|
||||
brokenLinks.collectLink(targetLink!);
|
||||
|
|
|
@ -361,6 +361,37 @@ See [#3309](https://github.com/facebook/docusaurus/issues/3309)
|
|||
|
||||
- [pathname://../dogfooding/javadoc/index.html](pathname://../dogfooding/javadoc/index.html)
|
||||
|
||||
### Linking to non-SPA page with Link component
|
||||
|
||||
See [#9758](https://github.com/facebook/docusaurus/issues/9758), these external urls should not be reported by the broken links checker:
|
||||
|
||||
```mdx-code-block
|
||||
import Link from '@docusaurus/Link';
|
||||
|
||||
export function TestLink({noCheck, ...props}) {
|
||||
return (
|
||||
<Link {...props} data-noBrokenLinkCheck={noCheck}>
|
||||
{(noCheck ? '❌' : '✅') +
|
||||
' ' +
|
||||
(props.to ?? props.href) +
|
||||
(props.target ? ` (target=${props.target})` : '')}
|
||||
</Link>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
- <TestLink to="pathname:///dogfooding/javadoc#goodlink1" />
|
||||
- <TestLink href="pathname:///dogfooding/javadoc#goodlink2" />
|
||||
- <TestLink to="/dogfooding/javadoc#goodlink3" target="_blank" />
|
||||
- <TestLink href="/dogfooding/javadoc#goodlink4" target="_blank" />
|
||||
|
||||
These links are broken (try to single click on them) and should be reported. We need to explicitly disable the broken link checker for them:
|
||||
|
||||
- <TestLink to="/dogfooding/javadoc#badlink1" noCheck />
|
||||
- <TestLink href="/dogfooding/javadoc#badlink2" noCheck />
|
||||
- <TestLink to="/dogfooding/javadoc#badlink3" target="_self" noCheck />
|
||||
- <TestLink href="/dogfooding/javadoc#badlink4" target="_self" noCheck />
|
||||
|
||||
### Linking to JSON
|
||||
|
||||
- [./script.js](./_script.js)
|
||||
|
|
Loading…
Add table
Reference in a new issue