1
0
mirror of https://github.com/venthur/blag.git synced 2025-11-25 20:52:43 +00:00

Merge branch 'master' into better_default_theme

This commit is contained in:
Bastian Venthur
2023-06-16 09:34:08 +02:00
committed by GitHub
8 changed files with 105 additions and 7 deletions

View File

@@ -257,6 +257,7 @@ def build(args: argparse.Namespace) -> None:
try:
page_template = env.get_template('page.html')
article_template = env.get_template('article.html')
index_template = env.get_template('index.html')
archive_template = env.get_template('archive.html')
tags_template = env.get_template('tags.html')
tag_template = env.get_template('tag.html')
@@ -286,6 +287,7 @@ def build(args: argparse.Namespace) -> None:
blog_description=config['description'],
blog_author=config['author'],
)
generate_index(articles, index_template, args.output_dir)
generate_archive(articles, archive_template, args.output_dir)
generate_tags(articles, tags_template, tag_template, args.output_dir)
@@ -305,6 +307,8 @@ def process_markdown(
If a markdown file has a `date` metadata field it will be recognized
as article otherwise as page.
Articles are sorted by date in descending order.
Parameters
----------
convertibles
@@ -317,7 +321,7 @@ def process_markdown(
Returns
-------
list[tuple[str, dict[str, Any]]], list[tuple[str, dict[str, Any]]]
articles and pages
articles and pages, articles are sorted by date in descending order.
"""
logger.info("Converting Markdown files...")
@@ -404,12 +408,14 @@ def generate_feed(
feed.write(fh, encoding='utf8')
def generate_archive(
def generate_index(
articles: list[tuple[str, dict[str, Any]]],
template: Template,
output_dir: str,
) -> None:
"""Generate the archive page.
"""Generate the index page.
This is used for the index (i.e. landing) page.
Parameters
----------
@@ -431,6 +437,35 @@ def generate_archive(
fh.write(result)
def generate_archive(
articles: list[tuple[str, dict[str, Any]]],
template: Template,
output_dir: str,
) -> None:
"""Generate the archive page.
This is used for the full archive.
Parameters
----------
articles
List of articles. Each article has the destination path and a
dictionary with the content.
template
output_dir
"""
archive = []
for dst, context in articles:
entry = context.copy()
entry['dst'] = dst
archive.append(entry)
result = template.render(dict(archive=archive))
with open(f'{output_dir}/archive.html', 'w') as fh:
fh.write(result)
def generate_tags(
articles: list[tuple[str, dict[str, Any]]],
tags_template: Template,

View File

@@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block title %}{{ site.title }}{% endblock %}
{% block title %}Archive{% endblock %}
{% block content %}

23
blag/templates/index.html Normal file
View File

@@ -0,0 +1,23 @@
{% extends "base.html" %}
{% block title %}{{ site.title }}{% endblock %}
{% block content %}
{% for entry in archive[:10] %}
{% if entry.title %}
<h1><a href="{{entry.dst}}">{{entry.title}}</a></h1>
{% if entry.description %}
<p>— {{ entry.description }}</p>
{% endif %}
{% endif %}
<p>Written on {{ entry.date.date() }}.</p>
{% endfor %}
<p><a href="/archive.html">all articles...</a></p>
{% endblock %}