pnbp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit ed66fce9277ddfe264f3cfcf140e0724093399ba
parent d2e7cde8bb0c9b36d7be0eb5aacb6cc71b4863b3
Author: Paul Longtine <paullongtine@gmail.com>
Date:   Wed May 21 13:59:04 2014

Fixed some things, building the site is now working.

Diffstat:
 compile.py           | 16 ++++++++++------
 includes/header.html |  1 +
 mod/blog.py          | 33 +++++++++++++++++++++++++--------
 pages.json           |  8 ++++++--
 templates/post.html  |  2 +-
 5 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/compile.py b/compile.py @@ -11,7 +11,8 @@ def main(): print("Going through pages...") site = {} - + + #Loops through defined "sites" for name,v in pagedata.items(): template = open(v['template']).read() @@ -19,7 +20,7 @@ def main(): print("page '{}' using template '{}'...".format(name,v['template'])) - site[name] = runMod(template,v['pagemod']) + site[name] = runMod(template,v['pagemod'],name) buildSite(site) @@ -42,10 +43,10 @@ def generateTemplate(t,var): # Runs modules defined in pages.json # # t = raw template, var = "pagemod" variables in pages.json (<pagename> -> "pagemod") -def runMod(t,var): +def runMod(t,var,page): subpage = {} for name, mdata in var.items(): - subpage.update(getattr(mod,mdata['mod']).getPages(t,mdata['settings'],name)) + subpage.update(getattr(mod,mdata['mod']).getPages(t,mdata['settings'],name,page)) return subpage @@ -71,8 +72,11 @@ def buildSite(site): if subdir != "default": os.mkdir(currentDir+"/"+subdir) for page, content in data.items(): - os.mkdir(currentDir+"/"+subdir+"/"+page) - open(currentDir+"/"+subdir+"/"+page+"/index.html","w").write(content) + if page != "default": + os.mkdir(currentDir+"/"+subdir+"/"+page) + open(currentDir+"/"+subdir+"/"+page+"/index.html","w").write(content) + else: + open(currentDir+"/"+subdir+"/index.html", "w").write(data['default']) if __name__ == "__main__": diff --git a/includes/header.html b/includes/header.html @@ -1,3 +1,4 @@ <div> <h1>This is in fact not a blog.</h1> + <a href="/">Home</a>&nbsp;<a href="/test/">Test</a> </div> diff --git a/mod/blog.py b/mod/blog.py @@ -1,32 +1,49 @@ import json -def getPages(template,settings,name): +def getPages(template,settings,name,page): pages = {} settings['postTemplate'] = settings.get("postTemplate","./templates/post.html") settings['defaultPostCount'] = settings.get("defaultPostCount","0") data = json.load(open(settings['data'])) temp = open(settings['postTemplate']).read() - # Generates all posts on page + # Generates all posts on page (/all a = "" + posts = 0 for i in data: - if 0 == 0 or int(data['post']) >= 0: - a = generatePost(i,temp) + a + a = generatePost(i,temp,page) + a + posts += 1 + + pages['all']= {} + pages['all']['default'] = template.replace("%"+name+"%",a) + + # Generates index + a = "" + for i in data: + if int(settings['defaultPostCount']) == 0 or int(i['post']) >= posts-int(settings['defaultPostCount']) : + a = generatePost(i,temp,page) + a pages['default'] = template.replace("%"+name+"%",a) - # Generates individual pages referenced by title + # Generates individual pages referenced by title (/post/<title>) pages['post'] = {} for i in data: - post = generatePost(i,temp) + post = generatePost(i,temp,page) pages['post'][slug(i['title'])] = template.replace("%"+name+"%",post) return pages -def generatePost(data, post): + +#Generates post out of given template, data and page name, returns string +def generatePost(data, post, page): for name,x in data.items(): if name == 'title': - post = post.replace("%titlelink%",slug(x)) + if page == "index": + page = "" + else: + page = page + "/" + + post = post.replace("%titlelink%","/"+page+"post/"+slug(x)) post = post.replace("%"+name+"%", x) diff --git a/pages.json b/pages.json @@ -1,4 +1,8 @@ { -"index":{"template":"templates/std.html","pagevar":{":header":"./includes/header.html","title":"This is a test page"},"pagemod":{"content":{"mod":"blog","settings":{"defaultPostCount":"0","data":"./data/index.json"}}}}, -"test":{"template":"templates/std.html","pagevar":{":header":"./includes/header.html","title":"This is THE test page"},"pagemod":{"content":{"mod":"blog","settings":{"defaultPostCount":"1","data":"./data/test.json"}}}} +"index":{"template":"templates/std.html", + "pagevar":{":header":"./includes/header.html","title":"This is a test page"}, + "pagemod":{"content":{"mod":"blog","settings":{"defaultPostCount":"0","data":"./data/index.json"}}}}, +"test":{"template":"templates/std.html", + "pagevar":{":header":"./includes/header.html","title":"This is THE test page"}, + "pagemod":{"content":{"mod":"blog","settings":{"defaultPostCount":"1","data":"./data/test.json"}}}} } \ No newline at end of file diff --git a/templates/post.html b/templates/post.html @@ -1,4 +1,4 @@ <div> - <a href="./post/%titlelink%"><h1>%title%</h1></a> + <a href="%titlelink%"><h1>%title%</h1></a> <p>%content%</p> </div>