add: prev and next button

This commit is contained in:
starnakin 2025-04-14 20:02:05 +02:00
parent b5b306eb09
commit a106770769
2 changed files with 25 additions and 6 deletions

View File

@ -19,18 +19,25 @@ def scan_pages(folders: list[Path]) -> list[Page]:
for folder in folders:
files: list[Path] = folder.get_files()
prev: Page = Page(folder.get_absolute_path(), folder.get_name(), None, None, None)
page: Page = Page(folder.get_absolute_path(), folder.get_name(), None, prev, None)
raw: Path = Path(folder.get_absolute_path(), folder.get_name() + ".NEF")
images: list[Path] = [Picture(file, page=prev, raw=raw) for file in files if file.get_name().endswith(".png")]
prev.images = images
page.images = images
if len(images) == 0:
bar.next()
continue
pages.append(prev)
pages.append(page)
if prev is not None:
prev.next = page
prev = page
bar.next()
pages[-1].next = pages[0]
pages[0].prev = pages[-1]
return pages
def create_pages(pages: list[Page]) -> None:

View File

@ -24,19 +24,31 @@ class Page():
self._exif: Path = Path(self.path, "exif.txt")
self._readme: Path = Path(self.path, "readme.md")
self._raw: Path = Path(self.path, name + ".NEF")
self._html: Path = Path(self.path, "page.html")
self.html: Path = Path(self.path, "page.html")
self.prev: Page = prev
self.next: Page = next
def _render_raw(self):
if not self._raw.exist():
return None
return self._raw.get_name()
def _render_prev(self):
if self.prev is None:
return None
return f"../{self.prev.name}/{self.prev.html.get_name()}"
def _render_next(self):
if self.next is None:
return None
return f"../{self.next.name}/{self.next.html.get_name()}"
def _to_html(self) -> str|None:
html_rendered = page_template.render(exif=self._render_exif(), raw=self._render_raw(), images=self._render_images(), readme=self._render_readme())
html_rendered = page_template.render(exif=self._render_exif(), raw=self._render_raw(), images=self._render_images(), readme=self._render_readme(), prev=self._render_prev(), next=self._render_next())
return html_rendered
def create(self) -> Path:
with open(self._html.get_absolute_path(), "w") as f:
with open(self.html.get_absolute_path(), "w") as f:
f.write(self._to_html())
self.created = True