4 ms·
This is really awesome, thanks for building it. I was just working on a toy clojurescript project yesterday and while clojuredocs is very useful it's sad it has
by stevepike 12y ago
This is really awesome, thanks for building it. I was just working on a toy clojurescript project yesterday and while clojuredocs is very useful it's sad it hasn't been updated in forever. I've found examples to be incredibly helpful in composing functional-style code. For instance, compare assoc: http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/assoc http://clojure.github.io/clojure/clojure.core-api.html#cloju... and http://grimoire.arrdem.com/1.6.0/clojure.core/assoc/ http://grimoire.arrdem.com/1.6.0/clojure.core/assoc/.
The architecture choice OP made is clever - a completely static page linking to github for the CMS part. Would you consider writing a server-backed version at some point in the future? Clojuredocs was originally written in rails and is being re-written in clojure, but that's going slowly. I would absolutely love to see a well-written clojure backend for this type of site as a reference. I've been really enjoying using clojure for standalone things, but I can't yet imagine how I'd build a web server with all the production features something like rails gives you ootb (asset compilation, csrf, sessions, db connections, orm, testing w. transaction-based fixtures, etc).
Now if I could just integrate this with dash (http://kapeli.com/dash http://kapeli.com/dash)!
- bjeanes 12y agoFor reference, the Clojure rewrite is https://github.com/zk/clojuredocs https://github.com/zk/clojuredocs and is hosted at http://clojuredocs.herokuapp.com/ http://clojuredocs.herokuapp.com/
- razibog 12y agoI'd love to help with building a backend, if the author or someone else decides to go that way. Just recently finished rewriting my blog in Clojure, complete with csrf protection, db, sessions, and a bunch of shinies as well.
- rdmckenzie 12y agoAuthor here. After maintaining a blog built around a "real" CMS, and a "real" CMS that I built myself, I'll say that my existing blog is built atop Jekyll and Git, the same stack I chose for Grimoire. It's simply the most basic thing that could possibly work, and it doesn't demand that I run a JVM on my inexpensive DigitalOcean instance. For all that I enjoy using Clojure, a "real" Ring server with a "real" database backend simply doesn't add anything to this project beyond complicating it further. As such I don't expect that a database rewrite of Grimoire is on the cards for some time to come. To "how you build such a site in Clojure" the answer is that the entire Clojure ecosystem shies away from monolithic web frameworks and prepackaged solutions ala rails. Instead, Clojure libraries tend to pick a single feature or some small set of fetures, cover them well, expose a simple API and make composition trivial rather than trying to solve all possible problems. Dash integration... Dash only makese sense for languages for which the documentation isn't trivially introspected such as Java. Clojure has the clojure.repl library (http://grimoire.arrdem.com/1.6.0/clojure.repl/ http://grimoire.arrdem.com/1.6.0/clojure.repl/) which is designed to solve this problem by exposing Clojure documentation to users in their interactive development (REPL) sessions. As I explain at some length in the Grimoire announcement post (http://arrdem.com/2014/07/12/of_mages_and_grimoires/ http://arrdem.com/2014/07/12/of_mages_and_grimoires/) Grimoire seeks to fill a fumdimentally different niche than Dash. Clojure already has docs, and those docs are already handy for users aware of clojure.repl. Grimoire seeks to solve the problem of documenting the various ins and outs of the standard library which do _not_ appear in the official Clojure docs and which are currently spread out across any number of other low PageRank score community sites.
- stevepike 12y agoI definitely wasn't trying to say this project would be better served by a "real" CMS, just that I'd like to see how someone would put one together. I've heard the idea of your second paragraph repeated in a bunch of places, and it speaks to me on an intellectual level, but I'd like to read through examples of non-trivial apps to put it in concrete terms. About dash - presumably users will want your content inside whatever editing environment they have going (I know I do!). I find myself jumping between the built-in Emacs thing for clojure (shows function signatures in the minibuffer, let's you jump to official docs and source in other buffers) and dash for ruby (pretty html rendering, loads all my library docs).