diff --git a/app/__pycache__/main.cpython-312.pyc b/app/__pycache__/main.cpython-312.pyc index 07612bc..74d04c2 100644 Binary files a/app/__pycache__/main.cpython-312.pyc and b/app/__pycache__/main.cpython-312.pyc differ diff --git a/app/controllers/__pycache__/category_controller.cpython-312.pyc b/app/controllers/__pycache__/category_controller.cpython-312.pyc index 90cb5d5..594f297 100644 Binary files a/app/controllers/__pycache__/category_controller.cpython-312.pyc and b/app/controllers/__pycache__/category_controller.cpython-312.pyc differ diff --git a/app/main.py b/app/main.py index dd15e29..4659dcf 100644 --- a/app/main.py +++ b/app/main.py @@ -13,7 +13,7 @@ from app.services.image_service import ImageService class Application: def __init__(self): """Initialize the FastAPI app and configure it.""" - self.app = FastAPI(lifespan=self._lifespan_event) + self.app = FastAPI( lifespan = self._lifespan_event ) self._set_image_sizes() self._setup_static_files() self._include_routers() @@ -21,6 +21,7 @@ class Application: + @asynccontextmanager async def _lifespan_event(self, app: FastAPI): """Lifespan event for startup and shutdown logic.""" diff --git a/app/services/__pycache__/image_service.cpython-312.pyc b/app/services/__pycache__/image_service.cpython-312.pyc index a92981c..54fd926 100644 Binary files a/app/services/__pycache__/image_service.cpython-312.pyc and b/app/services/__pycache__/image_service.cpython-312.pyc differ diff --git a/app/services/__pycache__/markdown_processor.cpython-312.pyc b/app/services/__pycache__/markdown_processor.cpython-312.pyc index 7fb3673..c2ab09c 100644 Binary files a/app/services/__pycache__/markdown_processor.cpython-312.pyc and b/app/services/__pycache__/markdown_processor.cpython-312.pyc differ diff --git a/app/services/__pycache__/metadata_processor.cpython-312.pyc b/app/services/__pycache__/metadata_processor.cpython-312.pyc index b754bc6..873c6b4 100644 Binary files a/app/services/__pycache__/metadata_processor.cpython-312.pyc and b/app/services/__pycache__/metadata_processor.cpython-312.pyc differ diff --git a/app/services/markdown_processor.py b/app/services/markdown_processor.py index c1c6927..fb96c91 100644 --- a/app/services/markdown_processor.py +++ b/app/services/markdown_processor.py @@ -35,11 +35,7 @@ class MarkdownProcessor: list: A list of processed sections containing metadata and rendered content. """ from pathlib import Path - sections = [] - - - for file in sorted(os.listdir(directory_path)): if file.endswith(".md"): file_path = os.path.join(directory_path, file) diff --git a/app/services/metadata_processor.py b/app/services/metadata_processor.py index de8a0e0..6be4b9a 100644 --- a/app/services/metadata_processor.py +++ b/app/services/metadata_processor.py @@ -5,6 +5,8 @@ from typing import List, Dict from fastapi import FastAPI +from app.services.image_service import ImageService, FileHandler + class MetadataProcessor: """ @@ -22,6 +24,7 @@ class MetadataProcessor: """ self.input_dir = input_dir self.output_file = output_file + self.app = app self.data = {"categories": [], "favorites": []} def _extract_metadata(self, file_path: str) -> Dict: @@ -66,11 +69,25 @@ class MetadataProcessor: # Add to 'favorites' if 'favorite' is true if metadata.get("favorite") and metadata["favorite"].lower() == "true": + image_type = "thumbnails" + category = os.path.relpath( root, self.input_dir ).replace( os.sep, "/" ) + filehandler = FileHandler(category=category, image_type=image_type, filename=metadata.get("image")) + imageservice = ImageService(self.app) + default_size = imageservice.get_image_size( image_type ) + width = default_size.get( "width" ) + height = default_size.get( "height" ) + + image_tag = imageservice.image_tag(category, image_type, metadata.get("image","Unkown")) + print(filehandler.dest_filename_webp) + print(image_tag) self.data["favorites"].append({ "name": metadata.get("name", "Unknown"), - "image": metadata.get("image", "images/default.jpg"), + "image": filehandler.dest_filename_webp, + "height": height, + "width": width, "description": metadata.get("summary", "No description provided"), - "path": os.path.relpath(root, self.input_dir).replace(os.sep, "/"), + "path": category, + }) def generate_json(self): diff --git a/data/Budget/0100_budget_indkøb_priser.md b/data/Budget/0100_budget_indkøb_priser.md index c8f50b7..bfee581 100644 --- a/data/Budget/0100_budget_indkøb_priser.md +++ b/data/Budget/0100_budget_indkøb_priser.md @@ -5,7 +5,7 @@ author: Henrik Jess date: ons 11 dec 23:25:00 CET 2024 summary: Fødevarer er markant billigere i Portugal med få undtagelser som bær og specialvarer. favorite: true -image: images/budget2.jpg +image: budget2.jpg category: Økonomi tags: [Portugal, Budget, Økonomi] --- diff --git a/data/Budget/images/budget2.jpg b/data/Budget/images/budget2.jpg new file mode 100644 index 0000000..e907c53 Binary files /dev/null and b/data/Budget/images/budget2.jpg differ diff --git a/generated_data.json b/generated_data.json index babac64..a2d535a 100644 --- a/generated_data.json +++ b/generated_data.json @@ -89,7 +89,9 @@ "favorites": [ { "name": "Budget - Indkøb", - "image": "images/budget2.jpg", + "image": "static/images/Budget/thumbnails/budget2.webp", + "height": 150, + "width": 150, "description": "Fødevarer er markant billigere i Portugal med få undtagelser som bær og specialvarer.", "path": "Budget" } diff --git a/static/images/Budget/thumbnails/budget2.jpg b/static/images/Budget/thumbnails/budget2.jpg new file mode 100644 index 0000000..2a2a4f5 Binary files /dev/null and b/static/images/Budget/thumbnails/budget2.jpg differ diff --git a/static/images/Budget/thumbnails/budget2.webp b/static/images/Budget/thumbnails/budget2.webp new file mode 100644 index 0000000..fe12945 Binary files /dev/null and b/static/images/Budget/thumbnails/budget2.webp differ diff --git a/templates/navigation.html b/templates/navigation.html index f4f32a5..df9bf26 100644 --- a/templates/navigation.html +++ b/templates/navigation.html @@ -26,8 +26,8 @@ {% for favorite in data.favorites %}
- - {{ favorite.name }} + + {{ favorite.name }}

{{ favorite.path }}: {{ favorite.description }}