slugSelector fn modified for trailing slash

This commit is contained in:
Al Murad Uzzaman
2024-07-31 12:59:07 +06:00
parent f4c45c5b8f
commit 267f2efade
3 changed files with 57 additions and 17 deletions
+47 -13
View File
@@ -75,6 +75,47 @@ const filteredSupportedLang = supportedLang.filter(
export { filteredSupportedLang as supportedLang };
// export const slugSelector = (url: string, lang: string) => {
// const { default_language, default_language_in_subdir } = config.settings;
// const { trailing_slash } = config.site;
// let constructedUrl;
// // Determine the initial URL structure based on language
// if (url === "/") {
// constructedUrl = lang === default_language ? "/" : `/${lang}`;
// } else {
// constructedUrl = getRelativeLocaleUrl(lang, url, {
// normalizeLocale: false,
// });
// }
// // Adjust for trailing slash
// if (trailing_slash) {
// if (!constructedUrl.endsWith("/")) {
// constructedUrl += "/";
// }
// } else {
// if (constructedUrl.endsWith("/")) {
// constructedUrl = constructedUrl.slice(0, -1);
// }
// }
// // Ensure home URL is absolute
// if (constructedUrl === "") {
// constructedUrl = "/";
// }
// // Add language path if necessary
// if (lang === default_language) {
// constructedUrl = default_language_in_subdir
// ? `/${lang}${constructedUrl}`
// : constructedUrl;
// }
// return constructedUrl;
// };
export const slugSelector = (url: string, lang: string) => {
const { default_language, default_language_in_subdir } = config.settings;
const { trailing_slash } = config.site;
@@ -90,28 +131,21 @@ export const slugSelector = (url: string, lang: string) => {
});
}
// Add language path if necessary
if (lang === default_language && default_language_in_subdir) {
constructedUrl = `/${lang}${constructedUrl}`;
}
// Adjust for trailing slash
if (trailing_slash) {
if (!constructedUrl.endsWith("/")) {
constructedUrl += "/";
}
} else {
if (constructedUrl.endsWith("/")) {
if (constructedUrl.endsWith("/") && constructedUrl !== "/") {
constructedUrl = constructedUrl.slice(0, -1);
}
}
// Ensure home URL is absolute
if (constructedUrl === "") {
constructedUrl = "/";
}
// Add language path if necessary
if (lang === default_language) {
constructedUrl = default_language_in_subdir
? `/${lang}${constructedUrl}`
: constructedUrl;
}
return constructedUrl;
};