pnbp

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

commit 5d0eb4a89c52aabd209d26dcc23dd5d363203b06
parent 1f5e9a1e96d7f25d4f8611647cb7bc8dc27ef5e4
Author: Paul Longtine <paullongtine@gmail.com>
Date:   Tue Jun 17 14:16:01 2014

started working on docs

Diffstat:
 .gitignore                      |  2 ++
 example/data/docs.json          |  1 +
 example/data/index.json         |  2 +-
 example/data/test.json          |  1 -
 example/includes/archive.html   | 34 ----------------------------------
 example/pages                   | 37 -------------------------------------
 example/pages.yml               | 25 +++++++++++++++++++++++++
 example/templates/archive.html  | 13 -------------
 example/templates/homepost.html |  3 +++
 example/templates/post.html     |  1 -
 src/build.py                    |  4 ++--
 11 files changed, 34 insertions(+), 89 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -18,3 +18,5 @@ emacs-config.el #Don't want to upload the site, do we? site/ +#Or the admin page... +admin/ diff --git a/example/data/docs.json b/example/data/docs.json @@ -0,0 +1 @@ +[{"post":"0","title":"Getting Started","description":"A quick guide to start using pnbp","content":"<h3>Welcome!<\/h3>\n<p>To get started using pnbp, you need to configure your first site.<\/p>\n<p>With pnbp, there's a specific directory structure that is at the base of every site.<\/p>\n<p>It looks something like this:<\/p>\n<pre><code>|- pages.yml\n|\n|-- data\n \\ - static<\/code><\/pre>\n<h4>pages.yml<\/h4>\n<p>This file is the main configuration file for the entire site. This file specifies every page that's created, along with what template directories\/files are going to be used. If no templates are specified, <code>templates\/<\/code> is assumed as the default template directory.<\/p>\n<h4>data<\/h4>\n<p>This is where all the information regarding any module will be kept.<\/p>\n<h4>data\/static<\/h4>\n<p>The static directory is what will be added into the root directory of the site when built. This is used for things such as cat pictures, cgi scripts and styles for the site.<\/p>\n<p>So far, this site wouldn't generate anything.<\/p>\n<p>To get a working site, we need to go over <a href=\"\/docs\/post\/templates\">templates<\/a>.<\/p>"},{"post":"1","title":"Site configuration","description":"Specifications on the Site config file","content":"<p>For every page, there's an entry in the pages.yml file specifying the template, module and page-variables\/includes.<\/p>\n<p>A basic pages.yml:<\/p>\n<pre><code>---\n (pagename):\n template: \"templates\/standard.html\"\n pagevar:\n :include: \"includes\/include.html\"\n var: \"Variable\"\n pagemod:\n (modid):\n mod: \"page\"\n (pagename):\n template: \"templates\/other.html\"\n pagevar:\n title: \"pnbp\"\n pagemod:\n (modid):\n mod: \"page\"\n settings:\n location: \"space\"<\/code><\/pre>\n<h3>(pagename)<\/h3>\n<p>This specifies the name and location of the page.<\/p>\n<p>\"index\" is a special term used to define the home page of the website, thus creating this page in the root of the website.<\/p>\n<h3>template<\/h3>\n<p>This specifies the location of the template that is going to be used in this page.<\/p>\n<h3>pagevar<\/h3>\n<p>These are the variables that are specified in the templates to be replaced with the values specified.<\/p>\n<p>Includes are specified with a <code>':'<\/code> at the beginning of the name of the variable, followed by the the value being the location of the file to include.<\/p>\n<h3>pagemod<\/h3>\n<p>This is a specialized set of variables, pointing to a module that can create subpages.<\/p>\n<p><code>(modid)<\/code> is used for the id of the module that is being used. This may be used in different ways for different modules. For information on the use of <code>(modid)<\/code>, refer to the documentation of the module being used.<\/p>"},{"post":"2","title":"Templates","description":"How do template?","content":"<p>yup<\/p>"}]+ \ No newline at end of file diff --git a/example/data/index.json b/example/data/index.json @@ -1 +1 @@ -[{"post":"0","date":"1997-10-3","title":"I don't know what I'm doing","content":"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras blandit, orci eu consectetur eleifend, ante purus luctus leo, id gravida nulla ante ut odio. Nunc non turpis sapien. Pellentesque nec condimentum metus. Mauris vel lorem tincidunt mi tincidunt malesuada. Mauris eu luctus odio. Morbi vel ligula a eros condimentum facilisis sit amet ut ligula. Vivamus quis ultricies elit, sit amet sollicitudin justo. Etiam ac urna condimentum, tempus ipsum vitae, dapibus massa. Maecenas augue nunc, vehicula ultricies tincidunt nec, lacinia vel velit. Donec et leo venenatis, elementum felis elementum, facilisis justo. Ut egestas commodo diam eu adipiscing. Proin vestibulum velit sit amet congue semper. Cras convallis urna nec nibh consectetur bibendum. Vivamus scelerisque velit sit amet congue consequat. In posuere consectetur nisl.<\/p>\n<p>In fringilla nisl et ipsum suscipit, et interdum sem adipiscing. Aenean id turpis porttitor, imperdiet libero sit amet, ultrices augue. Donec id ultricies erat. Nam bibendum pulvinar enim. Sed egestas aliquet nunc ut rhoncus. Ut tristique at leo id condimentum. In hac habitasse platea dictumst. Phasellus eu orci blandit, ultricies dolor quis, ultricies nunc. Fusce elementum mattis nulla, vel tincidunt libero iaculis in. Donec posuere volutpat tortor sit amet auctor.<\/p>\n<p>Quisque fringilla venenatis velit, sed venenatis erat lobortis nec. Etiam fermentum ullamcorper euismod. Suspendisse vulputate lectus a turpis iaculis, nec interdum odio vestibulum. Duis fringilla porttitor dignissim. Sed at risus ac tellus gravida tincidunt. Nulla ornare dui quis nulla vehicula ornare. Etiam bibendum justo risus, et tristique quam bibendum eu. Mauris posuere orci ac enim pharetra, quis tincidunt elit tristique. Ut luctus dolor nulla, ut luctus ligula lacinia quis. Sed interdum interdum ante vel porttitor. Ut a odio ligula. Donec posuere, risus non tincidunt laoreet, nisi massa aliquet lacus, sed blandit diam ligula et lorem.<\/p>\n<p>Cras eu ullamcorper mauris. Maecenas malesuada diam in felis bibendum aliquam et laoreet dui. Pellentesque auctor accumsan diam, eu varius dui iaculis ac. Phasellus iaculis massa a nunc sollicitudin mollis. Curabitur pulvinar libero et ante ullamcorper accumsan. Maecenas non magna a elit blandit congue. Suspendisse mattis ultrices odio eu rutrum. Sed iaculis nulla eu orci ultricies, quis dapibus felis sodales. Nulla in porttitor purus. Morbi porta dictum felis, nec tristique magna posuere in. Cras arcu enim, viverra sed metus in, semper viverra nibh. Morbi rutrum at tellus nec sagittis. In purus turpis, tincidunt id posuere eget, tincidunt ac nulla. Curabitur convallis magna sed nisl congue vestibulum. Duis ut adipiscing lacus, in pharetra neque.<\/p>\n<p>Donec justo nibh, consectetur id massa id, iaculis euismod nunc. Proin pretium risus sem, sagittis luctus massa varius nec. Phasellus mollis posuere lorem, eget malesuada velit varius quis. Praesent quis quam tortor. Vivamus et sagittis odio. Morbi at sollicitudin libero, ac rutrum eros. Duis vitae pretium lorem, vehicula posuere elit. Integer faucibus tristique est nec luctus. Curabitur commodo pellentesque lacus vel feugiat. Vivamus id tellus id metus mollis vestibulum a ac dolor. <\/p>"},{"post":"1","date":"1998-9-13","title":"I might have an idea of what I'm doing.","content":"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras blandit, orci eu consectetur eleifend, ante purus luctus leo, id gravida nulla ante ut odio. Nunc non turpis sapien. Pellentesque nec condimentum metus. Mauris vel lorem tincidunt mi tincidunt malesuada. Mauris eu luctus odio. Morbi vel ligula a eros condimentum facilisis sit amet ut ligula. Vivamus quis ultricies elit, sit amet sollicitudin justo. Etiam ac urna condimentum, tempus ipsum vitae, dapibus massa. Maecenas augue nunc, vehicula ultricies tincidunt nec, lacinia vel velit. Donec et leo venenatis, elementum felis elementum, facilisis justo. Ut egestas commodo diam eu adipiscing. Proin vestibulum velit sit amet congue semper. Cras convallis urna nec nibh consectetur bibendum. Vivamus scelerisque velit sit amet congue consequat. In posuere consectetur nisl.<\/p>\n<p>In fringilla nisl et ipsum suscipit, et interdum sem adipiscing. Aenean id turpis porttitor, imperdiet libero sit amet, ultrices augue. Donec id ultricies erat. Nam bibendum pulvinar enim. Sed egestas aliquet nunc ut rhoncus. Ut tristique at leo id condimentum. In hac habitasse platea dictumst. Phasellus eu orci blandit, ultricies dolor quis, ultricies nunc. Fusce elementum mattis nulla, vel tincidunt libero iaculis in. Donec posuere volutpat tortor sit amet auctor.<\/p>\n<p>Quisque fringilla venenatis velit, sed venenatis erat lobortis nec. Etiam fermentum ullamcorper euismod. Suspendisse vulputate lectus a turpis iaculis, nec interdum odio vestibulum. Duis fringilla porttitor dignissim. Sed at risus ac tellus gravida tincidunt. Nulla ornare dui quis nulla vehicula ornare. Etiam bibendum justo risus, et tristique quam bibendum eu. Mauris posuere orci ac enim pharetra, quis tincidunt elit tristique. Ut luctus dolor nulla, ut luctus ligula lacinia quis. Sed interdum interdum ante vel porttitor. Ut a odio ligula. Donec posuere, risus non tincidunt laoreet, nisi massa aliquet lacus, sed blandit diam ligula et lorem.<\/p>\n<p>Cras eu ullamcorper mauris. Maecenas malesuada diam in felis bibendum aliquam et laoreet dui. Pellentesque auctor accumsan diam, eu varius dui iaculis ac. Phasellus iaculis massa a nunc sollicitudin mollis. Curabitur pulvinar libero et ante ullamcorper accumsan. Maecenas non magna a elit blandit congue. Suspendisse mattis ultrices odio eu rutrum. Sed iaculis nulla eu orci ultricies, quis dapibus felis sodales. Nulla in porttitor purus. Morbi porta dictum felis, nec tristique magna posuere in. Cras arcu enim, viverra sed metus in, semper viverra nibh. Morbi rutrum at tellus nec sagittis. In purus turpis, tincidunt id posuere eget, tincidunt ac nulla. Curabitur convallis magna sed nisl congue vestibulum. Duis ut adipiscing lacus, in pharetra neque.<\/p>\n<p>Donec justo nibh, consectetur id massa id, iaculis euismod nunc. Proin pretium risus sem, sagittis luctus massa varius nec. Phasellus mollis posuere lorem, eget malesuada velit varius quis. Praesent quis quam tortor. Vivamus et sagittis odio. Morbi at sollicitudin libero, ac rutrum eros. Duis vitae pretium lorem, vehicula posuere elit. Integer faucibus tristique est nec luctus. Curabitur commodo pellentesque lacus vel feugiat. Vivamus id tellus id metus mollis vestibulum a ac dolor. <\/p>"}]- \ No newline at end of file +[{"post":"0","title":"1","content":"<h1>pnbp - <em>p<\/em>nbp is <em>n<\/em>ot a <em>b<\/em>logging <em>p<\/em>latform<\/h1>\n<p>pnbp is a static web-page builder that's based off of the idea that if it's not done, it can be scripted to do so.<\/p>\n<p>Go take a look at the <a href=\"\/docs\/post\/getting_started\">getting started guide<\/a>, or view it on <a href=\"http:\/\/github.com\/bannana\/pnbp\">GitHub<\/a><\/p>"}]+ \ No newline at end of file diff --git a/example/data/test.json b/example/data/test.json @@ -1 +0,0 @@ -[{"post":"0","description":"BLAHLBAH","date":"1997-10-3","title":"This is a test for tesing purposes","content":"<p>Blaugh.<\/p>"},{"post":"1","description":"BLAHBLAH","date":"2010-11-20","title":"No clue. Not one.","content":"<p>Uh. hi...<\/p>\n<p>Still...<\/p>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras blandit, orci eu consectetur eleifend, ante purus luctus leo, id gravida nulla ante ut odio. Nunc non turpis sapien. Pellentesque nec condimentum metus. Mauris vel lorem tincidunt mi tincidunt malesuada. Mauris eu luctus odio. Morbi vel ligula a eros condimentum facilisis sit amet ut ligula. Vivamus quis ultricies elit, sit amet sollicitudin justo. Etiam ac urna condimentum, tempus ipsum vitae, dapibus massa. Maecenas augue nunc, vehicula ultricies tincidunt nec, lacinia vel velit. Donec et leo venenatis, elementum felis elementum, facilisis justo. Ut egestas commodo diam eu adipiscing. Proin vestibulum velit sit amet congue semper. Cras convallis urna nec nibh consectetur bibendum. Vivamus scelerisque velit sit amet congue consequat. In posuere consectetur nisl. <\/p>"}]- \ No newline at end of file diff --git a/example/includes/archive.html b/example/includes/archive.html @@ -1,34 +0,0 @@ -<div> -{: -if page == "": - page = "index" -elif page =="archive": - page = "index" -data = json.load(open(pagedata[page]['pagemod']['content']['settings']['data'])) -a = "" -dates = {} -for i in data: - if 'date' in i: - datedata = i['date'].split("-") - if datedata[0] in dates: - if datedata[1] in dates[datedata[0]]: - dates[datedata[0]][datedata[1]][datedata[2]] = i['title'] - else: - dates[datedata[0]][datedata[1]] = {} - dates[datedata[0]][datedata[1]][datedata[2]] = i['title'] - else: - dates[datedata[0]] = {} - dates[datedata[0]][datedata[1]] = {} - dates[datedata[0]][datedata[1]][datedata[2]] = i['title'] -a = "<div id=\"archives\"><ul>" -for year,months in sorted(dates.items(),reverse=True): - a = a + "<li>{}</li><li><ul>".format(year) - for month,days in sorted(months.items(),reverse=True): - a = a + "<li>{}</li><li><ul>".format(month) - for day,title in sorted(days.items(),reverse=True): - a = a + "<li>{} - <a href=\"../post/{}\">{}</a></li>".format(day,module.blog.slug(title),title) - a = a + "</ul></li>" - a = a + "</ul></li>" -returns = a + "</div>" -:} -</div> diff --git a/example/pages b/example/pages @@ -1,37 +0,0 @@ ---- - 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" - archive: - template: "templates/archive.html" - pagevar: - :header: "./includes/header.html" - title: "This is a test page" - pagemod: - archive: - mod: "page" - settings: - pagevar: - :archive: "./includes/archive.html" - location: "" - template: "templates/archive.html" - test: - template: "templates/std.html" - pagevar: - :header: "./includes/header.html" - title: "This is THE test page" - pagemod: - content: - mod: "blog" - settings: - description: 1 - defaultPostCount: "1" - data: "./data/test.json" diff --git a/example/pages.yml b/example/pages.yml @@ -0,0 +1,25 @@ +--- + index: + template: "templates/std.html" + pagevar: + :header: "./includes/header.html" + title: "pnbp- Home" + pagemod: + content: + mod: "blog" + settings: + defaultPostCount: "1" + data: "./data/index.json" + postTemplate: "./templates/homepost.html" + docs: + template: "templates/std.html" + pagevar: + :header: "./includes/header.html" + title: "pnbp- Documentation" + pagemod: + content: + mod: "blog" + settings: + description: 1 + defaultPostCount: "0" + data: "./data/docs.json" diff --git a/example/templates/archive.html b/example/templates/archive.html @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>%title%</title> - <link rel="stylesheet" type="text/css" href="/styles/style.css" /> - </head> - <body> - %:header% - <div id="split"> - %:archive% - </div> - </body> -</html> diff --git a/example/templates/homepost.html b/example/templates/homepost.html @@ -0,0 +1,3 @@ +<div> +%content% +</div> diff --git a/example/templates/post.html b/example/templates/post.html @@ -1,5 +1,4 @@ <div> <a href="%titlelink%"><h1>%title%</h1></a> - <p>%date:&B, &d &Y%</p> <p>%content%</p> </div> diff --git a/src/build.py b/src/build.py @@ -185,10 +185,10 @@ if __name__ == "__main__": print("Going through pages...") start = time.time() try: - pages = open("pages") + pages = open("pages.yml") except: - print("Can't open file 'pages'") + print("Can't open file 'pages.yml'") sys.exit() pagedata = yaml.load(pages)