add page navigation
This commit is contained in:
@@ -11,6 +11,5 @@ This is a very early form of the software, heavily tailored to my site, just to
|
||||
- More generic templating options, provide CSS
|
||||
- Expand content generation to entire site using markdown, templating, and CSS
|
||||
- CSS configuration tool
|
||||
- Actually be able to navigate past one page (seriously, this thing barely works yet)
|
||||
- Navigation by dates
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ def initBlog(db_file):
|
||||
|
||||
def newPost(db, title, body):
|
||||
now = datetime.datetime.now()
|
||||
time = int(now.timestamp() * 1000)
|
||||
time = int(now.timestamp())
|
||||
db.execute(
|
||||
"INSERT INTO posts (title, body, timestamp) VALUES (?, ?, ?)",
|
||||
(title, body, time)
|
||||
|
||||
+45
-10
@@ -1,5 +1,6 @@
|
||||
import markdown
|
||||
import toml
|
||||
import math
|
||||
from jinja2 import Environment, PackageLoader
|
||||
from blahblah import bbdb
|
||||
from datetime import datetime
|
||||
@@ -20,10 +21,16 @@ except:
|
||||
sys.exit()
|
||||
|
||||
def generateBodies(db):
|
||||
pageCount = 1
|
||||
postCount = 0
|
||||
perPage = config['formatting']['post_per_page']
|
||||
documentRoot = config['server']['document_root']
|
||||
copyrightHolder = config['server']['copyright_holder']
|
||||
blogRoll = []
|
||||
blobStack = ""
|
||||
for p in bbdb.getAllPosts(db):
|
||||
postURLIntro = '<a href="' + documentRoot + "/blog/posts/" + str(p["timestamp"]) + '.html">'
|
||||
|
||||
if p["title"] != None:
|
||||
newPost = '<div class="blobs mainbox blogpost">'
|
||||
newPost = newPost + "<h2>" + p["title"] + "</h2><br>"
|
||||
@@ -33,30 +40,58 @@ def generateBodies(db):
|
||||
bodyText = p["body"]
|
||||
|
||||
if len(bodyText) > 512:
|
||||
formattedBody = bodyText[0:509] + '...'
|
||||
formattedBody = bodyText[0:512] + postURLIntro + '...[click for full post]' + '</a>'
|
||||
else:
|
||||
formattedBody = bodyText
|
||||
|
||||
formattedBody = markdown.markdown(formattedBody)
|
||||
bodyText = markdown.markdown(bodyText)
|
||||
ts = p["timestamp"]
|
||||
|
||||
with open("./blog/posts/" + str(p["id"]) + ".html", "w") as f:
|
||||
with open("./blog/posts/" + str(p["timestamp"]) + ".html", "w") as f:
|
||||
singlePost = newPost + bodyText
|
||||
singlePost = singlePost + '<p style="font-size:small;text-align:right">'
|
||||
singlePost = singlePost + datetime.fromtimestamp(ts).strftime('%B %-d, %Y') + '</p>'
|
||||
singlePost = singlePost + '</div>'
|
||||
f.write(postTemplate.render(webRoot=config['server']['document_root'], blogContent=singlePost, siteCopyright=config['server']['copyright_holder']))
|
||||
f.write(postTemplate.render(webRoot=documentRoot, blogContent=singlePost, siteCopyright=copyrightHolder))
|
||||
|
||||
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 + 'link to full post</a></p></div>'
|
||||
newPost = newPost + postURLIntro
|
||||
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
|
||||
pageCount = math.ceil(postCount / perPage)
|
||||
|
||||
for i in range(1, pageCount + 1):
|
||||
counter = 0
|
||||
blobStack = ""
|
||||
while counter < perPage and len(blogRoll) > 0:
|
||||
blobStack = blobStack + blogRoll.pop(0)
|
||||
counter += 1
|
||||
|
||||
if i > 1:
|
||||
prev = '<a href="' + documentRoot + '/page' + str(i-1) + '.html"><p>Page ' + str(i-1) + '</p></a>'
|
||||
else:
|
||||
prev = " "
|
||||
|
||||
cur = '<p>Page ' + str(i) + '</p>'
|
||||
|
||||
if i == pageCount:
|
||||
following = " "
|
||||
else:
|
||||
following = '<a href="' + documentRoot + '/page' + str(i+1) + '.html"><p>Page ' + str(i+1) + '</p></a>'
|
||||
|
||||
with open("./blog/page" + str(i) + ".html", "w") as f:
|
||||
f.write(rollTemplate.render(prevPage=prev, curPage=cur, nextPage=following, webRoot=documentRoot, blogContent=blobStack, siteCopyright=copyrightHolder))
|
||||
f.close()
|
||||
|
||||
with open("./blog/index.html", "w") as f:
|
||||
f.write(rollTemplate.render(webRoot=config['server']['document_root'], blogContent=blobStack, siteCopyright=config['server']['copyright_holder']))
|
||||
with open("./blog/page1.html", "r") as g:
|
||||
for line in g:
|
||||
f.write(line)
|
||||
g.close()
|
||||
f.close()
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
<div class ="inner-content">
|
||||
<div class ="blogbox">
|
||||
{{ blogContent }}
|
||||
<div class = "blobs mainbox navi">
|
||||
<div>{{ prevPage }}</div><div><b>{{ curPage }}</b></div><div>{{ nextPage }} </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blobs linkbox">
|
||||
<a href="{{ webRoot }}"><p>HOME</p></a><hr>
|
||||
|
||||
Reference in New Issue
Block a user