mirror of
https://github.com/sergeyyarkov/yarkov.tech.git
synced 2026-10-11 10:29:21 +03:00
some refactor
This commit is contained in:
parent
c92c15c8e8
commit
2d94f31c16
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user