steve0greatness,
created on Friday, 2 February 2024, 06:45:28 (1706856328),
received on Monday, 6 May 2024, 02:55:37 (1714964137)
Author identity: Steve0Greatness <steve0greatnessiscool@gmail.com>
1a7e4956d5056f855f6ab818bd874e48e5145797
build.py
@@ -8,11 +8,14 @@ from datetime import datetime
from json import dump as DumpJSON
from yaml import safe_load as LoadYML
from re import sub as RegReplace
from typing import Literal
GITHUB_BUILD_DIR = "build" # Separate because this site is built with an action that won't work if they aren't
LOCAL_BUILD_DIR = "build"
BUILD_DIRECTORY = GITHUB_BUILD_DIR if len(argv) > 1 and argv[1] == "gh-pages-deploy" else LOCAL_BUILD_DIR
IS_GH_ACTIONS = len(argv) > 1 and argv[1] == "gh-pages-deploy"
BUILD_DIRECTORY = GITHUB_BUILD_DIR if IS_GH_ACTIONS else LOCAL_BUILD_DIR
PAGES = {
"index.html": "index.html",
@@ -61,11 +64,13 @@ def PostSortHelper(Post):
def GetBlogList():
print("Grabbing post list")
PostSlugs = ListDirectory("blog-posts")
PostSlugs: tuple[tuple[Literal["blog-posts", "drafts"], str], ...] = tuple( ("blog-posts", file) for file in ListDirectory("blog-posts") )
if not IS_GH_ACTIONS:
PostSlugs = PostSlugs + tuple( ("drafts", file) for file in ListDirectory("drafts") )
Posts = []
for slug in PostSlugs:
for dir, slug in PostSlugs:
print("Grabbing post list blog-posts/%s" % (slug))
with open("blog-posts/" + slug, encoding="utf-8") as MDFile:
with open(dir + "/" + slug, encoding="utf-8") as MDFile:
RawMD = MDFile.read()
PostHTML = RenderMarkdown(RawMD)
Item = PostHTML.metadata
@@ -81,6 +86,7 @@ def GetBlogList():
Item["pathname"] = slug.replace(".md", ".html")
Item["plaintext"] = slug.replace(".md", ".txt")
Item["origin"] = slug
Item["is-draft"] = dir == "drafts"
Posts.append(Item)
PostsByDate = sorted(Posts, key=PostSortHelper, reverse=True)
return PostsByDate
@@ -151,13 +157,16 @@ def RenderPosts():
global PostList
for post in PostList:
Revised = post["updated"] if "updated" in post else False
RenderedHTML = RenderTemplate("blog-post.html",
Revised=Revised,
Title=post["title"],
PostDate=post["date"],
Content=post["content"],
PostPath=post["pathname"],
PlaintextPath=post["plaintext"])
RenderedHTML = RenderTemplate(
"blog-post.html",
Revised=Revised,
Title=post["title"],
PostDate=post["date"],
Content=post["content"],
PostPath=post["pathname"],
PlaintextPath=post["plaintext"],
IsDraft=post["is-draft"],
)
print("Building blog-posts/%s to %s/blog/%s" % (post["origin"], BUILD_DIRECTORY, post["pathname"]))
with open(BUILD_DIRECTORY + "/blog/" + post["pathname"], "w", encoding="utf-8") as PostHTMLFile:
PostHTMLFile.write(RenderedHTML)
views/blog-list.html
@@ -28,6 +28,9 @@
<td>
<time>{{post["date"]}} PST</time>
</td>
<td>
{% if post["is-draft"] %}<i>Draft</i>{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
views/blog-post.html
@@ -25,7 +25,7 @@
<img src="/md-src.png" width="16" height="16" aria-hidden="true" />
</a>
</div>
<time>{{PostDate}} PST</time> {% if Revised %}- <span aria-hidden="true" style="font-style:italic">Revision as of: </span> <time aria-label="Revision">{{Revised}} PST</time>{% endif %}
<time>{{PostDate}} PST</time> {% if Revised %}- <span aria-hidden="true" style="font-style:italic">Revision as of: </span> <time aria-label="Revision">{{Revised}} PST</time>{% endif %} {% if IsDraft %}<i>Draft</i>{% endif %}
</header>
{{ Content }}
</article>