wip: implement page
This commit is contained in:
@ -3,3 +3,4 @@
|
||||
CREATE_GENERAL_CATEGORY: bool = True
|
||||
THUMB_DIMENSION: tuple[int, int] = (200, 200)
|
||||
MAX_THREADS: int = 50
|
||||
PAGE_EXT: str = ".ph"
|
16
src/main.py
16
src/main.py
@ -6,6 +6,8 @@ from path import Path
|
||||
from picture import Picture
|
||||
from bulk_page import BulkPage
|
||||
from bulk_category import BulkCategory
|
||||
from page import Page
|
||||
|
||||
import argparse
|
||||
import config
|
||||
|
||||
@ -21,7 +23,7 @@ def argument_parsing():
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
def scan_pages(folders: list[Path]) -> list[BulkPage]:
|
||||
def scan_bulk_pages(folders: list[Path]) -> list[BulkPage]:
|
||||
pages: list[BulkPage] = []
|
||||
prev: BulkPage = None
|
||||
with Bar("Scanning Pages...", max=len(folders)) as bar:
|
||||
@ -81,7 +83,7 @@ def create_categories(categories: list[BulkCategory]) -> None:
|
||||
def gen_bulk(bulk_path: Path):
|
||||
category_path: Path = Path(bulk_path, "categories")
|
||||
|
||||
pages: list[BulkPage] = scan_pages(bulk_path.get_dirs())
|
||||
pages: list[BulkPage] = scan_bulk_pages(bulk_path.get_dirs())
|
||||
categories: list[BulkCategory] = scan_categories(pages, category_path)
|
||||
|
||||
if config.CREATE_GENERAL_CATEGORY:
|
||||
@ -97,9 +99,16 @@ def gen_bulk(bulk_path: Path):
|
||||
category_path.create()
|
||||
create_categories(categories)
|
||||
|
||||
def scan_pages(site_path: Path):
|
||||
for path in [f for f in site_path.get_files() if f.get_name().endswith(config.PAGE_EXT)]:
|
||||
page: Page = Page(path)
|
||||
page.create()
|
||||
|
||||
def gen_pages(site_path: Path):
|
||||
scan_pages(site_path)
|
||||
|
||||
def regen(bulk_path: Path, is_thumb: bool, is_small: bool):
|
||||
pages: list[BulkPage] = scan_pages(bulk_path.get_dirs())
|
||||
pages: list[BulkPage] = scan_bulk_pages(bulk_path.get_dirs())
|
||||
with Bar("Regenerating assets...", max=len(pages)) as bar:
|
||||
for page in pages:
|
||||
for picture in page.get_pictures():
|
||||
@ -124,6 +133,7 @@ def main():
|
||||
if args.regen is not None:
|
||||
regen(bulk_path, 't' in args.regen, 's' in args.regen)
|
||||
gen_bulk(bulk_path)
|
||||
gen_pages(site_path)
|
||||
gen_home(site_path)
|
||||
|
||||
|
||||
|
28
src/page.py
Normal file
28
src/page.py
Normal file
@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import config
|
||||
import bozodown
|
||||
from path import Path
|
||||
|
||||
|
||||
class Page:
|
||||
|
||||
def __init__(self, path: Path):
|
||||
self._path: Path = path
|
||||
self._html: Path = Path(self._path.get_absolute_path()[:-len(config.PAGE_EXT)] + ".html")
|
||||
with open(path.get_absolute_path(), "r") as f:
|
||||
self._raw_content: str = f.read()
|
||||
|
||||
def _get_content(self):
|
||||
content = bozodown.render(self._raw_content)
|
||||
return content
|
||||
|
||||
def _to_html(self) -> str:
|
||||
html: str = self._get_content()
|
||||
return html
|
||||
|
||||
def create(self) -> Path:
|
||||
with open(self._html.get_absolute_path(), "w") as f:
|
||||
f.write(self._to_html())
|
@ -72,3 +72,7 @@ class Path():
|
||||
|
||||
def __repr__(self):
|
||||
return f"Path({self._absolute_path})"
|
||||
|
||||
def __eq__(self, value):
|
||||
if (isinstance(value, Path)):
|
||||
self = Path(value.get_absolute_path())
|
0
src/templates/page.css
Normal file
0
src/templates/page.css
Normal file
12
src/templates/page.jinja
Normal file
12
src/templates/page.jinja
Normal file
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="/page.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>{{ category.name }}</h1>
|
||||
</body>
|
||||
|
||||
</html>
|
Reference in New Issue
Block a user