📘DOC: Fix URL normalization for the Left Sidebar in docs (#1299)
* Fix URL normalization for the Left Sidebar in docs * Move the fix into `util.ts` as suggested by @FredKSchott
This commit is contained in:
parent
02c38a0d3b
commit
73a98821b7
2 changed files with 14 additions and 2 deletions
|
@ -1,8 +1,10 @@
|
||||||
---
|
---
|
||||||
import { SIDEBAR } from '../../config.ts';
|
import { SIDEBAR } from '../../config.ts';
|
||||||
import { getLanguageFromURL } from '../../util.ts';
|
import { getLanguageFromURL, removeLeadingSlash, removeTrailingSlash } from '../../util.ts';
|
||||||
const {currentPage} = Astro.props;
|
const {currentPage} = Astro.props;
|
||||||
const currentPageMatch = currentPage.slice(1);
|
|
||||||
|
// Get the slug w/o a leading or trailing slash
|
||||||
|
const currentPageMatch = removeLeadingSlash(removeTrailingSlash(currentPage));
|
||||||
const langCode = getLanguageFromURL(currentPage);
|
const langCode = getLanguageFromURL(currentPage);
|
||||||
// SIDEBAR is a flat array. Group it by sections to properly render.
|
// SIDEBAR is a flat array. Group it by sections to properly render.
|
||||||
const sidebarSections = SIDEBAR[langCode].reduce((col, item) => {
|
const sidebarSections = SIDEBAR[langCode].reduce((col, item) => {
|
||||||
|
|
|
@ -2,3 +2,13 @@ export function getLanguageFromURL(pathname: string) {
|
||||||
const langCodeMatch = pathname.match(/\/([a-z]{2}-?[A-Z]{0,2})\//);
|
const langCodeMatch = pathname.match(/\/([a-z]{2}-?[A-Z]{0,2})\//);
|
||||||
return langCodeMatch ? langCodeMatch[1] : 'en';
|
return langCodeMatch ? langCodeMatch[1] : 'en';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Remove \ and / from beginning of string */
|
||||||
|
export function removeLeadingSlash(path: string) {
|
||||||
|
return path.replace(/^[/\\]+/, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Remove \ and / from end of string */
|
||||||
|
export function removeTrailingSlash(path: string) {
|
||||||
|
return path.replace(/[/\\]+$/, '');
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue