diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2011-11-05 18:45:04 +0100 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2011-11-05 18:45:04 +0100 |
commit | 5ff55cd6309d570a5297c0b26dfd623b1fadd604 (patch) | |
tree | c37e9faae3dde2a56a96cd473abbb5882cbeea4f /src/mulk/benki/wiki.clj |
Initial checkin.
Diffstat (limited to 'src/mulk/benki/wiki.clj')
-rw-r--r-- | src/mulk/benki/wiki.clj | 39 |
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)]))) |