summaryrefslogtreecommitdiff
path: root/src/mulk/benki/wiki.clj
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-05 18:45:04 +0100
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-05 18:45:04 +0100
commit5ff55cd6309d570a5297c0b26dfd623b1fadd604 (patch)
treec37e9faae3dde2a56a96cd473abbb5882cbeea4f /src/mulk/benki/wiki.clj
Initial checkin.
Diffstat (limited to 'src/mulk/benki/wiki.clj')
-rw-r--r--src/mulk/benki/wiki.clj39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/mulk/benki/wiki.clj b/src/mulk/benki/wiki.clj
new file mode 100644
index 0000000..094bf02
--- /dev/null
+++ b/src/mulk/benki/wiki.clj
@@ -0,0 +1,39 @@
+(ns mulk.benki.wiki
+ (:refer-clojure :exclude [distinct conj! case compile drop take sort disj!
+ resultset-seq])
+ (:use [clojure repl pprint]
+ [clojure.contrib error-kit]
+ [hiccup core page-helpers]
+ [mulk.benki util]
+ [clojure.core.match.core
+ :only [match]]
+ [ring.util.response
+ :only [redirect]]
+ clojureql.core
+ [clojure.java.jdbc
+ :only [transaction]]
+ noir.core)
+ (:require mulk.benki.main))
+
+
+(def page_revisions (table :page_revisions))
+(def pages (table :pages))
+
+
+(defpage "/wiki" []
+ (redirect (resolve-uri "/wiki/Home")))
+
+(defpage "/wiki/:id" {id :id, revision-id :revision}
+ (let [page (-> pages
+ (select (if (number? id)
+ (where (= :id id))
+ (where (= :title id)))))
+ revisions (-> page_revisions
+ (join page (where (= :pages.id :page_revisions.page)))
+ ;;(project [:page_revisions.*])
+ (project page_revisions))
+ revision (if revision-id
+ (select revisions (where (= :id revision-id)))
+ (first (sort revisions [:published#desc])))]
+ (layout (fmt nil "~A — Benki~@[/~A~] " id revision-id)
+ [:pre (prn-str revision)])))