Clojure Grimoire: an up-to-date ClojureDocs alternative
grimoire.arrdem.com
grimoire.arrdem.com
Andy actively keeps up with issues and pulls to make sure the output stays well formatted for easy printing on both US Letter and A4 as well as of course an HTML online reference.
His cheatsheets traditionally linked to ClojureDocs, but just yesterday Andy accepted a pull request to merge in targeting Grimoire, while Reid mashed up Andy's work into the Grimoire homepage:
arrdem commented 2 days ago
Thank you. I'm working on mashing the Grimoire linked version up to be
part of 0.2.0's homepage :D
…
On 07/11/2014 02:52 PM, Andy Fingerhut wrote:
Thanks! I'll try generating HTML and PDF cheat sheets with these
changes, and if everything goes well I will publish Grimoire-linked
HTML versions at http://jafingerhut.github.io and announce on the
Google group.
-- https://github.com/jafingerhut/clojure-cheatsheets/pull/10I appreciate clojure community collaboration and it's great these two projects sync'd up:
http://jafingerhut.github.io - various versions of cheetsheet
http://grimoire.arrdem.com - cheatsheet + docs
Or go here for the PDFs:
https://github.com/jafingerhut/clojure-cheatsheets/tree/mast...
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)!
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/) 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/) 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.
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).
I hope that for those Clojure users among you Grimoire proves a useful resource and I welcome any feedback or other commentary you may have on the site and its usability. Stay tuned, there's plenty more in the works from me and I'm reading the feedback with interest.
I'm waiting for DevDocs.io support for Clojure thought because there's nothing better than all docs in one place.