Working around the clj-jgit problem. Not currently fit for prime time.

This commit is contained in:
simon 2014-11-14 13:46:21 +00:00
parent 0cb8fceb81
commit 009d047fbf
5 changed files with 15 additions and 5 deletions

1
.gitignore vendored
View file

@ -12,3 +12,4 @@ pom.xml.asc
.lein-plugins/ .lein-plugins/
.lein-failures .lein-failures
.lein-env .lein-env

View file

@ -4,6 +4,10 @@ Smeagol is a simple Wiki engine inspired by [Gollum](https://github.com/gollum/g
So at this stage Smeagol is a Wiki engine written in Clojure which uses Markdown as its text format, which does have user authentication, and which uses Git as its versioning and backup system. So at this stage Smeagol is a Wiki engine written in Clojure which uses Markdown as its text format, which does have user authentication, and which uses Git as its versioning and backup system.
## DLL Hell
Unfortunately, Smeagol currently uses **[clj-jgit](https://github.com/clj-jgit/clj-jgit)** for Git integration, and **clj-jgit** depends on an obsolete version (0.5.3) of **org.clojure/core.memoize**, whereas other components of the system rely on the current (0.5.6) version. This conflict currently makes it tricky to do an out-of-the-box build of Smeagol. You need to check out clj-jgit and build a custom build, depending on the current, not the obsolete, version of memoize. I'm working to fix this problem.
## Markup syntax ## Markup syntax
Smeagol uses the Markdown format as provided by [markdown-clj](https://github.com/yogthos/markdown-clj), with the addition that anything enclosed in double square brackets, \[\[like this\]\], will be treated as a link into the wiki. Smeagol uses the Markdown format as provided by [markdown-clj](https://github.com/yogthos/markdown-clj), with the addition that anything enclosed in double square brackets, \[\[like this\]\], will be treated as a link into the wiki.
@ -21,7 +25,7 @@ that is to say, the username is a keyword and the corresponding password is a st
* Image (and other media) upload; * Image (and other media) upload;
* Improved editor. The editor is at present very primitive - right back from the beginnings of the Web. It would be nice to have a rich embedded editor like [Hallo](https://github.com/bergie/hallo) or [Aloha](http://aloha-editor.org/Content.Node/index.html) but I havenven't (yet) had time to integrate them! * Improved editor. The editor is at present very primitive - right back from the beginnings of the Web. It would be nice to have a rich embedded editor like [Hallo](https://github.com/bergie/hallo) or [Aloha](http://aloha-editor.org/Content.Node/index.html) but I havenven't (yet) had time to integrate them!
* Improved security. Having the passwords in plain text rather than encrypted is just basically poor; having the passwd file in *public* space is also poor (although I believe it cannot be accessed via HTTP). Essentially, authentication mechanisms should be pluggable, and at present they aren't; * Improved security. Having the passwords in plain text rather than encrypted is just basically poor; having the passwd file in *public* space is also poor (although I believe it cannot be accessed via HTTP). Essentially, authentication mechanisms should be pluggable, and at present they aren't;
* Mechanism to add users through the user interface; * Mechanism to add users through the user interface;
* Mechanism to change passwords through the user interface; * Mechanism to change passwords through the user interface;

View file

@ -2,13 +2,14 @@
:description "A simple Git-backed Wiki inspired by Gollum" :description "A simple Git-backed Wiki inspired by Gollum"
:url "http://example.com/FIXME" :url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.6.0"] :dependencies [[org.clojure/clojure "1.6.0"]
[lib-noir "0.9.4" :exclusions [org.clojure/core.memoize org.clojure/tools.reader]] [org.clojure/core.memoize "0.5.6"]
[lib-noir "0.9.4" :exclusions [org.clojure/tools.reader]]
[ring-server "0.3.1"] [ring-server "0.3.1"]
[selmer "0.7.2"] [selmer "0.7.2"]
[com.taoensso/timbre "3.3.1" :exclusions [org.clojure/tools.reader]] [com.taoensso/timbre "3.3.1" :exclusions [org.clojure/tools.reader]]
[com.taoensso/tower "3.0.2" :exclusions [com.taoensso/encore]] [com.taoensso/tower "3.0.2" :exclusions [com.taoensso/encore]]
[markdown-clj "0.9.55" :exclusions [com.keminglabs/cljx]] [markdown-clj "0.9.55" :exclusions [com.keminglabs/cljx]]
[clj-jgit "0.8.1"] [clj-jgit "0.8.2-SNAPSHOT"]
[environ "1.0.0"] [environ "1.0.0"]
[im.chit/cronj "1.4.2"] [im.chit/cronj "1.4.2"]
[noir-exception "0.2.2"] [noir-exception "0.2.2"]

View file

@ -4,6 +4,10 @@ Smeagol is a simple Wiki engine inspired by [Gollum](https://github.com/gollum/g
So at this stage Smeagol is a Wiki engine written in Clojure which uses Markdown as its text format, which does have user authentication, and which uses Git as its versioning and backup system. So at this stage Smeagol is a Wiki engine written in Clojure which uses Markdown as its text format, which does have user authentication, and which uses Git as its versioning and backup system.
## DLL Hell
Unfortunately, Smeagol currently uses **[clj-jgit](https://github.com/clj-jgit/clj-jgit)** for Git integration, and **clj-jgit** depends on an obsolete version (0.5.3) of **org.clojure/core.memoize**, whereas other components of the system rely on the current (0.5.6) version. This conflict currently makes it tricky to do an out-of-the-box build of Smeagol. You need to check out clj-jgit and build a custom build, depending on the current, not the obsolete, version of memoize. I'm working to fix this problem.
## Markup syntax ## Markup syntax
Smeagol uses the Markdown format as provided by [markdown-clj](https://github.com/yogthos/markdown-clj), with the addition that anything enclosed in double square brackets, \[\[like this\]\], will be treated as a link into the wiki. Smeagol uses the Markdown format as provided by [markdown-clj](https://github.com/yogthos/markdown-clj), with the addition that anything enclosed in double square brackets, \[\[like this\]\], will be treated as a link into the wiki.

View file

@ -100,8 +100,8 @@
user (session/get :user)] user (session/get :user)]
(println (str "Action = " action)) (println (str "Action = " action))
(cond (cond
(= action "Logout!") (= action "Logout!")
(do (do
(session/remove! :user) (session/remove! :user)
(response/redirect "/wiki")) (response/redirect "/wiki"))
(and username password (auth/authenticate username password)) (and username password (auth/authenticate username password))