Skip to content

Commit

Permalink
fix(v2): baseUrl is wrongly appended to anchor links (#3112)
Browse files Browse the repository at this point in the history
* fix baseurl being wrongly appended to anchor links

* fix baseurl being wrongly appended to anchor links
  • Loading branch information
slorber authored Jul 24, 2020
1 parent 08a726e commit f926178
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ describe('useBaseUrl', () => {
expect(useBaseUrl('/hello/byebye', {absolute: true})).toEqual(
'https://v2.docusaurus.io/hello/byebye',
);
expect(useBaseUrl('#hello')).toEqual('#hello');
});

test('non-empty base URL', () => {
Expand Down Expand Up @@ -69,6 +70,7 @@ describe('useBaseUrl', () => {
);
expect(useBaseUrl('/docusaurus/')).toEqual('/docusaurus/');
expect(useBaseUrl('/docusaurus/hello')).toEqual('/docusaurus/hello');
expect(useBaseUrl('#hello')).toEqual('#hello');
});
});

Expand Down Expand Up @@ -99,6 +101,7 @@ describe('useBaseUrlUtils().withBaseUrl()', () => {
expect(withBaseUrl('/hello/byebye', {absolute: true})).toEqual(
'https://v2.docusaurus.io/hello/byebye',
);
expect(withBaseUrl('#hello')).toEqual('#hello');
});

test('non-empty base URL', () => {
Expand Down Expand Up @@ -129,5 +132,6 @@ describe('useBaseUrlUtils().withBaseUrl()', () => {
);
expect(withBaseUrl('/docusaurus/')).toEqual('/docusaurus/');
expect(withBaseUrl('/docusaurus/hello')).toEqual('/docusaurus/hello');
expect(withBaseUrl('#hello')).toEqual('#hello');
});
});
8 changes: 6 additions & 2 deletions packages/docusaurus/src/client/exports/useBaseUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ function addBaseUrl(
return url;
}

// it never makes sense to add a base url to a local anchor url
if (url.startsWith('#')) {
return url;
}

// it never makes sense to add a base url to an url with a protocol
if (hasProtocol(url)) {
return url;
Expand All @@ -32,8 +37,7 @@ function addBaseUrl(
return baseUrl + url;
}

// sometimes we try to add baseurl to an url that already has a baseurl
// we should avoid adding the baseurl twice
// We should avoid adding the baseurl twice if it's already there
const shouldAddBaseUrl = !url.startsWith(baseUrl);

const basePath = shouldAddBaseUrl ? baseUrl + url.replace(/^\//, '') : url;
Expand Down

0 comments on commit f926178

Please sign in to comment.