Files
blahblah/blahblah/render.py
T
2026-08-06 15:00:43 -07:00

63 lines
2.2 KiB
Python

import markdown
import toml
from jinja2 import Environment, PackageLoader
from blahblah import bbdb
from datetime import datetime
env = Environment( loader = PackageLoader("blahblah") )
rollTemplate = env.get_template("roll_template.html.jinja")
postTemplate = env.get_template("post_template.html.jinja")
with open('config.toml', 'r') as f:
config = toml.load(f)
def generateBodies(db):
postCount = 0
blogRoll = []
blobStack = ""
for p in bbdb.getAllPosts(db):
if p["title"] != None:
newPost = '<div class="blobs mainbox blogpost">'
newPost = newPost + "<h2>" + p["title"] + "</h2><br>"
else:
newPost = '<div class="blobs mainbox micropost">'
bodyText = p["body"]
if len(bodyText) > 512:
formattedBody = bodyText[0:512]
# formattedBody = markdown.markdown(formattedBody)
# bodyText = markdown.markdown(bodyText)
else:
formattedBody = bodyText
formattedBody = markdown.markdown(formattedBody)
bodyText = markdown.markdown(bodyText)
#newPost = newPost + formattedBody
#newPost = newPost + "</div>"
with open("./blog/posts/" + str(p["id"]) + ".html", "w") as f:
singlePost = newPost + bodyText
singlePost = singlePost + '</div>'
f.write(postTemplate.render(webRoot=config['server']['document_root'], blogContent=singlePost, siteCopyright=config['server']['copyright_holder']))
ts = p["timestamp"] / 1000
newPost = newPost + formattedBody
newPost = newPost + '<p style="font-size:small;text-align:right">' + datetime.fromtimestamp(ts).strftime('%B %-d, %Y ')
newPost = newPost + '<a href="' + config['server']['document_root'] + "/blog/posts/" + str(p["id"]) + '.html">'
newPost = newPost + 'permalink</a></p></div>'
blogRoll.append(newPost)
postCount += 1
if postCount < config['formatting']['post_per_page']:
for p in blogRoll:
blobStack = blobStack + p
with open("./blog/index.html", "w") as f:
f.write(rollTemplate.render(webRoot=config['server']['document_root'], blogContent=blobStack, siteCopyright=config['server']['copyright_holder']))