summaryrefslogtreecommitdiff
path: root/src/pyssg/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pyssg/builder.py')
-rw-r--r--src/pyssg/builder.py38
1 files changed, 16 insertions, 22 deletions
diff --git a/src/pyssg/builder.py b/src/pyssg/builder.py
index 0cb1728..d70b976 100644
--- a/src/pyssg/builder.py
+++ b/src/pyssg/builder.py
@@ -95,29 +95,20 @@ class Builder:
all_pages=self.all_files,
all_tags=self.all_tags)
- self.__render_pages(self.dir_cfg['plt'])
+ self.__render_pages(self.dir_cfg['plt']['page'])
- if self.dir_cfg['tags']:
+ if 'tags' in self.dir_cfg['plt']:
create_dir(os.path.join(self.dir_cfg['dst'], 'tags'), True)
- if isinstance(self.dir_cfg['tags'], str):
- self.__render_tags(self.dir_cfg['tags'])
- else:
- self.__render_tags('tag.html')
- log.debug('rendered tags for dir "%s"', self.dir_cfg['dir'])
-
- default_plts: dict[str, str] = {'index': 'index.html',
- 'rss': 'rss.xml',
- 'sitemap': 'sitemap.xml'}
- for opt in default_plts.keys():
- if self.dir_cfg[opt]:
- if isinstance(self.dir_cfg[opt], str):
- self.__render_template(self.dir_cfg[opt],
- default_plts[opt],
- **self.common_vars)
- else:
- self.__render_template(default_plts[opt],
- default_plts[opt],
- **self.common_vars)
+ self.__render_tags(self.dir_cfg['plt']['tags'])
+
+ generic: dict[str, str] = {'index': 'index.html',
+ 'rss': 'rss.xml',
+ 'sitemap': 'sitemap.xml'}
+ for plt in generic:
+ if plt in self.dir_cfg['plt']:
+ self.__render_template(self.dir_cfg['plt'][plt],
+ generic[plt],
+ **self.common_vars)
def __create_dir_structure(self) -> None:
log.debug('creating dir structure for dir "%s"', self.dir_cfg['dir'])
@@ -153,6 +144,9 @@ class Builder:
def __render_tags(self, template_name: str) -> None:
log.debug('rendering tags with template "%s"', template_name)
+ tag_prefix: str = ''
+ if self.dir_cfg['tags_prefix']:
+ tag_prefix = self.dir_cfg['tags_prefix']
tag_vars: dict = deepcopy(self.common_vars)
tag_pages: list[Page]
for t in self.all_tags:
@@ -164,7 +158,7 @@ class Builder:
log.debug('added page "%s" to tag "%s"', p.name, t)
tag_vars['tag'] = t
tag_vars['tag_pages'] = tag_pages
- t_fname: str = f'tags/{t}.html'
+ t_fname: str = f'tags/{tag_prefix}{t}.html'
# actually render tag page
self.__render_template(template_name, t_fname, **tag_vars)
log.debug('rendered tag "%s"', t)