diff options
| author | Danilo M. <danix@danix.xyz> | 2026-05-03 12:56:09 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-05-03 12:56:09 +0200 |
| commit | 220b9e054424569afc3298be04eeff6d7fa18381 (patch) | |
| tree | 62cdb045252692301a3c27cb0492705e25eeb2d6 /core | |
| parent | d821a186b485f395d83ab76ee73e4c21e7441a66 (diff) | |
| download | publisher-220b9e054424569afc3298be04eeff6d7fa18381.tar.gz publisher-220b9e054424569afc3298be04eeff6d7fa18381.zip | |
feat: add meta_type, meta_tags, meta_categories, meta_date properties to Article
Diffstat (limited to 'core')
| -rw-r--r-- | core/models.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/core/models.py b/core/models.py index 3df2088..9a7cff5 100644 --- a/core/models.py +++ b/core/models.py @@ -13,3 +13,32 @@ class Article: frontmatter: dict has_translation: bool translation_path: Path | None + + @property + def draft(self) -> bool: + return bool(self.frontmatter.get("draft", False)) + + @property + def meta_type(self) -> str: + return str(self.frontmatter.get("type", "")) + + @property + def meta_tags(self) -> str: + tags = self.frontmatter.get("tags", []) + if isinstance(tags, list): + return ", ".join(str(t) for t in tags) + return str(tags) if tags else "" + + @property + def meta_categories(self) -> str: + cats = self.frontmatter.get("categories", []) + if isinstance(cats, list): + return ", ".join(str(c) for c in cats) + return str(cats) if cats else "" + + @property + def meta_date(self) -> str: + raw = self.frontmatter.get("date", "") + if not raw: + return "" + return str(raw)[:10] # ISO date → "YYYY-MM-DD" |
