aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgithub-actions <41898282+github-actions[bot]@users.noreply.github.com>2025-06-04 01:04:51 +0000
committergithub-actions <41898282+github-actions[bot]@users.noreply.github.com>2025-06-04 01:04:51 +0000
commitc9dc6b406189b97cbed02e8ad00a30e13eb8b3ac (patch)
treef04b0c9a27029f3e677a7d4a27ab67402dd73ba1
parentc03fcb2da2961c40cbb6000a2db61b161816d0a8 (diff)
downloadcleberg.net-c9dc6b406189b97cbed02e8ad00a30e13eb8b3ac.tar.gz
cleberg.net-c9dc6b406189b97cbed02e8ad00a30e13eb8b3ac.tar.bz2
cleberg.net-c9dc6b406189b97cbed02e8ad00a30e13eb8b3ac.zip
Commit from GitHub Actions (Ruff)
-rw-r--r--build.py44
1 files changed, 23 insertions, 21 deletions
diff --git a/build.py b/build.py
index e1b5cd8..e620202 100644
--- a/build.py
+++ b/build.py
@@ -7,6 +7,7 @@ import sys
from pathlib import Path
from datetime import datetime
+
def update_index_html(html_snippet, template_path="./theme/templates/index.html"):
"""
Read the index.html file at `template_path`, replace everything between
@@ -31,7 +32,7 @@ def update_index_html(html_snippet, template_path="./theme/templates/index.html"
# Include the newline after BEGIN_POSTS
insert_start = begin_index + len(begin_marker)
# Ensure we capture the newline character if present
- if content[insert_start:insert_start+1] == "\n":
+ if content[insert_start : insert_start + 1] == "\n":
insert_start += 1
# If there is a newline before END_POSTS, trim trailing whitespace from snippet block
@@ -59,16 +60,13 @@ def update_index_html(html_snippet, template_path="./theme/templates/index.html"
end_line_start = end_index
# Construct the new content
- new_content = (
- content[:insert_start]
- + indented_snippet
- + content[end_line_start:]
- )
+ new_content = content[:insert_start] + indented_snippet + content[end_line_start:]
# Write back to index.html
with open(template_path, "w", encoding="utf-8") as f:
f.write(new_content)
+
def get_recent_posts_html(content_dir="./content/blog", num_posts=3):
"""
Scan the `content_dir` for .org blog post files, extract their headers,
@@ -86,10 +84,10 @@ def get_recent_posts_html(content_dir="./content/blog", num_posts=3):
posts = []
header_patterns = {
- "title": re.compile(r'^#\+title:\s*(.+)$', re.IGNORECASE),
- "date": re.compile(r'^#\+date:\s*<(\d{4}-\d{2}-\d{2})'),
- "slug": re.compile(r'^#\+slug:\s*(.+)$', re.IGNORECASE),
- "filetags": re.compile(r'^#\+filetags:\s*(.+)$', re.IGNORECASE),
+ "title": re.compile(r"^#\+title:\s*(.+)$", re.IGNORECASE),
+ "date": re.compile(r"^#\+date:\s*<(\d{4}-\d{2}-\d{2})"),
+ "slug": re.compile(r"^#\+slug:\s*(.+)$", re.IGNORECASE),
+ "filetags": re.compile(r"^#\+filetags:\s*(.+)$", re.IGNORECASE),
}
for org_path in Path(content_dir).glob("*.org"):
@@ -139,13 +137,15 @@ def get_recent_posts_html(content_dir="./content/blog", num_posts=3):
# Skip files with invalid date format
continue
- posts.append({
- "title": title,
- "date_str": date_str,
- "date_obj": date_obj,
- "slug": slug,
- "tags": tags,
- })
+ posts.append(
+ {
+ "title": title,
+ "date_str": date_str,
+ "date_obj": date_obj,
+ "slug": slug,
+ "tags": tags,
+ }
+ )
# Sort posts by date (newest first)
posts.sort(key=lambda x: x["date_obj"], reverse=True)
@@ -157,16 +157,18 @@ def get_recent_posts_html(content_dir="./content/blog", num_posts=3):
lines = []
for post in recent:
lines.append('\t<div class="post">')
- lines.append(f'\t\t<time datetime="{post["date_str"]}">{post["date_str"]}</time>')
+ lines.append(
+ f'\t\t<time datetime="{post["date_str"]}">{post["date_str"]}</time>'
+ )
lines.append('\t\t<div class="post-content">')
lines.append(f'\t\t\t<a href="/blog/{post["slug"]}.html">{post["title"]}</a>')
if post["tags"]:
lines.append('\t\t\t<div class="post-tags">')
for tag in post["tags"]:
lines.append(f'\t\t\t\t<span class="tag">{tag}</span>')
- lines.append('\t\t\t</div>')
- lines.append('\t\t</div>')
- lines.append('\t</div>')
+ lines.append("\t\t\t</div>")
+ lines.append("\t\t</div>")
+ lines.append("\t</div>")
return "\n".join(lines)