From c45cebe4974f39e3964ae32d590982749c89c6bf Mon Sep 17 00:00:00 2001 From: Lars Noack Date: Tue, 15 Apr 2025 13:00:34 +0200 Subject: [PATCH] feat: properly building additional keywords --- stsg/build.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/stsg/build.py b/stsg/build.py index e55bc01..ace5624 100644 --- a/stsg/build.py +++ b/stsg/build.py @@ -4,8 +4,9 @@ import shutil from pathlib import Path import os import markdown -from typing import Optional, Union, Dict, Generator, List +from typing import Optional, Union, Dict, Generator, List, DefaultDict from bs4 import BeautifulSoup +from collections import defaultdict from .config import SOURCE_DIRECTORY, DIST_DIRECTORY, LANGUAGE_INFORMATION, ARTICLE_PREVIEW_LENGTH, DEFAULT_LANGUAGE @@ -157,10 +158,7 @@ class ArticleOverview: "article_overview_cards": self.overview_cards, } - def get_article_values(self, language_code: Optional[str] = None) -> Dict[str, str]: - if language_code in self.article_translations_map: - return self.article_translations_map[language_code].get_article_values() - + def get_article_values(self) -> Dict[str, str]: res = {} for key, value in self._get_values().items(): res[key + ":" + self.slug] = value @@ -208,13 +206,20 @@ def copy_static(): logger = logging.getLogger("stsg.build") TEMPLATE = Template(Path(SOURCE_DIRECTORY, "templates")) ARTICLE_LAKE: Dict[str, ArticleOverview] = {} +ARTICLE_REFERENCE_VALUES: DefaultDict[str, Dict[str, str]] = defaultdict(dict) def build(): logger.info("building static page") copy_static() tree = ArticleOverview(directory=Path(SOURCE_DIRECTORY, "pages")) + + # build article reverence values + for article_overview in ARTICLE_LAKE.values(): + ARTICLE_REFERENCE_VALUES[None].update(article_overview.get_article_values()) + for language_code, at in article_overview.article_translations_map.items(): + ARTICLE_REFERENCE_VALUES[language_code].update(at.get_article_values()) - print(ARTICLE_LAKE) - + print(ARTICLE_REFERENCE_VALUES) + tree.build() \ No newline at end of file