diff --git a/src/posts.py b/src/posts.py
index 1200fc1..bea5285 100644
--- a/src/posts.py
+++ b/src/posts.py
@@ -2,7 +2,7 @@
import couchdb
import mistune
-import json
+from json import dumps
from werkzeug.local import Local, LocalProxy, LocalManager
from couchdb.http import ResourceConflict, ResourceNotFound
@@ -145,10 +145,12 @@ class Posts:
group=True)
])))
- def browse(self, count, skip, categories=[]):
- return jsonify(self.db.list(
- "blogPosts/categories",
- "blogPosts/format",
- count=count,
- skip=skip,
- categories=json.dumps(categories))[1].get("results", []))
+ def browse(self, count, skip, categories=[], json=True):
+ result = self.db.list(
+ "blogPosts/categories",
+ "blogPosts/format",
+ count=count,
+ skip=skip,
+ categories=dumps(categories))[1].get("results", [])
+
+ return jsonify(result) if json else result
diff --git a/src/scripts/app.tag b/src/scripts/app.tag
index d0a2fd0..a058361 100644
--- a/src/scripts/app.tag
+++ b/src/scripts/app.tag
@@ -83,6 +83,11 @@
if={active.get("links")}
>
+
+
diff --git a/src/templates/index.html b/src/templates/index.html
index f1a918c..82898a3 100644
--- a/src/templates/index.html
+++ b/src/templates/index.html
@@ -23,6 +23,9 @@
window.addEventListener("load", function() {
window.riot.mount("app",
{
+ category_filter: "{{ quote(category_filter) }}",
+ start: "{{ start }}",
+ results: "{{ quote(results) }}",
categories: "{{ quote(categories) }}",
links : "{{ quote(links) }}",
page : "{{ page }}",
diff --git a/src/website.py b/src/website.py
index ecd14f9..51868d8 100755
--- a/src/website.py
+++ b/src/website.py
@@ -69,10 +69,13 @@ def NeverWhere(configfile=None):
postcontent["title"] = initial_post["title"]
return {
"quote" : quote,
+ "start" : 0,
+ "results" : dumps([]),
"postid" : initial_post["_id"],
"postcontent" : postcontent,
"links" : dumps([]),
"projects" : dumps([]),
+ "category_filter" : dumps([]),
"categories" : cacheit("categories", lambda : dumps(posts.categories()))
}
@@ -142,6 +145,23 @@ def NeverWhere(configfile=None):
postcontent=post_content)
+ @app.route("/blog/browse/")
+ def browse(start):
+ results = posts.browse(10, start*10, categories=[], json=False)
+ return render_template("index.html",
+ page="browse",
+ start=start,
+ results=dumps(results))
+
+ @app.route("/blog/browse//")
+ def browse_categories(category, start):
+ results = posts.browse(10, start*10, categories=[category], json=False)
+ return render_template("index.html",
+ page="browse",
+ start=start,
+ category_filter=dumps([category]),
+ results=dumps(results))
+
@cache.cached(timeout=50)
@app.route("/blog/switchpost//")
def getpostid(pid, category):
@@ -168,7 +188,7 @@ def NeverWhere(configfile=None):
# get the first post of a given category
@cache.cached(timeout=50)
@app.route("/blog/getpost/")
- def getbycategory(category):
+ def bycategory(category):
return posts.getbycategory(category)
# get the id of every post
@@ -226,12 +246,12 @@ def NeverWhere(configfile=None):
def projects():
return jsonify(loads(cacheit("projects", getProjects)))
- @app.route("/blog/browse/")
- def browse(start):
+ @app.route("/blog/getbrowse/")
+ def getbrowse(start):
return posts.browse(10, start*10, categories=[])
- @app.route("/blog/browse//")
- def bycategory(category, start):
+ @app.route("/blog/getbrowse//")
+ def getbycategory(category, start):
return posts.browse(10, start*10, categories=[category])
return app