markdown-site/automations/write_blog_pages.py

87 lines
3.6 KiB
Python

import blogs
import header
import root
from datetime import datetime
import os
file_extension = "md"
url = "http://deadvey.com"
blog_index_path = f"{root.path}/blog/"
tags = ["index"]
for i in range(0, len(blogs.blogs_array)):
for j in blogs.blogs_array[i][4]:
if j not in tags:
tags.append(j)
for tag in tags:
previous_year = 0 # Set the previous year as 0, the year is outputted to the page if it is different to 'previous_year'
file_name = tag.replace("/","per")
with open(f"{blog_index_path}/{file_name}.{file_extension}", "w") as blog_tag_file:
blog_tag_file.write(f"{header.header}")
if tag == "index":
blog_tag_file.write(f"[RSS Feed](/rss)\n@blog@deadvey.com (Activity Pub Feed)\n")
if tag != "index":
blog_tag_file.write(f"***{tag}:***<br/>")
for current_blog in range(len(blogs.blogs_array)-1, -1, -1): # eg 50 - 0
if tag in blogs.blogs_array[current_blog][4] or tag == "index":
# Hexadecimal time parsing/formatting
parsed_date = datetime.strptime(blogs.blogs_array[current_blog][2], '%a, %d %b %Y %H:%M:%S')
year = str(hex(int(parsed_date.strftime('%Y'))))[2:]
day = str(hex(int(parsed_date.timetuple().tm_yday)))[2:]
if previous_year != year:
blog_tag_file.write(f"**{year}:**<br/>")
# Write the link to the page
blog_tag_file.write(f"{day}: [{blogs.blogs_array[current_blog][0]}](/blog/{current_blog}.{file_extension})<br/>")
previous_year = year
# Also write all the blogs to their respective pages
for current_blog in range(len(blogs.blogs_array)-1, -1, -1): # eg 50 - 0
with open(f"{blog_index_path}/{current_blog}.{file_extension}","w") as current_blog_file:
parsed_date = datetime.strptime(blogs.blogs_array[current_blog][2], '%a, %d %b %Y %H:%M:%S')
year = str(hex(int(parsed_date.strftime('%Y'))))[2:]
day = str(hex(int(parsed_date.timetuple().tm_yday)))[2:]
hour = int(parsed_date.strftime('%H'))
minute = int(parsed_date.strftime('%M'))
second = int(parsed_date.strftime('%S'))
second_of_the_day = str(hex(int(((hour * 3600) + (minute * 60) + second) * (65536/86400))))[2:]
images_div = ""
tags_div = ""
buttons_div = ""
blogs.blogs_array[current_blog][1] = blogs.blogs_array[current_blog][1].replace(". ", ".<br/>")
blogs.blogs_array[current_blog][1] = blogs.blogs_array[current_blog][1].replace("! ", "!<br/>")
blogs.blogs_array[current_blog][1] = blogs.blogs_array[current_blog][1].replace("? ", "?<br/>")
if current_blog > 0:
buttons_div += f"[<-- {blogs.blogs_array[current_blog-1][0]}](/blog/{current_blog-1}.{file_extension})"
if current_blog < len(blogs.blogs_array) - 1:
buttons_div += f"[{blogs.blogs_array[current_blog+1][0]}-->](/blog/{current_blog+1}.{file_extension})"
for i in blogs.blogs_array[current_blog][3]:
images_div += f'![An image without alt text](/images/{i})\n'
for i in blogs.blogs_array[current_blog][4]:
dir_name = i.replace("/", "per") + "." + file_extension
tags_div += f'[{i}](/blog/{dir_name})\n'
content = f'''<!DOCTYPE md>
{header.header}
{buttons_div}
**{blogs.blogs_array[current_blog][0]}:**
{blogs.blogs_array[current_blog][1]}
*Published: {day}/{year} at {second_of_the_day}*
{tags_div}
{images_div}
'''
current_blog_file.write(content)