diff options
author | 2021-09-04 19:55:55 -0500 | |
---|---|---|
committer | 2021-09-04 19:55:55 -0500 | |
commit | 73a98821b785e0de1e059d50bbdce402b3a8eaca (patch) | |
tree | 0c3b44563edddbd54fb2a2687ace4b350426e934 /docs/src | |
parent | 02c38a0d3b1e71d2cb708c5ef2d2c472ca977e5a (diff) | |
download | astro-73a98821b785e0de1e059d50bbdce402b3a8eaca.tar.gz astro-73a98821b785e0de1e059d50bbdce402b3a8eaca.tar.zst astro-73a98821b785e0de1e059d50bbdce402b3a8eaca.zip |
📘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
Diffstat (limited to 'docs/src')
-rw-r--r-- | docs/src/components/LeftSidebar/LeftSidebar.astro | 6 | ||||
-rw-r--r-- | docs/src/util.ts | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/docs/src/components/LeftSidebar/LeftSidebar.astro b/docs/src/components/LeftSidebar/LeftSidebar.astro index 813de0cf7..1960dbb04 100644 --- a/docs/src/components/LeftSidebar/LeftSidebar.astro +++ b/docs/src/components/LeftSidebar/LeftSidebar.astro @@ -1,8 +1,10 @@ --- import { SIDEBAR } from '../../config.ts'; -import { getLanguageFromURL } from '../../util.ts'; +import { getLanguageFromURL, removeLeadingSlash, removeTrailingSlash } from '../../util.ts'; 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); // SIDEBAR is a flat array. Group it by sections to properly render. const sidebarSections = SIDEBAR[langCode].reduce((col, item) => { diff --git a/docs/src/util.ts b/docs/src/util.ts index 0ec91bce0..269373735 100644 --- a/docs/src/util.ts +++ b/docs/src/util.ts @@ -2,3 +2,13 @@ export function getLanguageFromURL(pathname: string) { const langCodeMatch = pathname.match(/\/([a-z]{2}-?[A-Z]{0,2})\//); 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(/[/\\]+$/, ''); +} |