summaryrefslogtreecommitdiff
path: root/docs/src
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src')
-rw-r--r--docs/src/components/LeftSidebar/LeftSidebar.astro6
-rw-r--r--docs/src/util.ts10
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(/[/\\]+$/, '');
+}