mjestecko/tools/article_wrapper.py

46 lines
1.3 KiB
Python
Raw Normal View History

2023-05-21 14:24:54 +00:00
#!/usr/bin/python3
# todo: Show related git history of a file?
from sys import argv, exit
import time
from article_utils import the_line_after_metadata, parse_metadata
from page_shares import wrap_page, MONTHS
2023-05-21 14:24:54 +00:00
if len(argv) <= 1:
print("No file was supplied")
exit(-1)
with open(argv[1], "r") as f:
content = f.readlines()
i = the_line_after_metadata(content)
metadata = parse_metadata(argv[1])
title = metadata.get("Title", "Oopsie, somebody forgot to name the article!")
article_head = "\n# " + title + "\n---\n"
2023-05-21 14:24:54 +00:00
brief = metadata.get("Brief")
2023-05-21 14:24:54 +00:00
if not brief is None:
article_head += f"*{brief}*\n\n"
2023-05-21 14:24:54 +00:00
date = metadata.get("Date")
2023-05-21 14:24:54 +00:00
if not date is None:
article_head += f"-- Created: *{MONTHS[date.tm_mon]} {date.tm_mday}, {date.tm_year}*\n\n"
2023-05-21 14:24:54 +00:00
last_edit = metadata.get("Last Edit")
2023-05-21 14:24:54 +00:00
if not last_edit is None:
if date is None or last_edit.tm_mon != date.tm_mon or \
last_edit.tm_mday != date.tm_mday or last_edit.tm_year != date.tm_year:
article_head += f"-- Edited: *{MONTHS[last_edit.tm_mon]} {last_edit.tm_mday}, {last_edit.tm_year}*\n\n"
2023-05-21 14:24:54 +00:00
# todo: Hyperlinks to appropriate tag pages.
tags = metadata.get("Tags")
2023-05-21 14:24:54 +00:00
if tags:
article_head += f"""-- Tags: *{",".join(tags)}*\n\n"""
article_head += "---\n\n"
2023-05-21 14:24:54 +00:00
print(''.join(content[:i]) + wrap_page(article_head + ''.join(content[i:])))