some refactor

This commit is contained in:
Sergey Yarkov 2022-08-27 16:28:16 +03:00
parent c92c15c8e8
commit 2d94f31c16
3 changed files with 11 additions and 13 deletions

View File

@ -12,6 +12,7 @@ export function formatArticlesByLangs(data: Record<string, MDXInstance<ArticleTy
const splitted = module.file.split("/");
const lang = splitted.at(-2);
const name = splitted.at(-3);
if (!modules[name]) modules[name] = {};
modules[name][lang] = module;
}

View File

@ -8,22 +8,19 @@ class ArticleService {
const modules = formatArticlesByLangs(data);
const siteLang = getLanguageFromURL(Astro.url.pathname);
const articles: MDXInstance<ArticleType>[] = [];
const push = (article: MDXInstance<ArticleType>, lang: LanguageKeys) => {
articles.push(article);
article.frontmatter.lang = lang;
};
for (const key of Object.keys(modules)) {
const langs = Object.keys(modules[key]);
for (const articleLang of langs) {
const langs = Object.keys(modules[key]) as LanguageKeys[];
for (const lang of langs) {
const isNonDefaultLanguage = !langs.includes(siteLang) && langs.length === 1;
const article = modules[key];
if (articleLang === siteLang) {
articles.push(article[siteLang]);
article[siteLang].frontmatter.lang = siteLang;
}
if (isNonDefaultLanguage) {
articles.push(article[articleLang]);
article[articleLang].frontmatter.lang = articleLang;
}
if (lang === siteLang) push(article[siteLang], siteLang);
if (isNonDefaultLanguage) push(article[lang], lang);
}
}

View File

@ -7,8 +7,8 @@ export const encode = (data: object) => {
.join("&");
};
export const getLanguageFromURL = (pathname: string) => {
const lang = pathname.split("/")[1];
export const getLanguageFromURL = (pathname: string): LanguageKeys => {
const lang = pathname.split("/")[1] as LanguageKeys;
if (Object.hasOwn(languages, lang)) return lang;
return DEFAULT_LANGUAGE;
};