BUGFIX: Ensure .md links with hashes are rewritten properly (#228)

* Upgrade gatsby
* BUGFIX: ensure .md links with hashes are rewritten properly
This commit is contained in:
Aaron Carlino 2020-07-01 14:19:45 +12:00 committed by GitHub
parent 33458d485f
commit c9d3bfd92e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 2 deletions

View File

@ -20,6 +20,7 @@ const relativeLink = (currentNode: SilverstripeDocument, href: string): string =
return slug;
};
/**
* Ensure links use the Gatsby <Link /> component. Client-side routing FTW
*
@ -39,7 +40,6 @@ const rewriteLink = (
const currentNode = getCurrentNode();
const version = getCurrentVersion();
// shorthand api links
if (href.match(/^api\:/)) {
const newHref = rewriteAPILink(href);
@ -90,7 +90,6 @@ const rewriteLink = (
// Relative to page
if (currentNode && currentNode.parentSlug) {
// Relative links to markdown files should be resolved to their pretty urls.
if (href.endsWith('.md')) {
return createElement(
@ -102,6 +101,22 @@ const rewriteLink = (
domToReact(children, parseOptions)
)
}
const hashMatches = href.match(/(\.md#([A-Za-z0-9_-]+))$/);
if (hashMatches) {
const newHashLink = href.replace(
new RegExp(`${hashMatches[1]}$`),
`#${hashMatches[2]}`
);
return createElement(
Link,
{
to: relativeLink(currentNode, newHashLink).replace(/\/$/, ''),
className: 'gatsby-link',
},
domToReact(children, parseOptions)
)
}
return createElement(
Link,