summaryrefslogtreecommitdiff
path: root/src/pyssg/page.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pyssg/page.py')
-rw-r--r--src/pyssg/page.py46
1 files changed, 27 insertions, 19 deletions
diff --git a/src/pyssg/page.py b/src/pyssg/page.py
index 1e0cdeb..43acb05 100644
--- a/src/pyssg/page.py
+++ b/src/pyssg/page.py
@@ -3,23 +3,21 @@ from datetime import datetime, timezone
from .configuration import Configuration
-DFORMAT_RSS = '%a, %d %b %Y %H:%M:%S GMT'
-DFORMAT_SITEMAP = '%Y-%m-%d'
-
-
class Page:
def __init__(self,
name: str,
ctime: float,
mtime: float,
html: str,
- meta: dict):
+ meta: dict,
+ config: Configuration):
# initial data
self.name: str = name
self.ctimestamp: float = ctime
self.mtimestamp: float = mtime
self.content: str = html
self.meta: dict = meta
+ self.config: Configuration = config
# data from self.meta
self.title: str = ''
@@ -32,6 +30,7 @@ class Page:
# constructed
self.url: str = ''
+ self.image_url: str = ''
self.cdate: str = ''
self.cdate_list: str = ''
self.cdate_list_sep: str = ''
@@ -57,7 +56,7 @@ class Page:
# parses meta from self.meta, for og, it prioritizes,
# the actual og meta
- def parse(self, config: Configuration):
+ def parse(self):
# required meta elements
self.title = self.meta['title'][0]
self.author = self.meta['author'][0]
@@ -67,21 +66,23 @@ class Page:
# dates
self.cdatetime = datetime.fromtimestamp(self.ctimestamp,
tz=timezone.utc)
- self.cdate = self.cdatetime.strftime(config.dformat)
- self.cdate_list = self.cdatetime.strftime(config.l_dformat)
- self.cdate_list_sep = self.cdatetime.strftime(config.lsep_dformat)
- self.cdate_rss = self.cdatetime.strftime(DFORMAT_RSS)
- self.cdate_sitemap = self.cdatetime.strftime(DFORMAT_SITEMAP)
+ self.cdate = self.cdatetime.strftime(self.config.dformat)
+ self.cdate_list = self.cdatetime.strftime(self.config.l_dformat)
+ self.cdate_list_sep = self.cdatetime.strftime(self.config.lsep_dformat)
+ self.cdate_rss = self.cdatetime.strftime(self.config.dformat_rss)
+ self.cdate_sitemap = \
+ self.cdatetime.strftime(self.config.dformat_sitemap)
# only if file/page has been modified
if self.mtimestamp != 0.0:
self.mdatetime = datetime.fromtimestamp(self.mtimestamp,
tz=timezone.utc)
- self.mdate = self.mdatetime.strftime(config.dformat)
- self.mdate_list = self.mdatetime.strftime(config.l_dformat)
- self.mdate_list_sep = self.mdatetime.strftime(config.lsep_dformat)
- self.mdate_rss = self.mdatetime.strftime(DFORMAT_RSS)
- self.mdate_sitemap = self.mdatetime.strftime(DFORMAT_SITEMAP)
+ self.mdate = self.mdatetime.strftime(self.config.dformat)
+ self.mdate_list = self.mdatetime.strftime(self.config.l_dformat)
+ self.mdate_list_sep = self.mdatetime.strftime(self.config.lsep_dformat)
+ self.mdate_rss = self.mdatetime.strftime(self.config.dformat_rss)
+ self.mdate_sitemap = \
+ self.mdatetime.strftime(self.config.dformat_sitemap)
# not always contains tags
try:
@@ -90,12 +91,19 @@ class Page:
for t in tags_only:
self.tags.append((t,
- f'{config.base_url}/tag/@{t}.html'))
+ f'{self.config.url}/tag/@{t}.html'))
except KeyError: pass
- self.url = f'{config.base_url}/{self.name.replace(".md", ".html")}'
+ self.url = f'{self.config.url}/{self.name.replace(".md", ".html")}'
+
+ try:
+ self.image_url = \
+ f'{self.config.base_static_url}/{self.meta["image_url"]}'
+ except KeyError:
+ self.image_url = \
+ f'{self.config.base_static_url}/{self.config.default_image_url}'
- # if contains object graph elements
+ # if contains open graph elements
try:
# og_e = object graph entry
for og_e in self.meta['og']: