diff options
author | 2021-03-24 14:28:45 +0800 | |
---|---|---|
committer | 2021-03-24 14:28:45 +0800 | |
commit | 19191bb1f45d14522a8de00b70feae2fc624e58a (patch) | |
tree | 31828820433a2bcc063822c9350e524546be9b23 | |
parent | Improve variable and key names for page utils. (diff) |
Simplify pathlib code and specify file encoding.
-rw-r--r-- | pydis_site/apps/content/utils.py | 18 | ||||
-rw-r--r-- | pydis_site/apps/content/views/page_category.py | 5 |
2 files changed, 11 insertions, 12 deletions
diff --git a/pydis_site/apps/content/utils.py b/pydis_site/apps/content/utils.py index 8cbcad91..0faf722c 100644 --- a/pydis_site/apps/content/utils.py +++ b/pydis_site/apps/content/utils.py @@ -8,19 +8,19 @@ from markdown2 import markdown def get_category(path: Path) -> Dict[str, str]: """Load category information by name from _info.yml.""" - if not path.exists() or not path.is_dir(): + if not path.is_dir(): raise Http404("Category not found.") - return yaml.safe_load(path.joinpath("_info.yml").read_text()) + return yaml.safe_load(path.joinpath("_info.yml").read_text(encoding="utf-8")) def get_categories(path: Path) -> Dict[str, Dict]: """Get information for all categories.""" categories = {} - for name in path.iterdir(): - if name.is_dir(): - categories[name.name] = get_category(path.joinpath(name.name)) + for item in path.iterdir(): + if item.is_dir(): + categories[item.name] = get_category(item) return categories @@ -29,8 +29,8 @@ def get_category_pages(path: Path) -> Dict[str, Dict]: """Get all page names and their metadata at a category path.""" pages = {} - for item in path.iterdir(): - if item.is_file() and item.name.endswith(".md"): + for item in path.glob("*.md"): + if item.is_file(): md = markdown(item.read_text(), extras=["metadata"]) pages[item.stem] = md.metadata @@ -39,11 +39,11 @@ def get_category_pages(path: Path) -> Dict[str, Dict]: def get_page(path: Path) -> Dict[str, Union[str, Dict]]: """Get one specific page.""" - if not path.exists() or not path.is_file(): + if not path.is_file(): raise Http404("Page not found.") html = markdown( - path.read_text(), + path.read_text(encoding="utf-8"), extras=[ "metadata", "fenced-code-blocks", diff --git a/pydis_site/apps/content/views/page_category.py b/pydis_site/apps/content/views/page_category.py index 0bef82d0..91aed7f0 100644 --- a/pydis_site/apps/content/views/page_category.py +++ b/pydis_site/apps/content/views/page_category.py @@ -50,12 +50,11 @@ class PageOrCategoryView(TemplateView): else: raise Http404 - breadcrumb_items = [ + context["breadcrumb_items"] = [ { "name": utils.get_category(settings.PAGES_PATH / location)["name"], "path": str(location) - } for location in self.location.parents + } for location in reversed(self.location.parents) ] - context["breadcrumb_items"] = reversed(breadcrumb_items) return context |